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


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各种复制代码收集
Sep 20 Javascript
jquery自定义属性(类型/属性值)
May 21 Javascript
Javascript基础 函数“重载” 详细介绍
Oct 25 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
Apr 07 Javascript
jquery实现简单手风琴菜单效果实例
Jun 13 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
Aug 11 Javascript
详解AngularJS跨页面传值(ui-router)
Aug 23 Javascript
浅谈JavaScript作用域和闭包
Sep 18 Javascript
详解JavaScript中的六种错误类型
Sep 21 Javascript
vue router仿天猫底部导航栏功能
Oct 18 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
Dec 18 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
Apr 24 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
如何删除多级目录
2006/10/09 PHP
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
php入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
php 模拟get_headers函数的代码示例
2013/04/27 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
JavaScript中具名函数的多种调用方式总结
2014/11/08 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
jquery判断复选框选中状态以及区分attr和prop
2015/12/18 Javascript
利用Angularjs和bootstrap实现购物车功能
2016/08/31 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
python基础之入门必看操作
2017/07/26 Python
浅谈Python NLP入门教程
2017/12/25 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
Selenium webdriver添加cookie实现过程详解
2020/08/12 Python
会计系毕业个人自荐信格式
2013/09/23 职场文书
班主任个人工作反思
2014/04/28 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
检察院院长群众路线教育实践活动个人整改措施
2014/10/04 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
2016父亲节感恩话语
2015/12/09 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
详解Python为什么不用设计模式
2021/06/24 Python
nginx配置之并发频次限制
2022/04/18 Servers