效果如下图:

1、原图

2、放大镜效果:

插件源码如下:

/*
*
* JQUERY 简洁无极放大镜插件-zoomer
* Author:盛世游侠
* QQ:418873053
* Date:2013-11-22
*
*/
(function($) {
$.fn.zoomer = function(o){
o = $.extend({
pic:null,//原图img的容器
leftImg:null,//原图img本身
drag:null,//原图img选看区
bigpic:null,//大图img的容器
box:null,//大图img本身
//img_zoom参数是指放大的倍数,取值范围从1到无穷大,可以取小数。
//img_zoom参数决定了大图长和宽,以及大图显示区域的长和宽。该参数可以自己设置,也可以默认,如果大图与原图不是同一张图,建议默认。
img_zoom:o.box.innerWidth()/o.leftImg.innerWidth()
}, o || {}); o.pic.mouseout(function(){
o.drag.hide();
o.bigpic.hide();
});
//重置大图宽和高,使其与原图成一定比例
o.box.width(o.leftImg.width()*o.img_zoom);
o.box.height(o.leftImg.height()*o.img_zoom);
//原图选看区移动事件函数
o.pic.mousemove(function(e){
o.drag.show();
o.bigpic.show(); //重置大图显示区长和宽与原图的选看区长和宽成一定比例
o.bigpic.width(o.drag.width()*o.img_zoom);
o.bigpic.height(o.drag.height()*o.img_zoom); //原图选看区的实时位置(原图选看区在HTML文档中的实时left和实时top)
var drag_x=e.pageX - o.pic.offset().left-o.drag.innerWidth()/2;
var drag_y=e.pageY -o.pic.offset().top-o.drag.innerHeight()/2; //使原图选看区的实时位置不超出原图的边界
if (drag_x<0){drag_x=0;}
if (drag_x>o.pic.width()-o.drag.width()) {drag_x=o.pic.width()-o.drag.width()};
if (drag_y<0){drag_y=0;}
if (drag_y>o.pic.height()-o.drag.height()) {drag_y=o.pic.height()-o.drag.height()}; //实时设置原图选看区在原图中的位置,这里将jQuery对象转换为了Dom对象然后赋值,所以需要注意drag.style.left要有‘px’单位。
o.drag.get(0).style.left=drag_x+'px';
o.drag.get(0).style.top=drag_y+'px'; //实时设置大图在大图显示区域中的卷动值scrollLeft和scrollTop
o.bigpic.scrollLeft(drag_x*o.img_zoom);
o.bigpic.scrollTop(drag_y*o.img_zoom);
});
};
})(jQuery);

配套的html代码如下:

    <div class="showimg">
<div id="bigimg" class="bigimg">
<a href="images/upload/p2_01.gif"><img src="data:images/upload/p2_01.gif" id="leftImg" title="bigimg" /></a>
<div id="drag"><!--放大镜图标--></div>
</div> <div class="bigpic" id="bigpic"><img id='box'src="data:images/upload/p2_01.gif"></div> <div class="litimg">
<a class="hover_a" href="#"><span><b></b></span><img src="data:images/upload/p2_01.gif" /><u></u></a>
<a href="#"><span><b></b></span><img src="data:images/upload/p19_04.gif" /><u></u></a>
<a href="#"><span><b></b></span><img src="data:images/upload/index_17.jpg" /><u></u></a>
</div>
</div>

配套的插件调用代码:

<script type="text/javascript">
/*初始化插件*/
$().zoomer({
pic:$('#bigimg'),
bigpic:$('#bigpic'),
box:$('#box'),
drag:$('#drag'),
leftImg:$('#leftImg')
});
</script>

然后我们给它加上一个点击小图切换对应大图的功能:

<script type="text/javascript">

/*点击小图片切换大图片*/
$(function(){
$('.litimg a').click(function(){
var litsrc = $(this).children('img').attr('src');
$('.showimg #bigimg #leftImg').attr('src',litsrc);
$('.showimg .bigpic #box').attr('src',litsrc);
});
});
</script>

发布一款仿天猫产品放大镜JQuery插件的更多相关文章

  1. 分享七款视差滚动效果的jQuery 插件

    视差(Parallax)是指从不同的点看一个物体时形成的视觉差异,这个名词是源自希腊文的παράλλαξις (parallaxis),意思是”改变”.在网页设计中,视差滚动(Parallax Scr ...

  2. 推荐15款创建漂亮幻灯片的 jQuery 插件

    对于设计师,开发者,摄影师或任何创造性的个人和企业,他们自己的网站是展示他们的技能和服务的最佳场所.你可能打算设计一个新的个人作品网站,不管你是从头开始或使用模板,都会需要使用 jQuery 幻灯片插 ...

  3. 15 款优化表单的 jQuery 插件

    网页上的表单提供给用户的一种交互的方式,用户输入数据,提交到服务器,等待后续的处理.这些表单在我们浏览的网页中随处可见,也容易被我们忽略. 比如,“联系我们”页面会提供一个表单给用户填写他们的信息和想 ...

  4. Handsontable-一款仿 Excel效果的表格插件使用总结 96

    最近在做一个关于报表管理的项目,发现了一款很好用的jQuery插件-Handsontable.它真的特别给力,在 Excel 中可进行的操作,你几乎都可以在网页中做到,如拖动复制.Ctrl+C .Ct ...

  5. 15款创建美丽幻灯片的 jQuery 插件

    1. Skippr Skippr 是一个超级简单的 jQuery 幻灯片插件.仅仅是包含你的网页中引入 jquery.skippr.css 和 jquery.skippr.js 文件就能使用了. Sk ...

  6. 13款精彩实用的最新jQuery插件

    1.jQuery特色菜单 圆形动画菜单插件 jQuery是一个非常流行的WEB前端框架,尽管HTML5非常酷,但是如果HTML5结合jQuery的话就能实现更酷更实用的插件.今天分享的这款jQuery ...

  7. 2014年25 款最新最棒的jQuery插件

    网络上提供了大量非常有用的 jQuery 插件,帮助大家完善网站的体验.所以我们在这里收集了 2014 年发布的,并且是非常有用的插件,希望能帮助大家找到自己需要并且喜欢的,提升网站的质量! HAMM ...

  8. 16款创建CSS3动画的jQuery插件

    jQuery插件是用来扩展jQuery原型对象的方法. 本文搜集了用来为你的站点创建CSS3动画的一些jQuery插件. 1. jQuery Smoove Smoove 简化了CSS3转换效果.使得页 ...

  9. 图片放大镜——jQuery插件Cloud Zoom

    下载地址:cloud_zoom.rar 图片放大镜效果是一种不错的效果,多应用于电子商务.图片展示等网站,给用户带来更好的体验.实现这种效果的代码不少,今天要给大家介绍的是 Cloud Zoom,它是 ...

随机推荐

  1. ionic中使用Cordova Uglify 压缩js与css

    参照:https://www.npmjs.com/package/cordova-uglify 安装:npm install cordova-uglify 安装完成之后,打开: hooks/uglif ...

  2. KeilMDK4.7a下载地址/中文乱码解决/自动关联设置

    推荐地址1,速度更快(确定为4.7a版本,且含注册机):1.http://www.mcuzone.com/software/keil/MDK470.RAR 2.http://kuai.xunlei.c ...

  3. 关于LEA指令(单周期就可以做简单的算术计算)

    堆栈种分配的局部变量所谓的“标号”,你以为是什么?(都是那些该死的宏惹的祸,大家要都是老老实实写代码,就不会有这些疑问了).      比如你用local在栈上定义了一个局部变量LocalVar,你知 ...

  4. 多线程 Worker Thread 模式

    Worker是“工人”的意思,worker thread pattern中,工人线程(worker thread)会一次抓一件工作来处理,当没有工作可做时,工人线程会停下来等待心得工作过来. Work ...

  5. Ubuntu配置ecilpse终端启动

    1. 使用Root用户登陆:但如果要使用root用户登录,必须先为root用户设置密码: (1)打开终端,输入:sudo passwd root 然后enter 此时会提示你输入密码,在passwor ...

  6. C#之VS2010ASP.NET页面调用Web Service和winform程序调用Web Service

    一:用ASP.NET调用Web Service 打开VS2010,打开“文件-新建-网站”,选择“ASP.NET网站” 选好存储位置,语言后点击确定,进入默认页面.然后先添加Web引用,把WebSer ...

  7. HBase Java API入门

    概括 1. 创建.删除及启用禁用表.添加列等都需用到HBaseAdmin,另外需要注意删除,添加列等操作都需要禁用表 2. 表中添加数据,查询等都是和HTable相关,如果是多线程的情况下注意用HTa ...

  8. DateTime用法二

    任何项目,难免会碰到DateTime的显示问题,.net框架虽提供丰富多样的显示方法,但我很少使用,因老忘记细节,每次都要纠结到底月份在前还是年份在前:日期分隔符到底是“/”,还是“\”,还是“-”等 ...

  9. 哈希表的C语言实现

    首先介绍一下什么是哈希表.同线性表.树一样,哈希表也是一种数据结构,理想情况下可以不需要任何比较,一次存取便能得到所查记录.所以它的优点就是查找特定记录的速度快.因为哈希表是基于数组的,所以创建后就难 ...

  10. Selenium各种工具比较

    Selenium 1.0 Selenium 1.0是第一个基于浏览器的开源自动化测试工具.它可以使用所有支持http库的编程语言,也可以运行在所有支持javascript的浏览器上.当然它 也有它的缺 ...