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


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的parseInt 取整使用
May 09 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
May 11 Javascript
javascript五图轮播切换实用版
Aug 17 Javascript
jquery实现手机发送验证码的倒计时代码
Feb 12 Javascript
javascript实现禁止复制网页内容汇总
Dec 30 Javascript
bootstrap警告框使用方法解析
Jan 13 Javascript
微信小程序模拟cookie的实现
Jun 20 Javascript
vue-cli3+typescript新建一个项目的思路分析
Aug 06 Javascript
JS中this的4种绑定规则详解
Feb 04 Javascript
详解vue或uni-app的跨域问题解决方案
Feb 21 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
Feb 06 Javascript
小程序实现筛子抽奖
May 26 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中的登陆login
2007/01/18 PHP
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
JavaScript异步调用定时方法并停止该方法实现代码
2012/03/16 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
js判断url是否有效的两种方法
2014/03/04 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
[55:03]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.20
2020/11/20 DOTA
Python中规范定义命名空间的一些建议
2016/06/04 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
元组列表字典(莫烦python基础)
2019/04/03 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
extern在函数声明中是什么意思
2014/01/19 面试题
师范应届毕业生自荐信
2013/11/18 职场文书
中国入世承诺
2014/04/01 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
生产车间标语
2014/06/11 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
淘宝文案策划岗位职责
2015/04/14 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
Mysql文件存储图文详解
2021/06/01 MySQL