JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果


Posted in Javascript onJuly 02, 2014

基于项目的需要,需要制作出如下的一种页面效果:当用户鼠标经过好友列表中好友头像时,显示该好友的基本资料,其实也就是类似QQ客户端的那种功能。
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
网上找了很多代码,基本都实现了鼠标悬浮之后弹出div,离开之后马上就消失了。还有些纯CSS的代码实现了这样的效果,但是对我没用,我需要的是JS的(因为我的数据还要通过Ajax取得),并且鼠标离开后不能马上隐藏,这个div上还有功能入口。这个页面效果折腾了我一天,由此可见我的JS和CSS技术有待提高...

搜索了好久,终于发现了可行的2个思路如下,这2个方法有个例子,不是我写的,我也没用到,转过来分享一下,演示地址。我的方法参考了方法B的思路。

方法A:

把浮动div和触发元素a放于同一个父级元素内,鼠标经过父级元素时触发显示。这样鼠标移动到div时仍然 处于该父级元素内,则div不会隐藏。

方法B:

鼠标经过a时弹出div,鼠标离开a时设置一个计时器用来关闭div,如果鼠标移动到div后则清除计时器。
—————————————————————————————————————————————————————————————————————————————

我这个方法就是采用了上面方法B的思想,当用户离开触发事件的图像后,资料卡div要延时3秒才后关闭,用户拥有足够的时间进行相应的操作,当用户点击其他好友图像时,则会立刻调用hidden方法,将之前的打开正在计时的div关闭。

下面给出我的方法的JS代码:

//显示资料卡 
var beforeId; //定义全局变量 
function showInfoCard(thisObj,id){ 
this.hidden(beforeId); //立刻隐藏前一个选中弹出来的div 
beforeId = id; 
// alert(id); 
// var d = $(thisObj); 
// var pos = d.offset(); 
// var t = pos.top + d.height() - 5; // 弹出框的上边位置 
// var l = pos.left - d.width() - 600; // 弹出框的左边位置 
// $("#"+id).css({ "top": t, "left": l }).show(); 
// 

var objDiv = $("#"+id); 

$(objDiv).css("display","block"); 

$(objDiv).css("left", event.clientX-280); //弹出框的位置X值 

$(objDiv).css("top", event.clientY-10); //弹出框位置Y值 
} 
function hideInfoCard(id){ //隐藏div 
//延时3秒 
setTimeout('hidden('+id+')',3000); 
} 

function hidden(id){ 
$("#"+id).hide(); 
}

下面是HTML中的隐藏的div代码片段:

<div id="id" style="display:none; width:250px; height:150px; background-color:#D1EEEE;position:absolute;"></div>

在HTML中,需要调用showInfoCard和hideInfoCard方法,使用以下语句监听鼠标事件:

onmouseover="showInfoCard(this,'${friend.friendId}')" onmouseout="hideInfoCard('${friend.friendId}')"

这些都是动态的代码片段,采用的时候需要引入jquery.js框架,当然也可以修改成纯JS的。上面的完成了,AJAX取得信息,然后利用JS在上面div中插入HTML代码即可完成显示,最后来张初步的效果图,挺丑的...
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果

Javascript 相关文章推荐
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
Dec 12 Javascript
jQuery Chart图表制作组件Highcharts用法详解
Jun 01 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
Jun 01 Javascript
轻松理解Javascript变量的相关问题
Jan 20 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
Feb 23 Javascript
Map.vue基于百度地图组件重构笔记分享
Apr 17 Javascript
JS中type=&quot;button&quot;和type=&quot;submit&quot;的区别
Jul 04 Javascript
angular5 httpclient的示例实战
Mar 12 Javascript
Vue项目中使用jquery的简单方法
May 16 jQuery
HTML+JavaScript实现扫雷小游戏
Sep 30 Javascript
基于vue实现探探滑动组件功能
May 29 Javascript
如何理解Vue前后端数据交互与显示
May 10 Vue.js
jquery序列化表单以及回调函数的使用示例
Jul 02 #Javascript
IE8下Jquery获取select选中的值post到后台报错问题
Jul 02 #Javascript
js面向对象编程之如何实现方法重载
Jul 02 #Javascript
jquery.validate.js插件使用经验记录
Jul 02 #Javascript
escape编码与unescape解码汉字出现乱码的解决方法
Jul 02 #Javascript
js获取IP地址的方法小结
Jul 01 #Javascript
jQuery截取指定长度字符串的实现原理及代码
Jul 01 #Javascript
You might like
DISCUZ 分页代码
2007/01/02 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
jQuery中innerWidth()方法用法实例
2015/01/19 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
Node.js Sequelize如何实现数据库的读写分离
2016/10/23 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
zookeeper python接口实例详解
2018/01/18 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
python 瀑布线指标编写实例
2020/06/03 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
python zip()函数的使用示例
2020/09/23 Python
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
应届毕业生的个人自我鉴定
2013/10/24 职场文书
同事打架检讨书
2015/05/06 职场文书
红色故事汇观后感
2015/06/18 职场文书
Java并发编程之详解CyclicBarrier线程同步
2021/06/23 Java/Android
springcloud整合seata
2022/05/20 Java/Android