初学jQuery,觉得挺有意思的,然后就做了...这个!
试试窗口resize,也挺有意思的!
请给位多多指教!!
index.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>mymenu</title>
<link type="text/css" rel="stylesheet" href="menu.css" />
<script type="text/javascript" src="jquery-1.4.min.js"></script>
<script type="text/javascript" src="menu.js"></script>
</head>
<body style="overflow:hidden">
<div id="right" class="window">
<div class="title">
<img src="images/close.gif" alt="关闭" />
温馨提示!
</div>
<div class="context">
欢迎光临烟灰网(www.yanhui.com)!!
</div>
</div>
</body>
</html>
javascript:
jQuery(document).ready(function(){
var rightwin=jQuery("#right");
var windowobj=jQuery(window);
var cwinWidth=rightwin.width();
var cwinHeight=rightwin.height();
var browserWidth=windowobj.width();
var browserHeight=windowobj.height();
var scrollLeft=windowobj.scrollLeft();
var scrollTop=windowobj.scrollTop();
rightwin.mywin({left:"right",top:"bottom"},
function(){
rightwin.hide(1000);
},{left:browserWidth-cwinWidth-5,top:browserHeight}
).fadeOut(30000).dequeue();
});
/* name:mywin插件
* 参数position:窗口显示的最终位置{left:XX,top:XX}
* 参数hidefunc:关闭时调用的函数
* 参数initPos: 窗口初位置{left:XX,top:XX}
*/
jQuery.fn.mywin=function(position,hidefunc,initPos){
if(position && position instanceof Object){
var positionleft=position.left;
var positiontop=position.top;
var left;
var top;
var windowobj=$(window);
var currentwin=this;
var cwinWidth=this.outerWidth(true);
var cwinHeight=this.outerHeight(true);
var browserWidth; //浏览器宽度
var browserHeight; //浏览器高度
var scrollLeft; //
var scrollTop; //
//计算浏览器可视区域位置
function getWinDin(){
browserWidth=windowobj.width();
browserHeight=windowobj.height();
scrollLeft=windowobj.scrollLeft();
scrollTop=windowobj.scrollTop();
}
//计算浏览器的左边距
function callLeft(positionleft,browserWidth,scrollLeft,cwinWidth){
if(positionleft && typeof positionleft=="string"){
if(positionleft=="center"){
left=(browserWidth-cwinWidth)/2;
}
else if(positionleft=="left"){
left=0;
}
else if(positionleft=="right"){
left=browserWidth-cwinWidth;
}
}
else if(positionleft && typeof positionleft=="number"){
top=positionleft;
}else{
left=(browserWidth-cwinWidth)/2;
}
}
//计算浏览器的上边距
function callTop(positiontop,browserHeight,scrollTop,cwinHeight){
if(positiontop && typeof positiontop=="string"){
if(positiontop=="center"){
top=(browserHeight-cwinHeight)/2;
}
else if(positiontop=="top"){
top=0
}
else if(positiontop=="bottom"){
top=browserHeight-cwinHeight;
}
}
else if(positiontop && typeof positiontop=="number"){
top=positiontop;
}else{
top=(browserHeight-cwinHeight)/2;
}
}
//移动窗口的位置
function movewin(){
callLeft(currentwin.data("positionleft"),browserWidth,scrollLeft,cwinWidth);
callTop(currentwin.data("positiontop"),browserHeight,scrollTop,cwinHeight);
currentwin.animate({
left:left-5,
top: top
},2000);
}
//拖动窗口滚动条后重新调整窗口的相对位置
var scrolltimeout;
$(window).scroll(function(){
if(!currentwin.is(":visible")){
return;
}
clearTimeout(scrolltimeout);
scrolltimeout=setTimeout(function(){
getWinDin();
movewin();
},2000);
});
//浏览器窗口太小变化时重新调整窗口的相对位置
$(window).resize(function(){
if(!currentwin.is(":visible")){
return;
}
getWinDin();
movewin();
});
//点击关闭图标关闭窗口时间
currentwin.children(".title").children("img").click(
function(){
if(!hidefunc){
currentwin.hide(1000);
}else{
hidefunc();
}
});
//初始化窗口的位置
if(initPos && initPos instanceof Object){
var initleft=initPos.left;
var inittop=initPos.top;
if(initleft && typeof initleft=="number"){
currentwin.css("left",initleft);
}else{
currentwin.css("left",0);
}
if(inittop && typeof inittop=="number"){
currentwin.css("top",inittop);
}else{
currentwin.css("top",0);
}
currentwin.show();
}
currentwin.data("positionleft",positionleft);
currentwin.data("positiontop",positiontop);
getWinDin();
movewin();
return currentwin;
}
}
css文件:
.window{
background-color:#D0DEF0;
width:251px;
pending:2px;
margin:2px;
position:absolute;
display:none;
}
.title{
font-size:10pt;
height:10px;
width:250px;
pending:2px;
}
.title img{
float:right;
cursor:pointer;
}
.context{
background-color:white;
height:200px;
width:250px;
border:2px solid #D0DEF0;
overflow:auto;
}
分享到:
相关推荐
jQuery 实现徐徐升起的qq消息框 jQuery 实现徐徐升起的qq消息框 jQuery 实现徐徐升起的qq消息框 jQuery 实现徐徐升起的qq消息框 jQuery 实现徐徐升起的qq消息框
Clidrawable是Android自带的一个可以控制图片徐徐展开的控件,代码里详细的介绍了Clidrawable的一些基本用法!
徐徐拉开的flash帷幕
汽车行业2020年半年度投资策略报告:徐徐复苏,行稳致远
汽车行业2020年半年度投资策略报告:徐徐复苏,行稳致远.pdf
20210601-安信证券-中国中免-601888-聚焦四大成长点,免税巨头进击之路徐徐铺开.pdf
藏经阁-智能营销:徐徐展开的画卷.pdf
汽车行业2020年投资策略:冰雪消融,暖风徐徐
建筑材料行业周报:水泥夏季错峰徐徐而来.pdf
汽车行业2020年投资策略:冰雪消融,暖风徐徐.pdf
银行行业周报:年报徐徐落幕,一季度展望充满希望.pdf
该网页实现两种窗体显示效果,一种是弹出 窗体,通过页面上的按钮弹出,弹出窗体在整个画面的最中间显示。另一种是页面初始化后,出现徐徐上升的窗体,状体显示后,然后慢慢淡出。
通信行业周报:5G预计年底突破13万基站,车联网大幕徐徐展开
银行行业周报:一季报徐徐落幕,5月份银行板块是否值得?.pdf
通信行业周报:5G预计年底突破13万基站,车联网大幕徐徐展开.pdf
消费电子创新系列之一:折叠屏手机徐徐展开,技术革新带来产业升级
绿色经济系列专题(一):碳中和,四十年投资蓝图徐徐展开
汽车行业投资策略:冰雪消融,暖风徐徐-1212-财通证券-34页.pdf
消费电子创新系列之一:折叠屏手机徐徐展开,技术革新带来产业升级.pdf
计算机行业深度报告:AIOT产业万亿市场徐徐打开(2021)(55页).pdf