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

基于项目的需要,需要制作出如下的一种页面效果:当用户鼠标经过好友列表中好友头像时,显示该好友的基本资料,其实也就是类似QQ客户端的那种功能。

网上找了很多代码,基本都实现了鼠标悬浮之后弹出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代码即可完成显示,最后来张初步的效果图,挺丑的...

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索鼠标经过
资料卡
javascript技巧、javascript 列表、javascript下拉列表、javascript高级技巧、javascript 列表操作,以便于您获取更多的相关知识。

时间: 2024-12-02 18:13:21

JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果_javascript技巧的相关文章

JS实现类似QQ好友头像hover时显示资料卡的效果

一.应用场景 鼠标hover弹出div,并且鼠标离开后不能马上隐藏,因为这个div上还有功能入口.比如: 鼠标经过好友列表中的好友头像时显示资料卡的效果 hover时显示二维码 二.实现 用如下这样一个简单的效果:鼠标hover到A上显示B来模拟 有2种实现方式,推荐第二种,第一种有弊端下面会说. 1.方法一 原理:把触发元素A和要显示元素B放于同一个父级元素内,鼠标经过父级元素时触发显示B.这样鼠标移动到B时仍然 处于该父级元素内,则div不会隐藏. 代码: <!DOCTYPE html>

基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)_javascript技巧

一.应用场景 鼠标hover弹出div,并且鼠标离开后不能马上隐藏,因为这个div上还有功能入口.比如: 鼠标经过好友列表中的好友头像时显示资料卡的效果如下所示: hover时显示二维码 二.实现 用如下这样一个简单的效果:鼠标hover到A上显示B来模拟 有2种实现方式,推荐第二种,第一种有弊端下面会说. 1.方法一 原理:把触发元素A和要显示元素B放于同一个父级元素内,鼠标经过父级元素时触发显示B.这样鼠标移动到B时仍然 处于该父级元素内,则div不会隐藏. 代码: <!DOCTYPE ht

网站好友列表中每个好友的头像都要读取一次数据库?这样效率会不会太低?

问题描述 用户的部分是这么设计的:在数据库里有一个用户是否上传了头像的标志,如果用户上传了自己的头像,那么就用用户的头像,该标志设置为true,如果用户没有上传头像,则使用默认头像,数据库中的标志为false.最近网站做到好友列表的部分了,每个好友都有自己的头像.那么显示每个好友的头像都需要去用户表里读一次,看看是否上传了头像,这样是不是太耗费资源了?请问有什么好的办法,谢谢. 解决方案 解决方案二:字段不为空就读字段的图片地址,为空就默认一个图片地址~解决方案三:我想不出別的好辦法,看高人.解

JS实现鼠标滑过显示边框的菜单效果_javascript技巧

本文实例讲述了JS实现鼠标滑过显示边框的菜单效果.分享给大家供大家参考,具体如下: <html> <head> <title>JS鼠标滑过显示边框菜单</title> </head> <body> <style> .menulines{ border:1px solid white; } .menulines a{ text-decoration:none; color:red; } </style> <

js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果_javascript技巧

本文实例讲述了js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果.分享给大家供大家参考.具体如下: 这是一款可在同一页面中多次调用的TAB选项卡代码,仿百度风云榜的TAB切换效果,用到了几张修饰图片,请顺着代码下载所需的图片,然后上传到你的网站中,修改代码内的路径就可以用了. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-f-baidu-style-tab-cha-codes/ 具体代码如下: <!DOCTYPE html PUBL

鼠标移到图片上变大显示而不是放大镜效果_javascript技巧

ToopTip.js: 复制代码 代码如下: function getViewportHeight() { if (window.innerHeight!=window.undefined) return window.innerHeight; if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight; if (document.body) return document.body.cl

js计算时间差代码【包括计算,天,时,分,秒】_javascript技巧

var begintime_ms = Date.parse(new Date(begintime.replace(/-/g, "/"))); //begintime 为开始时间 var endtime_ms = Date.parse(new Date(endtime.replace(/-/g, "/")));   // endtime 为结束时间 得到的结果为 毫秒数,可根据 毫秒数的大小,来判断时间. 当然根据毫秒数 可以根据他们的差值 来求相差的天数或是小时等.

删除好友后,好友仍然存在于好友列表中,这是为什么?

问题描述 删除好友后,好友仍然存在于好友列表中,这是为什么? 解决方案 要先清除缓存,再刷新列表.

QQ如何查看谁删除了我与我还在他好友列表中

怎么查看谁偷偷(悄悄的)删除了我 1. 被人偷删除我们要如何知道呢,下面我来具体告诉你吧.首先点开你的怀疑目标,在QQ好友列表中,双击他/她,打开聊天对话框  2.我们如觉得XX删除了我,我在QQ中找到它然后打开的好友聊天窗口中,然后我们右击QQ秀,在弹出菜单点击"和好友的QQ秀合影"菜单,如图. 3.这样就会进入到QQ show的页面,如果它把我删除了QQ show就会显示"您不是对方的好友,不能进行合照"这样你就明白了吧. 4.还有更简单的就是直接进入QQ sh