jQuery放大镜插件,demo地址:http://codepen.io/jonechen/pen/mEmJYJ,图片引用的外链,打开的速度可能有点慢;

CSS部分:

*{padding: 0; margin: 0; list-style: none;}
.img{ display: block;position: relative; }
.area{width:50px;height: 100px;background: red;opacity: 0.6;position: absolute;left: 0;top: 0;display: none;}
.box{margin: 50px; }

HTML部分:

<div class="box"><img src="http://i2.piimg.com/508767/48115abf1b2e9194.jpg"  >
</div>

JS插件部分:

(function($) {var Magnify = function(ele, options) {this.ele = ele;this.opt = options;this.defaults = {selector: 'img',boxWidth: 400, // 容器宽度width: 100, // 放大区域宽度height: 100, // 放大区域高度radius: 0, // 放大圆角backgroundColor: 'red' // 背景色};this.setting = $.extend(this.defaults, this.opt);}Magnify.prototype = {init: function() {var _self = this.ele;var isMove = false;_self.css('width', this.setting.boxWidth).addClass(this.setting.selector);_self.parent().css({position: "relative",width: _self.css('width'),});var src = _self.attr('src');$("<div class='area'></div><div class='bigPic'><img src=" + src + "></<div>").appendTo(_self.parent());var $area = _self.parent().find(".area");var $bigPic = _self.parent().find(".bigPic");$area.css({width: this.setting.width,height: this.setting.height,borderRadius: this.setting.radius,backgroundColor: this.setting.backgroundColor})var sw = $area.width(); //剪裁框宽度var sh = $area.height(); //剪裁框高度var smallBox_w = _self.parent().width(); //小框的宽度var smallBox_h = _self.parent().height(); //小框的高度var pw = $bigPic.find('img').width(); //大图的宽度var ph = $bigPic.find('img').height(); //大图的高度var scale = (smallBox_w / pw).toFixed(2);$bigPic.css({display: 'none',position: 'absolute',width: parseInt(sw / scale),height: parseInt(sh / scale),left: '102%',top: 0,overflow: 'hidden',borderRadius: this.setting.radius == 100 ? this.setting.radius + '%' : this.setting.radius})$bigPic.find('img').css({position: 'absolute',})_self.parent().on("mouseenter", function() {$area.show();isMove = true})_self.parent().on("mousemove", function(event) {if (isMove) {$bigPic.show();setPos(event, $(this), scale);}})_self.parent().on("mouseleave", function() {$bigPic.hide();$area.hide();isMove = false})},events: function() {this.init();},}function setPos(e, obj, scale) {var x = e.pageX - obj.offset().left,y = e.pageY - obj.offset().top,w = obj.find('.area').width(),h = obj.find('.area').height();if (x < w / 2) {x = 0} else if (x > obj.width() - w / 2) {x = obj.width() - w} else {x -= w / 2}if (y < h / 2) {y = 0} else if (y > obj.height() - h / 2) {y = obj.height() - h} else {y -= h / 2}obj.find('.area').css({left: x,top: y});obj.find('.bigPic').find('img').css({left: -x / scale,top: -y / scale,})}$.fn.Magnifying = function(options) {var Magnifies = new Magnify(this, options);return Magnifies.events();}
})(jQuery);
// 插件调用
$(function() {$(".box img").Magnifying();
})

默认参数API:

this.defaults = {selector: 'img',boxWidth: 400, // 容器宽度width: 100, // 放大区域宽度height: 100, // 放大区域高度radius: 0, // 放大圆角backgroundColor: 'red' // 背景色
};

  

转载于:https://www.cnblogs.com/jone-chen/p/5629768.html

jQuery放大镜插件相关推荐

  1. html放大镜移动,支持移动手机的jquery放大镜插件enlarge.js

    enlarge.js是一款支持移动手机的响应式jquery放大镜插件.该jquery放大镜插件在移动手机上通过长按图片,可以调出放大镜,对图片进行放大查看.它的特点还有: 支持内部放大镜和外部放大镜模 ...

  2. 介绍一个十分好用的JQUERY图片放大镜插件

    介绍一个十分好用的JQUERY图片放大镜插件 介绍一个十分好用的JQUERY图片放大镜插件,在很多电子商务网站中,有时在看小图时,往往想再看这个货品的大图, 传统的另外打开一张大图的话,不大COOL, ...

  3. jquery图片放大镜插件—jqzoom

    说明:在调用jqzoom图片放大镜插件时,需要准备一大一小两张一样的图片,在页面中显示小图片,当鼠标在小图片中移动时,调用该插件的jqzoom()方法,显示与小图片相同的大图片区域,从而实现放大镜的效 ...

  4. jQuery图片放大镜插件

    运行效果: 代码编辑: <html lang="zh"> <head><meta charset="UTF-8"><m ...

  5. 超强的jquery极品插件--色彩选择器类/ 右键菜单类/ 图片新闻flash展示类

    Farbtastic Farbtastic是一个color picker插件.它能够在一个页面中加入多个颜色选择控件,然后每个控件关联到页面中的一个元素比如:文本输入框. Farbtastic jQu ...

  6. 超强1000个jquery极品插件!(连载中。。。。最近更新20090710)

    花N长时间积累的Jquery插件,希望大家喜欢.大家还有什么新的插件,请留言,我们一并收录. 感谢大家的支持. ++++++++++++++++++++++++++++++++++++++++++++ ...

  7. 30个创意出色的非常实用的jquery框架插件-(视觉大背景,瀑布流效果)

    jQuery是在网页设计师和开发者最近的热门话题之一.人们使用它的广泛范围从个人博客到企业网站,目前流行的视觉大背景滚动效果,瀑布流图片阴影效果,图片缩放,动态标签复制,html5音频播放,视频播放等 ...

  8. 超强1000个jquery极品插件!(感觉好强大,转载一下)

    花N长时间积累的Jquery插件,希望大家喜欢.大家还有什么新的插件,请留言,我们一并收录. 感谢大家的支持. ++++++++++++++++++++++++++++++++++++++++++++ ...

  9. 超强1000个jquery极品插件!

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ accordion类 +++++++++++++ ...

  10. jquery 封装幻灯插件_21个jQuery幻灯片插件

    jquery 封装幻灯插件 21 jQuery Slideshow plugins 21个jQuery幻灯片插件 In today`s article I collected most attract ...

最新文章

  1. 上传代码到git上的分支(协同开发)
  2. 羊皮卷的实践-第二十一章
  3. nodejs服务端MVC架构介绍
  4. opencv:畸变矫正:透视变换算法的思想与实现
  5. arcgis select by attributes一次选多个_优化体系--记一次生产数据库sql优化过程--组合索引...
  6. Appnium学习日记一(下载安装Appnium)
  7. 《Java遗传算法编程》—— 1.8 参数
  8. Java核心技术读书笔记(2013-01-11)
  9. php文件改后缀,php 如何修改文件后缀
  10. HG30A-3多用表校验仪
  11. 快速获取InputBox选中区域的单个单元格引用地址
  12. 中国十大电商网站优势与劣势分析
  13. java实现数字转英文_Java实现数字转成英文的方法
  14. nc工具测试tcp/udp协议
  15. 如何平衡CVR预估中的延迟反馈问题?(内含招聘)
  16. 程序员面试 算法研究 编程艺术 红黑树 机器学习5大系列集锦
  17. C语言:输入一个不多于5位的正整数,要求1:求出它是几位数; 要求2:分别打印出每一位数; 要求3:按逆序打印出各位数字;
  18. 分布式优化算法学习(一)
  19. 503 service unavailable 错误怎么解决?503 service unavailable 错误的解决方法。
  20. 印度-地理~人文历史~经济~政治

热门文章

  1. 如何进行多语言发布,做国际化开发
  2. (删)Java线程同步实现二:Lock锁和Condition
  3. 【九度OJ】题目1084:整数拆分
  4. Windows移动开发(一)——登堂入室
  5. Qt5学习笔记之图标下载和转换
  6. Pycharm 设置python文件自动生成头部信息模板
  7. Leetcode95. Unique Binary Search Trees II不同的二叉搜索树2
  8. python模块-logging和collections以及random模块
  9. day39-Spring 02-AOP的概述
  10. Runtime.exec使用错误导致延迟.md