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


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 相关文章推荐
JS 退出系统并跳转到登录界面的实现代码
Jun 29 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
Sep 25 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
Oct 30 Javascript
jquery实现textarea输入框限制字数的方法
Jan 15 Javascript
JavaScript实现在页面间传值的方法
Apr 07 Javascript
jquery结合html实现中英文页面切换
Nov 29 Javascript
vue+iview 兼容IE11浏览器的实现方法
Jan 07 Javascript
JS实现数组深拷贝的方法分析
Mar 06 Javascript
小程序实现录音上传功能
Nov 22 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
Jul 22 Javascript
JavaScript实现优先级队列
Dec 06 Javascript
TypeScript实用技巧 Nominal Typing名义类型详解
Sep 23 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
PHP5中MVC结构学习
2006/10/09 PHP
Linux编译升级php的详细方法
2013/11/04 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
非常不错的功能强大代码简单的管理菜单美化版
2008/07/09 Javascript
JavaScript模板入门介绍
2012/09/26 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
vue组件的写法汇总
2018/04/12 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
Webpack中loader打包各种文件的方法实例
2019/09/03 Javascript
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
python技能之数据导出excel的实例代码
2017/08/11 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
Python学习笔记之列表推导式实例分析
2019/08/13 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
基于pandas中expand的作用详解
2019/12/17 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
国际领先的学术出版商:Springer
2017/01/11 全球购物
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
高中毕业生自我鉴定例文
2013/12/29 职场文书
追悼会主持词
2014/03/20 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
招标保密承诺书
2015/01/20 职场文书
银行求职信范文
2019/05/13 职场文书