Js控制彈窗實(shí)現(xiàn)在任意分辨率下居中顯示
更新時(shí)間:2013年08月01日 17:48:48 作者:
彈窗居中比較煩人的是怎么才能在任意分辨率下實(shí)現(xiàn)居中顯示,為了解決此問(wèn)題,本文測(cè)試了一下案例在此與大家分享,有類似需求的朋友可以學(xué)習(xí)下
貼代碼
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>彈出窗口_www.fzitv.net</title>
<link type="text/css" rel="stylesheet" href="window.css">
<script language="javascript" type="text/javascript" src="../../jquery/jquery.js"></script>
<script language="javascript" type="text/javascript" src="window.js"></script>
<script language="javascript">
$(document).ready(function (){
$("#btn_center").click(function (){
$(window).scroll(function (){
popcenterWindow();
});
});
$("#btn_right").click(function (){
$(window).scroll(function (){
poprightWindow();
});
});
$("#btn_left").click(function (){
$(window).scroll(function (){
popleftWindow();
});
});
});
</script>
</head>
<body>
<input type="button" value="彈出居中的窗口" id="btn_center">
<input type="button" value="彈出居右的窗口" id="btn_right">
<input type="button" value="彈出居左的窗口" id="btn_left">
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div class="window" id="center">
<div class="title"><img src="close.gif">csdn歡迎您</div>
<div class="content">哈哈哈哈哈哈哈</div>
</div>
<div class="window" id="right">
<div class="title"><img src="close.gif">csdn歡迎您</div>
<div class="content">哈哈哈哈哈哈哈</div>
</div>
<div class="window" id="left">
<div class="title"><img src="close.gif">csdn歡迎您</div>
<div class="content">哈哈哈哈哈哈哈</div>
</div>
</body>
</html>
JS
//窗口的高度
var windowHeight;
//窗口的寬度
var windowWidth;
//彈窗的高度
var popHeight;
//彈窗的寬度
var popWidth;
//滾動(dòng)條滾動(dòng)的高度
var scrollTop;
//滾動(dòng)條滾動(dòng)的寬度
var scrollleft;
//延時(shí)的時(shí)間
var timeout;
function init(){
//獲得窗口的高度
windowHeight=$(window).height();
//獲得窗口的寬度
windowWidth=$(window).width();
//獲得彈窗的高度
popHeight=$(".window").height();
//獲得彈窗的寬度
popWidht=$(".window").width();
//獲得滾動(dòng)條的高度
scrollTop=$(window).scrollTop();
//獲得滾動(dòng)條的寬度
scrollleft=$(window).scrollLeft();
}
//定義關(guān)閉窗口
function closeWindow(){
$(".title img").click(function (){
$(this).parent().parent().hide("slow");
});
}
//定義彈出窗口的方法
function popcenterWindow(){
//先清空上一次的延遲
clearTimeout(timeout);
timeout=setTimeout(function (){
init();
var popY=(windowHeight-popHeight)/2+scrollTop;
var popX=(windowWidth-popWidht)/2+scrollleft;
$("#center").animate({top:popY,left:popX},300).show("slow");},300);
closeWindow();
}
function popleftWindow(){
clearTimeout(timeout);
timeout=setTimeout(function (){
init();
var popY=windowHeight+scrollTop-popHeight-10;
var popX=scrollleft-5;
$("#left").animate({top:popY,left:popX},300).show("slow");},300);
closeWindow();
}
function poprightWindow(){
clearTimeout(timeout);
timeout=setTimeout(function (){
init();
var popY=windowHeight-popHeight+scrollTop-10;
var popX=windowWidth-popWidht+scrollleft-10;
$("#right").animate({top:popY,left:popX},300).show("slow");},300);
closeWindow();
}
CSS
<SPAN style="FONT-SIZE: 18px">.window{
width:250px;
background-color:#3FF;
padding:2px;
margin:5px;
position:absolute;
display:none;
}
.content{
height:150px;
background-color:#FFF;
padding:2px;
font-size:14px;
overflow:auto;
}
.title{
padding:2px;
color:#999;
font-size:14px;
}
.title img{
float:right;
cursor:pointer;
}</SPAN>
復(fù)制代碼 代碼如下:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>彈出窗口_www.fzitv.net</title>
<link type="text/css" rel="stylesheet" href="window.css">
<script language="javascript" type="text/javascript" src="../../jquery/jquery.js"></script>
<script language="javascript" type="text/javascript" src="window.js"></script>
<script language="javascript">
$(document).ready(function (){
$("#btn_center").click(function (){
$(window).scroll(function (){
popcenterWindow();
});
});
$("#btn_right").click(function (){
$(window).scroll(function (){
poprightWindow();
});
});
$("#btn_left").click(function (){
$(window).scroll(function (){
popleftWindow();
});
});
});
</script>
</head>
<body>
<input type="button" value="彈出居中的窗口" id="btn_center">
<input type="button" value="彈出居右的窗口" id="btn_right">
<input type="button" value="彈出居左的窗口" id="btn_left">
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div class="window" id="center">
<div class="title"><img src="close.gif">csdn歡迎您</div>
<div class="content">哈哈哈哈哈哈哈</div>
</div>
<div class="window" id="right">
<div class="title"><img src="close.gif">csdn歡迎您</div>
<div class="content">哈哈哈哈哈哈哈</div>
</div>
<div class="window" id="left">
<div class="title"><img src="close.gif">csdn歡迎您</div>
<div class="content">哈哈哈哈哈哈哈</div>
</div>
</body>
</html>
JS
復(fù)制代碼 代碼如下:
//窗口的高度
var windowHeight;
//窗口的寬度
var windowWidth;
//彈窗的高度
var popHeight;
//彈窗的寬度
var popWidth;
//滾動(dòng)條滾動(dòng)的高度
var scrollTop;
//滾動(dòng)條滾動(dòng)的寬度
var scrollleft;
//延時(shí)的時(shí)間
var timeout;
function init(){
//獲得窗口的高度
windowHeight=$(window).height();
//獲得窗口的寬度
windowWidth=$(window).width();
//獲得彈窗的高度
popHeight=$(".window").height();
//獲得彈窗的寬度
popWidht=$(".window").width();
//獲得滾動(dòng)條的高度
scrollTop=$(window).scrollTop();
//獲得滾動(dòng)條的寬度
scrollleft=$(window).scrollLeft();
}
//定義關(guān)閉窗口
function closeWindow(){
$(".title img").click(function (){
$(this).parent().parent().hide("slow");
});
}
//定義彈出窗口的方法
function popcenterWindow(){
//先清空上一次的延遲
clearTimeout(timeout);
timeout=setTimeout(function (){
init();
var popY=(windowHeight-popHeight)/2+scrollTop;
var popX=(windowWidth-popWidht)/2+scrollleft;
$("#center").animate({top:popY,left:popX},300).show("slow");},300);
closeWindow();
}
function popleftWindow(){
clearTimeout(timeout);
timeout=setTimeout(function (){
init();
var popY=windowHeight+scrollTop-popHeight-10;
var popX=scrollleft-5;
$("#left").animate({top:popY,left:popX},300).show("slow");},300);
closeWindow();
}
function poprightWindow(){
clearTimeout(timeout);
timeout=setTimeout(function (){
init();
var popY=windowHeight-popHeight+scrollTop-10;
var popX=windowWidth-popWidht+scrollleft-10;
$("#right").animate({top:popY,left:popX},300).show("slow");},300);
closeWindow();
}
CSS
復(fù)制代碼 代碼如下:
<SPAN style="FONT-SIZE: 18px">.window{
width:250px;
background-color:#3FF;
padding:2px;
margin:5px;
position:absolute;
display:none;
}
.content{
height:150px;
background-color:#FFF;
padding:2px;
font-size:14px;
overflow:auto;
}
.title{
padding:2px;
color:#999;
font-size:14px;
}
.title img{
float:right;
cursor:pointer;
}</SPAN>
相關(guān)文章
JavaScript高級(jí)程序設(shè)計(jì) 閱讀筆記(十五) 瀏覽器中的JavaScript
Window對(duì)象對(duì)操作瀏覽器窗口非常有用,開(kāi)發(fā)者可以移動(dòng)或調(diào)整瀏覽器窗口的大小2012-08-08
Javascript 拖拽雛形中的一些問(wèn)題(逐行分析代碼,讓你輕松了拖拽的原理)
這篇文章主要介紹了Javascript 拖拽雛形中的一些問(wèn)題(逐行分析代碼,讓你輕松了拖拽的原理),需要的朋友可以參考下2015-01-01
JavaScript之Blob對(duì)象類型的具體使用方法
這篇文章主要介紹了JavaScript之Blob對(duì)象類型的具體使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
小程序?qū)崿F(xiàn)輪播每次顯示三條數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)輪播每次顯示三條數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
如何動(dòng)態(tài)的導(dǎo)入js文件具體該怎么實(shí)現(xiàn)
如何需要進(jìn)行動(dòng)態(tài)的導(dǎo)入js文件,那么下面的方法或許可以幫助到大家2014-01-01
JavaScript基礎(chǔ)教程之如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的promise
看了些promise的介紹,還是感覺(jué)不夠深入,所以下面這篇文章主要給大家介紹了關(guān)于JavaScript基礎(chǔ)教程之如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的promise的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-09-09

