quarta-feira, 27 de abril de 2011

Wordpress modal box

I was trying to create a modal box for a wordpress blog where after 30 seconds a user has arrived the blog, a modal box would automatically show up asking the user to subscribe a newsletter.


After some research and using this article as source I came to this result (in this example there are 5 seconds delay):


<div id="boxes">

<div id="dialog" class="window">
<b>Testing of Modal Window</b> |

<!-- close button is defined as close class -->
<a href="#" class="close">Close it</a>

</div>


<!-- Do not remove div#mask, because you'll need it to fill the whole screen -->
<div id="mask"></div>
</div>
<style>

/* Z-index of #mask must lower than #boxes .window */
#mask {
position:absolute;
z-index:9000;
background-color:#000;
display:none;
}

#boxes .window {
position:absolute;
width:440px;
height:200px;
display:none;
z-index:9999;
padding:20px;
}


/* Customize your modal window here, you can add background image too */
#boxes #dialog {
width:375px;
height:203px;
background-color:#FF0000;
}
</style>
<script>

$(document).ready(function() {


//if close button is clicked
$('.window .close').click(function (e) {
//Cancel the link behavior
e.preventDefault();
$('#mask, .window').hide();
});

//if mask is clicked
$('#mask').click(function () {
$(this).hide();
$('.window').hide();
});

setTimeout('showbox()',5000);
});
function showbox()
{
var id = '#dialog';
var maskHeight = $(document).height();
var maskWidth = $(window).width();

//Set height and width to mask to fill up the whole screen
$('#mask').css({'width':maskWidth,'height':maskHeight});

//transition effect
$('#mask').fadeIn(1000);
$('#mask').fadeTo("slow",0.8);

//Get the window height and width
var winH = $(window).height();
var winW = $(window).width();

//Set the popup window to center
$(id).css('top', winH/2-$(id).height()/2);
$(id).css('left', winW/2-$(id).width()/2);

//transition effect
$(id).fadeIn(2000);
}

</script>

Sem comentários: