简单的 jQuery 弹出的例子

In this tutorial, I'm going to share how to create a simple modal window with jQuery. I like jQuery, it makes everything so simple and so easy. In case you don't know what's modal window. You can click here . That's an example of a modal window.

In this website, I'm using facebox (inspiration from facebook). Others, such as lightbox, thickbox, multibox, litebox...... it's too many of them and they all are having different features.

Right, let's start, this example will show you how to create a modal window that will display the content of a DIV #ID.

My objectives are:

  • Able to search the whole html document for A tag NAME="modal" attribute, so when users click on it, it will display the content of DIV #ID in the HREF attribute in Modal Window.
  • A mask that will fill the whole screen.
  • Modal windows that is simple and easy to modify.

1. HTML code and A tag attributes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!-- #dialog is the id of a DIV defined in the code below -->
< a href = "#dialog" name = "modal" >Simple Modal Window</ a >
 
< div id = "boxes" >
 
      
     <!-- #customize your modal window here -->
 
     < 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 >

2. CSS code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<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 ;
}
</style>

3. Javascript

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<script>
 
$(document).ready( function () { 
 
     //select all the a tag with name equal to modal
     $( 'a[name=modal]' ).click( function (e) {
         //Cancel the link behavior
         e.preventDefault();
         //Get the A tag
         var id = $( this ).attr( 'href' );
      
         //Get the screen height and width
         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);
      
     });
      
     //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();
     });        
      
});
 
</script>

It's very straight forward and easy to understand. Remember, you need to include jQuery framework.

Demonstration Download

4. Launch modal window with Javascript

Due to popular demand :), I have an example for it. The concept is simple. I wrapped the modal window script inside a function, and then you will able to call the modal window using javascript function call.

Yes, you will able to load the modal window on page load as well :)

1
2
3
4
$(document).ready( function () {
   //id is the ID for the DIV you want to display it as modal window
   launchWindow(id);
});

Launch Modal Window with Javascript

And, if you want to close the modal window on key press, any keys you want, you can add the following function.

1
2
3
4
5
6
$(document).keyup( function (e) {
   if (e.keyCode == 13) {
     $( '#mask' ).hide();
     $( '.window' ).hide();
   }
});

I think I should make another post about modal window. :)

5. Conclusion

Yes, that's all you need to make a simple jquery modal window. In this tutorial, it shown you the concept of how to display DIV content inside a modal window. However, you can further develop it to accept a link and display it in an iFrame and image gallery.

For those who's looking for a fully customizable Modal Window, you can try my method, if you have any other questions, please let me know. Thanks for reading.

Update

22-5-2009: - Added a new section "Activate modal window with Javascript"

16-4-2009: - If you prefer this article in Portuguese, please visit Simple jQuery Modal Window in Portuguese by Maujor

27 Mar 09: - Added e.preventDefault() to link to launch the modal window.
- Changed css position to fixed, so that the modal window also fixed to center. - Changed var winH = $(window).height(); to var winH = $(window).height();

24 Mar 09:
- Added e.preventDefault() to cancel the anchor link effect, we can also able to cancel it by removing the href attribute.
- Changed var winH = $(window).height(); to var winH = $(document).height();

Advertisement Sign up for online 646-364 training and become 1z0-051 certified in days! We also offer best quality comptia network+ with 100% exam pass guarantee.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值