jQuery实现的鼠标滑过弹出放大图片特效


Posted in Javascript onJanuary 08, 2016

本章节介绍一下一种比较常用的效果,那就是当鼠标滑过链接的时候,能够出现跟随鼠标指针移动的图层,在实际应用中,一般是对于链接的一些说明文字或者图片等等,

我们先来看个演示图

jQuery实现的鼠标滑过弹出放大图片特效

下面是代码实例:

<link rel="stylesheet" href="../css/common.css" type="text/css" />
<script type="text/javascript" src="../js/jquery-1.2.6.pack.js"></script>
<script type="text/javascript" src="../js/jquery.imagePreview.1.0.js"></script>
<script type="text/javascript">
$(function(){
	$("a.preview").preview();	 
});
</script>
<style type="text/css">
html{overflow-y:scroll;}
a.preview,a.preview:hover{text-decoration:none;}
a.preview img{margin:20px 10px;}
</style>
</head>

<body>
<div class="zxx_out_box">
 <div class="zxx_in_box">
  <h3 class="zxx_title">图片放大显示的jQuery插件演示页面</h3>
  <div class="zxx_main_con">
			<div class="zxx_test_list">
   	<a class="preview" href="http://image.3water.com/image/study/s/s256/mm1.jpg" title="张含韵">
    	<img src="http://image.3water.com/image/study/s/s128/mm1.jpg" />
    </a>
    <a class="preview" href="http://image.3water.com/image/study/s/s256/mm2.jpg" title="某不知名美女">
    	<img src="http://image.3water.com/image/study/s/s128/mm2.jpg" />
    </a>
    <a class="preview" href="http://image.3water.com/image/study/s/s256/mm3.jpg" title="某不知名美女">
    	<img src="http://image.3water.com/image/study/s/s128/mm3.jpg" />
    </a>
    <a class="preview" href="http://image.3water.com/image/study/s/s256/mm4.jpg" title="某不知名美女">
    	<img src="http://image.3water.com/image/study/s/s128/mm4.jpg" />
    </a>
    <a class="preview" href="http://image.3water.com/image/study/s/s256/mm5.jpg" title="某不知名美女">
    	<img src="http://image.3water.com/image/study/s/s128/mm5.jpg" />
    </a>
   </div>   
  </div>

 </div>
</div>
</body>
</html>

以上代码实现了我们的要求,小伙伴们觉着怎么样呢

接下来我们看看使用方法简要说明:

1.需要借助a标签的href属性,此jQuery插件的原理是当鼠标移至缩略图(或链接文字时),会加载一段含有href指向路径的大图html片段,该片段根据鼠标的位置绝对定位。于是产生了鼠标移到缩略图上显示大图的效果。大图的地址就是a标签的href属性的内容。例如:<a href=”xx.jpg”>缩略图</a> 如果此a标签含有显示大图的方法,则页面就会显示href所指向的“xx.jpg”这个图片。

2.使用的方法是:目标选择器.preview();例如上面的<a href=”xx.jpg”>缩略图</a>就可以使用$(“a”).preview();这段代码实现鼠标移到“缩略图”这个文字链接上显示xx.jpg这张图片的效果。

3.仅支持png,gif,jpg,bmp四种格式的图片,您可以修改插件代码的正则表达式扩展支持的图片格式类型。

下面简单介绍一下实现过程:

一.代码注释:

1.this.screenshotPreview=function(){ },声明一个函数用来实现跟随效果,在本效果中,this其实是可以省略,它指向window。

2.xOffset=10,声明一个变量,用来规定鼠标指针距离弹出图片的横向距离。

3.yOffset=30,声明一个变量,用来规定鼠标指针距离弹出图片的纵向距离。

4.$("a.screenshot").hover(function(e){},function(e){}),规定当鼠标移到链接和离开链接所要执行的函数。

5.this.t = this.title,将链接的title属性值赋值给t属性,这里的this是指向当前鼠标悬浮的链接对象。

6.var c = (this.t != "") ? "<br/>" + this.t : "",如果this.t不为空,也就是存在title属性值,那么插入一个换行符并且连接当前标题内容,否则将c设置为空。

7.$("body").append("<p id='screenshot'><img src='"+ this.rel +"'/>"+ c +"</p>"),将图片和相关说明添加到body。

8.$("#screenshot").css("top",(e.pageY-xOffset)+"px").css("left",(e.pageX+yOffset)+"px").fadeIn("fast"),设置p元素的top和left属性值,并且采用淡入效果展现。

9.this.title=this.t,将title内容赋值给this.title,其实不要这一句也没有任何问题,有点多余。

10.$("#screenshot").remove(),移出p元素。

11.$("a.screenshot").mousemove(function(e){}),用来设置当鼠标指针移动时,图片能够跟随。

12.$("#screenshot").css("top",(e.pageY-xOffset)+"px") .css("left",(e.pageX+yOffset)+"px"),设置p元素的top和left属性值,能够实现跟随效果。

二.相关阅读:

1.hover()函数可以参阅jQuery的hover事件一章节。
2.append()函数可以参阅jQuery的append()方法一章节。
3.css()函数可以参阅jQuery的css()方法一章节。
4.pageY属性可以参阅jQuery的event.pageY属性一章节。
5.fadeIn()函数可以参阅jQuery的fadeIn()方法一章节。
6.remove()函数可以参阅jQuery的remove()方法一章节。
7.mousemove事件可以参阅jQuery的mousemove事件一章节。

Javascript 相关文章推荐
IE与firefox之jquery用法区别
Oct 03 Javascript
JavaScript中的View-Model使用介绍
Aug 11 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
Oct 24 Javascript
ajax请求乱码的解决方法(中文乱码)
Apr 10 Javascript
JS实现选项卡实例详解
Nov 17 Javascript
基于javascript实现页面加载loading效果
Sep 15 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
May 17 Javascript
JS中sort函数排序用法实例分析
Jun 16 Javascript
原生JS实现 MUI导航栏透明渐变效果
Nov 07 Javascript
基于React+Redux的SSR实现方法
Jul 03 Javascript
JavaScript常见鼠标事件与用法分析
Jan 03 Javascript
Vue-CLI 项目在pycharm中配置方法
Aug 30 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
Jan 08 #Javascript
javascript中select下拉框的用法总结
Jan 07 #Javascript
详解JS中Array对象扩展与String对象扩展
Jan 07 #Javascript
js创建对象的方法汇总
Jan 07 #Javascript
JavaScript截取、切割字符串的技巧
Jan 07 #Javascript
js确认框confirm()用法实例详解
Jan 07 #Javascript
实例讲解jquery与json的结合
Jan 07 #Javascript
You might like
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
Laravel第三方包报class not found的解决方法
2019/10/13 PHP
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
Javascript中的高阶函数介绍
2015/03/15 Javascript
javascript遇到html5的一些表单属性
2015/07/05 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
分分钟玩转Vue.js组件(二)
2017/03/01 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
2017/03/29 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
vue加载完成后的回调函数方法
2018/09/07 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
Python+pandas计算数据相关系数的实例
2018/07/03 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
python实现随机漫步方法和原理
2019/06/10 Python
Python数据可视化图实现过程详解
2020/06/12 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
银行简历自我评价
2014/02/11 职场文书
《童年的发现》教学反思
2014/02/14 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
养成教育主题班会
2015/08/13 职场文书
财务人员廉洁自律心得体会
2016/01/13 职场文书