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 相关文章推荐
jquery png 透明解决方案(推荐)
Aug 21 Javascript
超炫的jquery仿flash导航栏特效
Nov 11 Javascript
jQuery中:gt选择器用法实例
Dec 29 Javascript
Js+php实现异步拖拽上传文件
Jun 23 Javascript
JavaScript操作select元素和option的实例代码
Jan 29 Javascript
浅谈javascript中new操作符的原理
Jun 07 Javascript
Augularjs-起步详解
Jul 08 Javascript
JavaScript利用正则表达式替换字符串中的内容
Dec 12 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
Sep 18 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
Feb 02 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
Oct 20 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
Jun 07 Javascript
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
php基础知识:类与对象(2) 自动加载对象
2006/12/13 PHP
介绍几个array库的新函数 php
2006/12/29 PHP
探讨PHP中this,self,parent的区别详解
2013/06/08 PHP
wampserver改变默认网站目录的办法
2015/08/05 PHP
PHP微信支付实例解析
2016/07/22 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
Nginx+php配置文件及原理解析
2020/12/09 PHP
用jQuery中的ajax分页实现代码
2011/09/20 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
python encode和decode的妙用
2009/09/02 Python
Python编程把二叉树打印成多行代码
2018/01/04 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
工作会议欢迎词
2014/01/16 职场文书
进步之星获奖感言
2014/02/22 职场文书
付款承诺函范文
2015/01/21 职场文书
银行实习推荐信
2015/03/27 职场文书