这两天想要做个类似前端网登陆后滑过头像显示个人信息的效果。期间遇到不少问题,记录下来方便以后查找。
html相关
1、为了实现通用性,我在元素上加上了mypop的class和contentdiv属性具体html代码如下
<span class= "mypop" contentdiv ="#pop-infoDiv"> 测试</span >contentdiv表示的是要显示的popover的div的id(或者其他jquery的选择也可以)
<pre name="code" class="html">
2、使自定义的显示div隐藏
<div id="pop-infoDiv" hidden>
<div>< a href=" /view/back/sys"> 系统设置</a ></div>
<div><img src="eg.jpg"></div>
</div >
js相关
现在就是js部分了,设定一个base.js,然后引入就可以了
$(function(){在这里主要遇到两个问题,
$( document ).on("mouseover" ,".mypop" ,function(){
var obj=$(this);
obj.popover({
content: function() {
return $($(this).attr("contentdiv" )).html();
},
html: true,
placement: 'bottom'
});
var _this = this ;
obj.popover("show" );
$( ".popover" ).on("mouseleave" , function () {
obj.popover( 'hide');
});
});
$( document ).on("mouseout",".mypop" ,function(){ <pre name="code" class="html"> var obj=$(this);
setInterval( function () {
if (!$(".popover:hover" ).length) {
obj.popover( "hide")
}
}, 100);
});
});
1、$( document ).on("mouseout",".mypop" ,function(){ });
这里我开始用的$( ".mypop" ).on("mouselout" , function () {)};但是无效,具体什么原因我也不是很清楚,希望有看到能帮我解惑
2.、在鼠标滑出popover的显示div时
$( ".popover" ).on("mouseleave" , function () {我原本用的mouseout,结果出现不停闪烁的现象,在网上查了资料才知道
obj.popover( 'hide');
});
a、鼠标指针离开是任何子元素,都会触发 mouseout 事件。
b、只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件
最后,在完成这部分效果的过程中参考了
http://my.oschina.net/geomen/blog/178359
http://www.cnblogs.com/jenney-qiu/archive/2012/02/10/2345338.html