页面加载完成后打开CSS弹出窗口

3

我有一个纯 CSS 弹出层,这个弹出层是通过点击按钮触发的,但我需要在页面加载完成时弹出这个 div。

<div class="wrap">
        <a href="#modal-one" class="btn btn-big">Modal!</a>
    </div>
    <!-- Modal -->
    <div class="modal" id="modal-one" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-header">
                <h2>Modal in CSS?</h2>
                <a href="#" class="btn-close" aria-hidden="true">×</a>
            </div>
            <div class="modal-body">
                <p>One modal example here! :D</p>
            </div>
            <div class="modal-footer">
                <a href="#" class="btn">Nice!</a>
            </div>
        </div>
    </div>

Jsfiddle

页面加载时,我需要自动弹出此窗口,并可通过点击第二个选项来实现。

有人能帮忙吗?

1个回答

1
一个选项是使用JavaScript并添加新类的额外规则。
CSS:
.modal:target:before, .modal.loaded:before { ... }
.modal:target .modal-dialog, .modal.loaded .modal-dialog { ... }

Js:

$( document ).ready( function() {
    $('.modal').addClass('loaded');
    $('.btn-close, .btn').click( function() {
        $('.modal').removeClass('loaded');
    });
});

Fiddle: http://jsfiddle.net/ycc7anhy/2/

CSS 的解决方案是使用:target URL来关闭弹出窗口。

.modal:target:before {
    display: none;
}
.modal:before {
    content:"";
    display: block;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10;
}
.modal .modal-dialog {
    background: #fefefe;
    border: #333333 solid 1px;
    border-radius: 5px;
    margin-left: -200px;
    position: fixed;
    left: 50%;
    z-index: 11;
    width: 360px;
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0);
    -webkit-transition: -webkit-transform 0.3s ease-out;
    -moz-transition: -moz-transform 0.3s ease-out;
    -o-transition: -o-transform 0.3s ease-out;
    transition: transform 0.3s ease-out;
    top: 20%;
}
.modal:target .modal-dialog {
    top: -100%;
    -webkit-transform: translate(0, -500%);
    -ms-transform: translate(0, -500%);
    transform: translate(0, -500%);
}

代码片段:http://jsfiddle.net/ycc7anhy/7/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接