2012-03-17 62 views
0

hy all, 我已經嘗試過幾個教程來創建一個javascript或jquery平滑彈出式窗口,但沒有任何工作.. 我需要它運行,考慮到我使用HTML5。 我需要一個可以工作的代碼。 有什麼建議嗎? 我需要一個平滑的彈出窗口,我不知道如何去做任何人幫助? 我的HTML:Javascript和jQuery的彈出窗口

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <title>yensdesign.com - How to create a stuning and smooth popup in jQuery</title> 
    <link rel="stylesheet" href="general.css" type="text/css" media="screen" /> 
    <script src="jquery-1.2.6.min.js" type="text/javascript"></script> 
    <script src="Popup.js" type="text/javascript"></script> 

</head> 
<body> 
    <center> 
     <a href="http://www.yensdesign.com"><img src="logo.jpg" alt="Go to yensdesign.com"/></a> 
     <div id="button"><input type="submit" value="Press me please!" /></div> 
    </center> 
    <div id="popupContact"> 
     <a id="popupContactClose">x</a> 
     <h1>Title of our cool popup, yay!</h1> 
     <p id="contactArea"> 
      Here we have a simple but interesting sample of our new stuning and smooth popup. As you can see jQuery and CSS does it easy... 
      <br/><br/> 
      We can use it for popup-forms and more... just experiment! 
      <br/><br/> 
      Press ESCAPE, Click on X (right-top) or Click Out from the popup to close the popup! 
      <br/><br/> 
      <a href="http://www.yensdesign.com"><img src="logo.jpg" alt="Go to yensdesign.com"/></a> 
     </p> 
    </div> 
    <div id="backgroundPopup"></div> 
</body> 
</html> 

我的JavaScript文件:

<script type="text/javascript"> 
    //SETTING UP OUR POPUP 
//0 means disabled; 1 means enabled; 
var popupStatus = 0; 
    //loading popup with jQuery magic! 
     alert(popupStatus); 
    function loadPopup(){ 
    //loads popup only if it is disabled 

    if(popupStatus==0){ 
     alert(popupStatus); 
    $("#backgroundPopup").css({ 
    "opacity": "0.7" 
    }); 
    $("#backgroundPopup").fadeIn("slow"); 
    $("#popupContact").fadeIn("slow"); 
    popupStatus = 1; 
    } 
    } 
    //disabling popup with jQuery magic! 
    function disablePopup(){ 
    //disables popup only if it is enabled 
    if(popupStatus==1){ 
    $("#backgroundPopup").fadeOut("slow"); 
    $("#popupContact").fadeOut("slow"); 
    popupStatus = 0; 
    } 
    } 
     //centering popup 
    function centerPopup(){ 
    //request data for centering 
    var windowWidth = document.documentElement.clientWidth; 
    var windowHeight = document.documentElement.clientHeight; 
    var popupHeight = $("#popupContact").height(); 
    var popupWidth = $("#popupContact").width(); 
    //centering 
    $("#popupContact").css({ 
    "position": "absolute", 
    "top": windowHeight/2-popupHeight/2, 
    "left": windowWidth/2-popupWidth/2 
    }); 
    //only need force for IE6 

    $("#backgroundPopup").css({ 
    "height": windowHeight 
    }); 

    } 
     $(document).ready(function(){ 
    //following code will be here 
    //LOADING POPUP 
    //Click the button event! 
    $("#button").click(function(){ 
    //centering with css 
    centerPopup(); 
    //load popup 
    loadPopup(); 
    }); 

     //CLOSING POPUP 
    //Click the x event! 
    $("#popupContactClose").click(function(){ 
    disablePopup(); 
    }); 
    //Click out event! 
    $("#backgroundPopup").click(function(){ 
    disablePopup(); 
    }); 
    //Press Escape event! 
    $(document).keypress(function(e){ 
    if(e.keyCode==27 &amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp; popupStatus==1){ 
    disablePopup(); 
    } 
    }); 

    }); 


</script> 

我的CSS文件:

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, 
font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, 
tfoot, thead, tr, th, td { 
border:0pt none; 
font-family:inherit; 
font-size:100%; 
font-style:inherit; 
font-weight:inherit; 
margin:0pt; 
padding:0pt; 
vertical-align:baseline; 
} 
body{ 
background:#fff none repeat scroll 0%; 
line-height:1; 
font-size: 12px; 
font-family:arial,sans-serif; 
margin:0pt; 
height:100%; 
} 
table { 
border-collapse:separate; 
border-spacing:0pt; 
} 
caption, th, td { 
font-weight:normal; 
text-align:left; 
} 
blockquote:before, blockquote:after, q:before, q:after { 
content:""; 
} 
blockquote, q { 
quotes:"" ""; 
} 
a{ 
cursor: pointer; 
text-decoration:none; 
} 
br.both{ 
clear:both; 
} 
#backgroundPopup{ 
display:none; 
position:fixed; 
_position:absolute; /* hack for internet explorer 6*/ 
height:100%; 
width:100%; 
top:0; 
left:0; 
background:#000000; 
border:1px solid #cecece; 
z-index:1; 
} 
#popupContact{ 
display:none; 
position:fixed; 
_position:absolute; /* hack for internet explorer 6*/ 
height:384px; 
width:408px; 
background:#FFFFFF; 
border:2px solid #cecece; 
z-index:2; 
padding:12px; 
font-size:13px; 
} 
#popupContact h1{ 
text-align:left; 
color:#6FA5FD; 
font-size:22px; 
font-weight:700; 
border-bottom:1px dotted #D3D3D3; 
padding-bottom:2px; 
margin-bottom:20px; 
} 
#popupContactClose{ 
font-size:14px; 
line-height:14px; 
right:6px; 
top:4px; 
position:absolute; 
color:#6fa5fd; 
font-weight:700; 
display:block; 
} 
#button{ 
text-align:center; 
margin:100px; 
} 
+0

平滑彈出窗口是什麼意思?是「window.open」還是「lightbox」不工作? – 2012-03-17 07:55:53

+0

到目前爲止你有什麼? – Joseph 2012-03-17 07:56:01

+0

當我彈出一張圖片時,我需要類似Facebook的東西,直到現在我刪除了所有東西,因爲我厭倦了它。我需要一個特定的工作代碼,然後我會嘗試將其包含到我的願望 – 2012-03-17 08:00:04

回答

2

你見過JQueryUI Dialog

+0

我需要類似Facebook的東西,當你彈出照片 – 2012-03-17 07:59:18

+0

我需要這樣的東西:yensdesign.com/2008/09/...,但我不知道爲什麼它不適合我:我想我是一個新手,不知道如何把它放在一起。 。請幫忙 – 2012-03-17 08:02:28

2

讓我們保持簡單吧,是嗎?

http://jsfiddle.net/TwLMD/1/

你的HTML很簡單。兩個div,一個用於彈出窗口,另一個用於覆蓋屏幕。兩個按鈕的加入給我們的東西點擊:

<div class="cover"></div> 
<div class="popup"> 
    <button class="close">close</button> 
</div> 
<button class="open">click me</button> 

的CSS增加了一些基本的造型,但在適當的地方把它們在屏幕上:

.popup 
{ 
    position:fixed; 
    border:solid 1px black; 
    width:200px; 
    height:200px; 
    left:50%; 
    top:50%; 
    margin:-100px 0 0 -100px; 
    display:none; 
    background-color:white; 
} 
.cover 
{ 
    background-color:black; 
    width:100%; 
    height:100%; 
    display:none; 
    position:fixed; 
} 

現在連線起來:

$(".open").click(function() { 
    $(".popup").fadeIn(500); 
    $(".cover").fadeTo(500, 0.5); 
}); 

$(".close").click(function() { 
    $(".popup").fadeOut(500); 
    $(".cover").fadeOut(500); 
});