鼠标悬停小图标显示大图标


Posted in Javascript onJanuary 22, 2016

页面元素为div->table->tr->td,对于td中的图片,鼠标悬停上则显示大图片,鼠标离开则大图片消失:

首先需要知道jq创建dom元素语法;$(html标签),例如这里创建了一个img标签var img = $("<img class='changePhoto'></img>");

其次鼠标的悬停与离开这里使用的是hover方法,语法为$(selector).hover(inFunction,outFunction),
规定当鼠标指针悬停在被选元素上时要运行的两个函数。其中inFunction是必须的,outFunction是可选的。

该方法触发 mouseenter 和 mouseleave 事件。

注意:如果只规定了一个函数,则它将会在 mouseenter 和 mouseleave 事件上运行。

这里定义inFunction为确定大图片的位置,outFunction为remove创建的img节点。

1)只创建对象是不够的,还需要将创建的对象添加到文档节点中去,jq中使用的方法为

append() - 在被选元素的结尾插入内容
prepend() - 在被选元素的开头插入内容
after() - 在被选元素之后插入内容
before() - 在被选元素之前插入内容

应用在这里则为先给该img赋值,再append:

img.attr("src", $element.find(".prePhoto").attr("src"));
$element.append(img);

2)确定大图片位置的时候,需要三个参数,第一个是参照元素,这里选的是td的parents元素,tr:var $element = $(this).parents("tr")。

第二个是本次创建的目标元素,这里是img,第三个是目标元素可以出现的区域元素,一般是一个很大的元素,这里是table的父元素div,$(".fatherDiv")

因此,具体的方法为,

function getPosition($element, img, $(".fatherDiv"){
var top = $element.position().top + $element.height();//得到top:参照元素的top + 参照元素本身的height。
var maxBottom = $(".fatherDiv").height();//得到区域元素的height。
var minTop = 40;
if (top + img.height() > maxBottom) {
top = $element.position().top - img.height();
}
if (top < minTop) {//两个if判断,保证无论怎么划动鼠标的滑轮,目标元素始终出现在屏幕上。
top = minTop;
}
var $firstElement = $($(".fatherDivtbody tr")[0]);
img.css('top',top - $firstElement.position().top + 40);
}

3)remove创建的对象;$element.remove();

4) 目标元素的css需要满足一些条件:position:absolute

.changePhoto {
position: absolute;
width: 120px;
height: 160px;
left: 300px;
right: 10px;
float: right;
z-index: 9;
}
Javascript 相关文章推荐
JavaScript 提升运行速度之循环篇 译文
Aug 15 Javascript
js实现在文本框光标处添加字符的方法介绍
Nov 24 Javascript
Jquery validation remote 验证的缓存问题解决方法
Mar 25 Javascript
jQuery根据name属性进行查找的用法分析
Jun 23 Javascript
深入理解jQuery3.0的domManip函数
Sep 01 Javascript
webpack 2.x配置reactjs基本开发环境详解
Aug 08 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
Aug 17 Javascript
webpack开发环境和生产环境的深入理解
Nov 08 Javascript
微信小程序实现的一键拨号功能示例
Apr 24 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
Sep 25 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
Mar 02 Javascript
JavaScrip如果基于url实现图片下载
Jul 03 Javascript
在JavaScript中call()与apply()区别
Jan 22 #Javascript
很全面的JavaScript常用功能汇总集合
Jan 22 #Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
Jan 22 #Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
Jan 22 #Javascript
JavaScript学习笔记整理之引用类型
Jan 22 #Javascript
jQuery弹层插件jquery.fancybox.js用法实例
Jan 22 #Javascript
基于JS实现新闻列表无缝向上滚动实例代码
Jan 22 #Javascript
You might like
PHP调用JAVA的WebService简单实例
2014/03/11 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
理解Javascript闭包
2013/11/01 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2015/04/01 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
基于jquery二维码生成插件qrcode
2017/01/07 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
在Python中实现贪婪排名算法的教程
2015/04/17 Python
Python编程中的文件操作攻略
2015/10/16 Python
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
大学校庆策划书
2014/01/31 职场文书
向领导表决心的话
2014/03/11 职场文书
服务承诺书格式
2014/05/21 职场文书
运动会口号大全
2014/06/07 职场文书
人代会标语
2014/06/30 职场文书
干部对照检查材料范文
2014/08/26 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
求职简历自我评价范文
2015/03/10 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS