您的位置:首页 > Web前端 > JQuery

分享一个jquery插件-主要用于显示微博人的图像和鼠标提示等poshytip

2012-10-03 16:35 681 查看
大家国庆快乐!

这种效果常常有两个需求

1鼠标移动到人图像上时,显示这个人的信息,鼠标离开人图像时隐藏这个人的相关信息

2当鼠标移动到到人的信息块时,信息依然显示,当鼠标离开人的信息块时,信息隐藏

3必须是自动关闭而不是手动关闭

例如:





通常第一个比较容易满足,但是第一个在遇到事件冒泡时,搞起来也比较麻烦,

这个时候在遇到第二个需求,就很难搞定了,

做微博APP时,常常要显示人的个人信息,想吧新浪或腾讯的那个js弄过来吧,搞了半天没找见是那一段js,

博客园里面推荐的一堆tooltip均不能满足3个要求,

找了老半天,在网上找了一个能用,

地址:http://vadikom.com/demos/poshytip/

不过这个js为了降低服务器压力,在密集使用时,会创建很多div,我优化了一点点,

代码如下

$.Poshytip=function(elm,options){

[code]if($(elm).data('Poshytipkeyint')!="1")
{

$(elm).data('Poshytipkeyint','1')

}

else

{

return;

}


this.$elm=$(elm);

this.opts=$.extend({},$.fn.poshytip.defaults,options);


this.$tip=$(['<divclass="',this.opts.className,'">',

'<divclass="tip-innertip-bg-image"></div>',

'<divclass="tip-arrowtip-arrow-toptip-arrow-righttip-arrow-bottomtip-arrow-left"></div>',

'</div>'].join('')).appendTo(document.body);



this.$arrow=this.$tip.find('div.tip-arrow');

this.$inner=this.$tip.find('div.tip-inner');

this.disabled=false;

this.content=null;

this.init();

};

[/code]

这样一个对象创建一个div,但是一个对象出现5次时仍然会创建5个div

这个应该还有进一步优化的空间,网高手放出自己的js,或这个优化优化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐