jQuery实现网页右下角悬浮层提示详解编程语言

最近有同事提到类似网页右下角的消息悬浮提示框的制作。我之前也做过一个类似的例子,很简单。是仿QQ消息。现在感觉之前的那个例子只是说了实现原理,整体上给你的感觉还是太丑,今天为大家带来一个新的例子。是Discuz右下角悬浮层提示的。运行效果如下:


这里写图片描述

代码如下:

<!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>jQuery实现网页右下角悬浮层提示</title> 
<style type="text/css"> 
*{margin:0;padding:0;list-style-type:none;} 
a,img{border:0;} 
body{font:12px/180% Arial, Helvetica, sans-serif, "新宋体";} 
/* pop */ 
#pop{background:#fff;width:260px;border:1px solid #e0e0e0;font-size:12px;position:fixed;right:10px;bottom:10px;} 
#popHead{line-height:32px;background:#f6f0f3;border-bottom:1px solid #e0e0e0;position:relative;font-size:12px;padding:0 0 0 10px;} 
#popHead h2{font-size:14px;color:#666;line-height:32px;height:32px;} 
#popHead #popClose{position:absolute;right:10px;top:1px;} 
#popHead a#popClose:hover{color:#f00;cursor:pointer;} 
#popContent{padding:5px 10px;} 
#popTitle a{line-height:24px;font-size:14px;font-family:'微软雅黑';color:#333;font-weight:bold;text-decoration:none;} 
#popTitle a:hover{color:#f60;} 
#popIntro{text-indent:24px;line-height:160%;margin:5px 0;color:#666;} 
#popMore{text-align:right;border-top:1px dotted #ccc;line-height:24px;margin:8px 0 0 0;} 
#popMore a{color:#f60;} 
#popMore a:hover{color:#f00;} 
</style> 
</head> 
<body style="height:1200px;"> 
<script type="text/javascript" src="js/jquery.min.js"></script> 
<script type="text/javascript"> 
(function($j){ 
$j.positionFixed = function(el){ 
$j(el).each(function(){ 
new fixed(this) 
}) 
return el;                   
} 
$j.fn.positionFixed = function(){ 
return $j.positionFixed(this) 
} 
var fixed = $j.positionFixed.impl = function(el){ 
var o=this; 
o.sts={ 
target : $j(el).css('position','fixed'), 
container : $j(window) 
} 
o.sts.currentCss = { 
top : o.sts.target.css('top'),               
right : o.sts.target.css('right'),               
bottom : o.sts.target.css('bottom'),                 
left : o.sts.target.css('left')              
} 
if(!o.ie6)return; 
o.bindEvent(); 
} 
$j.extend(fixed.prototype,{ 
ie6 : $.browser.msie && $.browser.version < 7.0, 
bindEvent : function(){ 
var o=this; 
o.sts.target.css('position','absolute') 
o.overRelative().initBasePos(); 
o.sts.target.css(o.sts.basePos) 
o.sts.container.scroll(o.scrollEvent()).resize(o.resizeEvent()); 
o.setPos(); 
}, 
overRelative : function(){ 
var o=this; 
var relative = o.sts.target.parents().filter(function(){ 
if($j(this).css('position')=='relative')return this; 
}) 
if(relative.size()>0)relative.after(o.sts.target) 
return o; 
}, 
initBasePos : function(){ 
var o=this; 
o.sts.basePos = { 
top: o.sts.target.offset().top - (o.sts.currentCss.top=='auto'?o.sts.container.scrollTop():0), 
left: o.sts.target.offset().left - (o.sts.currentCss.left=='auto'?o.sts.container.scrollLeft():0) 
} 
return o; 
}, 
setPos : function(){ 
var o=this; 
o.sts.target.css({ 
top: o.sts.container.scrollTop() + o.sts.basePos.top, 
left: o.sts.container.scrollLeft() + o.sts.basePos.left 
}) 
}, 
scrollEvent : function(){ 
var o=this; 
return function(){ 
o.setPos(); 
} 
}, 
resizeEvent : function(){ 
var o=this; 
return function(){ 
setTimeout(function(){ 
o.sts.target.css(o.sts.currentCss)       
o.initBasePos(); 
o.setPos() 
},1)     
}            
} 
}) 
})(jQuery) 
function Pop(title,url,intro){ 
this.title=title; 
this.url=url; 
this.intro=intro; 
this.apearTime=1000; 
this.hideTime=500; 
this.delay=10000; 
//添加信息 
this.addInfo(); 
//显示 
this.showDiv(); 
//关闭 
this.closeDiv(); 
} 
Pop.prototype={ 
addInfo:function(){ 
$("#popTitle a").attr('href',this.url).html(this.title); 
$("#popIntro").html(this.intro); 
$("#popMore a").attr('href',this.url); 
}, 
showDiv:function(time){ 
if (!($.browser.msie && ($.browser.version == "6.0") && !$.support.style)) { 
$('#pop').slideDown(this.apearTime).delay(this.delay).fadeOut(400);; 
} else{//调用jquery.fixed.js,解决ie6不能用fixed 
$('#pop').show(); 
jQuery(function($j){ 
$j('#pop').positionFixed() 
}) 
} 
}, 
closeDiv:function(){ 
$("#popClose").click(function(){ 
$('#pop').hide(); 
} 
); 
} 
} 
</script> 
<script type="text/javascript" > 
//页面加载调用 
window.onload=function(){ 
//使用参数:1.标题,2.链接地址,3.内容简介 
new Pop("这里是标题,哈哈", 
"http://www.xttblog.com", 
"欢迎大家关注我的博客!如有疑问,请加QQ群:135430763共同学习!"); 
} 
</script> 
<div id="pop" style="display:none;"> 
<div id="popHead"> <a id="popClose" title="关闭">关闭</a> 
<h2>温馨提示</h2> 
</div> 
<div id="popContent"> 
<dl> 
<dt id="popTitle"><a href="http://blog.csdn.net/xmtblog/" target="_blank">这里是标题</a></dt> 
<dd id="popIntro">这里是内容简介</dd> 
</dl> 
<p id="popMore"><a href="http://blog.csdn.net/xmtblog/" target="_blank">查看 »</a></p> 
</div> 
</div> 
<div style="text-align:center;clear:both"> 
<p>欢迎大家关注我的个人博客,或者加qq群135430763共同学习!</p> 
<p><a href="http://blog.csdn.net/xmtblog/" target="_blank">伪专家</a></p> 
</div> 
</body> 
</html>

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8623.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论