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


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 相关文章推荐
在IE浏览器中resize事件执行多次的解决方法
Jul 12 Javascript
JQuery循环滚动图片代码
Dec 08 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
Jan 15 Javascript
javascript 二进制运算技巧解析
Nov 27 Javascript
用Jquery重写windows.alert方法实现思路
Apr 03 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
Aug 02 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
Dec 11 Javascript
XML、HTML、CSS与JS的区别整理
Feb 18 Javascript
js实现抽奖效果
Mar 27 Javascript
js实现二级菜单点击显示当前内容效果
Apr 28 Javascript
bootstrap下拉框动态赋值方法
Aug 10 Javascript
微信小程序实现首页弹出广告
Dec 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转成EXE文件
2006/10/09 PHP
php 调用远程url的六种方法小结
2009/11/02 PHP
php 引用(&amp;)详解
2009/11/20 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
php和asp语法上的区别总结
2019/05/12 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
Javascript调试工具(下载)
2007/01/09 Javascript
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
require.js中的define函数详解
2017/07/10 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
[01:03:47]VP vs NewBee Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
Python实现的爬虫刷回复功能示例
2018/06/07 Python
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
《雾凇》教学反思
2014/02/17 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
导航工程专业自荐信
2014/09/02 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
乡镇党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
个人年终总结开头
2015/03/06 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书