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


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 相关文章推荐
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
Nov 19 Javascript
Bootstrap入门书籍之(三)栅格系统
Feb 17 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
Dec 07 Javascript
微信小程序 flex实现导航实例详解
Apr 26 Javascript
深入理解Webpack 中路径的配置
Jun 17 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
Dec 06 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
Jan 31 Javascript
详解从Vue-router到html5的pushState
Jul 21 Javascript
node和vue实现商城用户地址模块
Dec 05 Javascript
javascript贪吃蛇游戏设计与实现
Sep 17 Javascript
jquery插件懒加载的示例
Oct 24 jQuery
js实现复制粘贴的两种方法
Dec 04 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面向接口编程 耦合设计模式 简单范例
2011/03/23 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
extjs 为某个事件设置拦截器
2010/01/15 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
你应该知道的30个css选择器
2014/03/19 HTML / CSS
html5表单及新增的改良元素详解
2016/06/07 HTML / CSS
Gap工厂店:Gap Factory
2017/11/02 全球购物
中间件分为哪几类
2016/09/18 面试题
电子商务专业个人的自我评价分享
2013/10/29 职场文书
大学新生欢迎词
2014/01/10 职场文书
留学自荐信写作方法
2014/01/27 职场文书
电子商务助理求职自荐信
2014/04/10 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
大学生求职计划书
2014/04/30 职场文书
工作汇报开头与结尾怎么写
2014/11/08 职场文书
安全先进个人材料
2014/12/29 职场文书
2015年度护士个人工作总结
2015/04/09 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript
详解运行Python的神器Jupyter Notebook
2021/06/03 Python