我们使用QQ时经常需要查看朋友的资料卡,当我们把鼠标移入头像时,资料卡显示,并且鼠标能在头像与资料卡之间能随意移动,当鼠标移出头像或资料卡时,资料卡延时隐藏。
实质就是延时提示框问题!

首先写好布局:

<style>div { float:left; margin:5px; }.head { width:50px;height:50px;background-color:pink; }.info { width:250px;height:200px;background-color:blue;display:none;  }
</style>
<div><div class="head"></div><div class="info"></div>
</div>

其次js部分:
思路:
(1)鼠标移入头像,资料卡显示;鼠标移出头像,资料卡延时隐藏setTimeout
(2)鼠标移入资料卡,资料卡仍显示,并清除资料卡延时隐藏的变量
(3)鼠标移出资料卡,资料卡延时隐藏,并且此时如果在移入到头像中,资料卡扔显示,并清除资料卡延时隐藏的变量

window.onload =function(){var oHead = document.getElementsByClassName("head")[0];var oInfo = document.getElementsByClassName("info")[0];var timer = null;oHead.onmouseover=function(){clearTimeout(timer);oInfo.style.display="block";};oHead.onmouseout=function(){timer = setTimeout(function(){oInfo.style.display="none";},500); };oInfo.onmouseover=function(){clearTimeout(timer);oInfo.style.display="block";};oInfo.onmouseout=function(){timer = setTimeout(function(){oInfo.style.display="none";},500); };
};

优化代码:

oInfo.onmouseover = oHead.onmouseover=function(){clearTimeout(timer);oInfo.style.display="block";};oInfo.onmouseout = oHead.onmouseout=function(){timer = setTimeout(function(){oInfo.style.display="none";},500); };

函数封装:
注意:事件 .xx 等于 [“xx”]
第一种:函数外获取变量,调用函数,适用于一个或两个元素调用此事件

window.onload =function(){var oHead = document.getElementsByClassName("head")[0];var oInfo = document.getElementsByClassName("info")[0];reminder(oHead,oInfo,"onmouseover","onmouseout");
function reminder (div1,div2,event1,event2){、     var timer = null; div1[event1] = div2[event1]=function(){clearTimeout(timer);div2.style.display="block";};div1[event2] = div2[event2]=function(){timer = setTimeout(function(){div2.style.display="none";},500); };}};

第二种:函数外获取变量,调用函数,适用于多个元素调用此事件

window.onload =function(){      var number=0;reminder("head","info","onmouseover","onmouseout",number);function reminder (div1,div2,event1,event2,num){var oHead = document.getElementsByClassName(div1)[num];var oInfo = document.getElementsByClassName(div2)[num];var timer = null; oHead[event1] = oInfo[event1]=function(){clearTimeout(timer);oInfo.style.display="block";};oHead[event2] = oInfo[event2]=function(){timer = setTimeout(function(){oInfo.style.display="none";},500); };}};

比如,一共有三个头像的话,就可以用for循环遍历为每个元素绑定事件:

var number=null;
for(number=0;number<3;number++){reminder("head","info","onmouseover","onmouseout",number);}

js模仿QQ头像资料卡显示与隐藏相关推荐

  1. 隐藏a标签html,a标签显示隐藏 js怎么控制a标签的显示和隐藏

    js怎么控制a标签的显示和隐藏 将标签放在层里面,控制层的显示和隐藏就可以: show是层的ID名, 隐藏层:document.getElementById("show").sty ...

  2. HTML+CSS+JS实现仿QQ个人资料卡(思路+源码)

    个人名片:

  3. 插播一条 QQ头像无法正常显示问题

    问题背景 不知道啥什么,QQ群的头像有些显示不全直接是默认的头像.想一想最近也没做啥,怎么就出问题了. 后来想一想,大概是个人文件夹的文件出问题了 解决办法 好友头像显示问题的删除 MiscHead. ...

  4. 超简单的JS模仿QQ弹窗效果

    QQ的弹窗效果在网页上用JS的一个moveBy方法就可以实现,moveBy的作用就是 将窗口的位置移动到指定的地方,moveBy(xx,yy)  xx和yy就是移动的偏移量 代码如下: <scr ...

  5. 模仿qq头像上传的弹出框效果

    1.涉及到知识点,如下: 1.1.自定义对话框 1.2.动画 1.3.样式选择器 1.4.shape的使用 2.代码编写 2.1首先创建选择照片的弹出对话框的布局文件,代码如下: headicon_c ...

  6. js IntersectionObserver监听元素的显示与隐藏,图片懒加载

    IntersectionObserver监听显隐,监听元素在可视窗口中展示的比例,1:完全展示出来了,0:完全遮挡了,opacity和visibility控制的显隐是不会触发的.该api常用于图片懒加 ...

  7. QQ实训项目(登录 注册 主界面 消息列表 资料卡)

    界面 废话不多说,直接上界面 注册功能 如下:用户名存入数据库  界面检验密码是否符合规范 2:密码规范存入数据库并且加密(数据库的文件可以找我拷贝)加密是MD5加密单向加密 3:输入手机号码点击获取 ...

  8. QQ资料修改器无法连接封面服务器,QQ编辑资料失败/qq头像和昵称无法修改怎么办 是什么原因?...

    2018QQ编辑资料失败/qq头像和昵称无法修改原因及解决方法,来看看2018QQ编辑资料失败/qq头像和昵称无法修改原因及解决方法. 2018qq编辑资料失败怎么回事? 当你修改头像或网名时,左上角 ...

  9. Javascript实现 QQ好友列表的展开和隐藏

    Javascript实现 QQ好友列表的展开和隐藏 你好哇刘岩!最近再看王小波写给李银河的<爱你就像爱生命>,好生羡慕刘银河,有个如此爱她的人,也很羡慕王小波又一个陪他到老的人.其中最喜欢 ...

  10. easyui 隐藏input_easyui datagrid 列显示和隐藏

    //当查询IT基础设施的时候隐藏'STAFF_ID'.'ITSM_STAFF_ID' if($("input[name='currentstate']").val()==2){ $ ...

最新文章

  1. plaxis 2d 2020中文版
  2. tomcat配置项目路径或部署工程名
  3. SAP Spartacus默认的baseSite是从源代码什么地方读取的
  4. linux 配置EPEL源
  5. 腾讯拟全资收购搜狗;英特尔人事大变动,首席工程官将离职;TensorFlow 2.3.0 正式发布 | 极客头条
  6. 数据结构之数组的存储
  7. A Feature Descriptor: Shape Context
  8. 给多说评论系统增加颜文字
  9. 远程电脑不能复制粘贴
  10. Asp.Net Mvc基于Fleck开发的多人网页版即时聊天室
  11. android设备内部添加apn信息
  12. 熤星传媒:抖音几万粉丝能入驻星图?
  13. JS自动播放视频脚本
  14. 小a与星际探索vector向量
  15. IOC和Autofac简单说明
  16. 非侵入式负荷分解之BLUED数据集
  17. How To Resolve Stranded DBA_2PC_PENDING Entries [ID 401302.1]
  18. 2.1spring cloud 环境配置
  19. mysql命令行远程登录时,用户名密码等连接信息配置正确,出现:ERROR 1045 (HY000): Access denied for user ‘xxx'
  20. 如何解决焊盘不匹配导致生产时产生锡珠的问题

热门文章

  1. 多关键词采集搜索引擎URL网址域名
  2. 2020年,不可错过的技术圈十大“翻车”事件
  3. 常用计算机检索算符,在计算机检索中,常用的布尔逻辑算符有哪几种
  4. leetcode报错reached end of file while parsing
  5. SharePoint 2016 Search 定制开发简介系列七-Search Database with Security Trimming
  6. Excel把表中一个单元格对应多个数据汇总到一个单元格内
  7. 肿么用photoshop将位图转化成矢量图
  8. python的datetime.date日期计算——计算当月第一天、当月最后一天、前月第一天、前月最后一天、次月第一天、次月最后一天、去年的当天日期等
  9. 10分钟默写快速排序
  10. Ubuntu 16.04下安装Preempt_rt