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


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 冒号 使用说明
Jun 06 Javascript
Array.prototype.concat不是通用方法反驳[译]
Sep 20 Javascript
js使用ajax读博客rss示例
May 06 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
Oct 10 Javascript
提升jQuery的性能需要做好七件事
Jan 11 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
Mar 08 Javascript
js获取时间精确到秒(年月日)
Mar 16 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
Jan 01 Javascript
设置cookie指定时间失效(实例代码)
May 28 Javascript
详解es6超好用的语法糖Decorator
Aug 01 Javascript
javascript获取select值的方法完整实例
Jun 20 Javascript
Vue Elenent实现表格相同数据列合并
Nov 30 Vue.js
在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函数代码
2010/04/22 PHP
自己在做项目过程中学到的PHP知识收集
2012/08/20 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
JavaScript学习笔记(十)
2010/01/17 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
Extjs4 GridPanel 的几种样式使用介绍
2013/04/18 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
JavaScript实现滑动门效果
2020/01/18 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
Python中的引用和拷贝浅析
2014/11/22 Python
总结python中pass的作用
2019/02/27 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
资深生产主管自我评价
2013/09/22 职场文书
文员的职业生涯规划发展方向
2014/02/08 职场文书
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
民生工程实施方案
2014/03/22 职场文书
环保倡议书
2014/04/14 职场文书
党员承诺书范文
2014/05/19 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
关于环保的活动方案
2014/08/25 职场文书
整脏治乱工作简报
2015/07/21 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书