简体   繁体   中英

How to show div on page load?

I am referring to following link:

http://netdna.webdesignerdepot.com/uploads7/creating-a-modal-window-with-html5-and-css3/demo.html

Here, the div ( modal window ) is loaded after clicking on the link. I am trying to get rid of that link and open that modal on page load.

My code is as follows: Everything is same except I have added scripts and removed the link

<!DOCTYPE html>
<html>
<head>
    <title>Modal Window</title>
    <style type="text/css">
        .modalDialog
        {
            position: fixed;
            font-family: Arial, Helvetica, sans-serif;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            background: rgba(0,0,0,0.8);
            z-index: 99999;
            opacity: 0;
            -webkit-transition: opacity 400ms ease-in;
            -moz-transition: opacity 400ms ease-in;
            transition: opacity 400ms ease-in;
            pointer-events: none;
        }
        .modalDialog:target
        {
            opacity: 1;
            pointer-events: auto;
        }
        .modalDialog > div
        {
            width: 400px;
            position: relative;
            margin: 10% auto;
            padding: 5px 20px 13px 20px;
            border-radius: 10px;
            background: #fff;
            background: -moz-linear-gradient(#fff, #999);
            background: -webkit-linear-gradient(#fff, #999);
            background: -o-linear-gradient(#fff, #999);
        }
        .close
        {
            background: #606061;
            color: #FFFFFF;
            line-height: 25px;
            position: absolute;
            right: -12px;
            text-align: center;
            top: -10px;
            width: 24px;
            text-decoration: none;
            font-weight: bold;
            -webkit-border-radius: 12px;
            -moz-border-radius: 12px;
            border-radius: 12px;
            -moz-box-shadow: 1px 1px 3px #000;
            -webkit-box-shadow: 1px 1px 3px #000;
            box-shadow: 1px 1px 3px #000;
        }
        .close:hover
        {
            background: #00d9ff;
        }
    </style>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

    <script type="text/javascript" language="javascript">
        $(document).ready(function() {
            $("#openModal").show();
        });
    </script>

</head>
<body>
    <div id="openModal" class="modalDialog">
        <div>
            <a href="#close" title="Close" class="close">X</a>
            <h2>
                Modal Box</h2>
            <p>
                This is a sample modal box that can be created using the powers of CSS3.</p>
            <p>
                You could do a lot of things here like have a pop-up ad that shows when your website
                loads, or create a login/register form for users.</p>
        </div>
    </div>
</body>
</html>

Similar question is asked here: How to Auto Popup a CSS3 Modal Window When Page Loads?

But its not helping.

I have also tried following scripts without any luck:

$(document).ready(function() {
    $("#openModal").click();
});


$(document).ready(function() {
    $(".modalDialog").show();
});

I must be doing something wrong here.

Any ideas?

The problem is that .show() is not changing the opacity of $("#openModal")

do

$(document).ready(function() { 
    // the first arg is duration of the effect, second is the opacity to end at
    $("#openModal").fadeTo(500, 1);
});

Check out the Fiddle

As the OP pointed out the "dismiss Model Button" was not working

Updated Fiddle Demostrating a working dismiss button

as @Charaf jra suggested, you should trigger the click with:

$(document).ready(function() { $("#openModal").trigger('click'); });

on the other hand, most of the chances are you can trigger it onload with:

$(document).ready(function() { $(".modalDialog").modal() }
$(window).load(function(event){
    $(".modalDialog").show();
})

To trigger click event , use trigger() :

$(document).ready(function() { 
    $("#openModal").trigger('click'); 
}); 

You have opacity: 0; for .modalDialog. In this case you need to use fadeTo instead of show.

<script type="text/javascript" language="javascript">
    $(document).ready(function() {
        $(".modalDialog").fadeTo(1,1);
    });
</script>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM