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


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 相关文章推荐
短信提示使用 特效
Jan 19 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
Oct 28 Javascript
通过隐藏iframe实现无刷新上传文件操作
Mar 16 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
Feb 14 Javascript
微信小程序页面生命周期详解
Jan 31 Javascript
浅谈Node 调试工具入门教程
Mar 20 Javascript
vue 下列表侧滑操作实例代码详解
Jul 24 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
Aug 07 Javascript
说说Vuex的getters属性的具体用法
Apr 15 Javascript
socket在egg中的使用实例代码详解
May 30 Javascript
javascript实现点击小图显示大图
Nov 29 Javascript
Vue3如何理解ref toRef和toRefs的区别
Feb 18 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数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
JavaScript的document对象和window对象详解
2010/12/30 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
python写一个随机点名软件的实例
2019/11/28 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
Python多线程的退出控制实现
2020/08/10 Python
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
垃圾回收的优点和原理
2014/05/16 面试题
一夜的工作教学反思
2014/02/08 职场文书
冲出亚马逊观后感
2015/06/03 职场文书
大学开学感言
2015/08/01 职场文书
Redis基本数据类型List常用操作命令
2022/06/01 Redis