jQuery放大镜插件
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放大镜插件相关推荐
- html放大镜移动,支持移动手机的jquery放大镜插件enlarge.js
enlarge.js是一款支持移动手机的响应式jquery放大镜插件.该jquery放大镜插件在移动手机上通过长按图片,可以调出放大镜,对图片进行放大查看.它的特点还有: 支持内部放大镜和外部放大镜模 ...
- 介绍一个十分好用的JQUERY图片放大镜插件
介绍一个十分好用的JQUERY图片放大镜插件 介绍一个十分好用的JQUERY图片放大镜插件,在很多电子商务网站中,有时在看小图时,往往想再看这个货品的大图, 传统的另外打开一张大图的话,不大COOL, ...
- jquery图片放大镜插件—jqzoom
说明:在调用jqzoom图片放大镜插件时,需要准备一大一小两张一样的图片,在页面中显示小图片,当鼠标在小图片中移动时,调用该插件的jqzoom()方法,显示与小图片相同的大图片区域,从而实现放大镜的效 ...
- jQuery图片放大镜插件
运行效果: 代码编辑: <html lang="zh"> <head><meta charset="UTF-8"><m ...
- 超强的jquery极品插件--色彩选择器类/ 右键菜单类/ 图片新闻flash展示类
Farbtastic Farbtastic是一个color picker插件.它能够在一个页面中加入多个颜色选择控件,然后每个控件关联到页面中的一个元素比如:文本输入框. Farbtastic jQu ...
- 超强1000个jquery极品插件!(连载中。。。。最近更新20090710)
花N长时间积累的Jquery插件,希望大家喜欢.大家还有什么新的插件,请留言,我们一并收录. 感谢大家的支持. ++++++++++++++++++++++++++++++++++++++++++++ ...
- 30个创意出色的非常实用的jquery框架插件-(视觉大背景,瀑布流效果)
jQuery是在网页设计师和开发者最近的热门话题之一.人们使用它的广泛范围从个人博客到企业网站,目前流行的视觉大背景滚动效果,瀑布流图片阴影效果,图片缩放,动态标签复制,html5音频播放,视频播放等 ...
- 超强1000个jquery极品插件!(感觉好强大,转载一下)
花N长时间积累的Jquery插件,希望大家喜欢.大家还有什么新的插件,请留言,我们一并收录. 感谢大家的支持. ++++++++++++++++++++++++++++++++++++++++++++ ...
- 超强1000个jquery极品插件!
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ accordion类 +++++++++++++ ...
- jquery 封装幻灯插件_21个jQuery幻灯片插件
jquery 封装幻灯插件 21 jQuery Slideshow plugins 21个jQuery幻灯片插件 In today`s article I collected most attract ...
最新文章
- 上传代码到git上的分支(协同开发)
- 羊皮卷的实践-第二十一章
- nodejs服务端MVC架构介绍
- opencv:畸变矫正:透视变换算法的思想与实现
- arcgis select by attributes一次选多个_优化体系--记一次生产数据库sql优化过程--组合索引...
- Appnium学习日记一(下载安装Appnium)
- 《Java遗传算法编程》—— 1.8 参数
- Java核心技术读书笔记(2013-01-11)
- php文件改后缀,php 如何修改文件后缀
- HG30A-3多用表校验仪
- 快速获取InputBox选中区域的单个单元格引用地址
- 中国十大电商网站优势与劣势分析
- java实现数字转英文_Java实现数字转成英文的方法
- nc工具测试tcp/udp协议
- 如何平衡CVR预估中的延迟反馈问题?(内含招聘)
- 程序员面试 算法研究 编程艺术 红黑树 机器学习5大系列集锦
- C语言:输入一个不多于5位的正整数,要求1:求出它是几位数; 要求2:分别打印出每一位数; 要求3:按逆序打印出各位数字;
- 分布式优化算法学习(一)
- 503 service unavailable 错误怎么解决?503 service unavailable 错误的解决方法。
- 印度-地理~人文历史~经济~政治