温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Jquery插件——图片放大镜

发布时间:2020-07-27 18:30:09 来源:网络 阅读:516 作者:水中月120 栏目:web开发

    偶然前端网发现了一个比较好的图片放大镜效果插件,稍作修改完善了一下,下面分享给大家。

效果还不错,如下图:

Jquery插件——图片放大镜

Jquery插件——图片放大镜


<!DOCTYPE HTML>
<html> <head>     <meta charset="UTF-8">     <title>放大镜</title>     <style type="text/css">     body {         margin:200px;         background:#000;     }     ol, li {         list-style: none;         margin:0;         padding:0;     }     .clearfix:after {         content:"\200B";         display: block;         height: 0;         clear: both;     }     .clearfix {         *zoom:1;     }     .magnifier {         width:402px;         height:402px;     }     .m_p_w_picpath {         position:relative;         width:400px;         height:400px;         border:1px #634575 solid;     }     .m_p_w_picpath li {         position: absolute;     }     .m_p_w_picpath li.now {         z-index:1;     }     .im_zoom {         background:#FEDE4F 50% top no-repeat;         opacity:0.5;         display: block;         position: absolute;         width:100px;         height:100px;         left:0;         top:0;     }     .im_zoom_viewer {         position:absolute;         width:400px;         height:400px;         border:1px #634575 solid;     }     .m_thumb {         position:relative;         width:402px;         height:57px;         overflow:hidden;         margin-top:10px;     }     .m_prev, .m_next {         display:block;         height:54px;         width:17px;         text-indent:-99999em;         position:absolute;         z-index:99;     }     .m_prev {  background:url(http://www.w3cfuns.com/data/p_w_upload/album/201403/12/195114anj0yn8hefawepha.png) no-repeat 0 0;         left:0;     }     .m_next {      background:url(http://www.w3cfuns.com/data/p_w_upload/album/201403/12/195114anj0yn8hefawepha.png) no-repeat -17px 0;         right:0;     }     .m_prev:hover {  background:url(http://www.w3cfuns.com/data/p_w_upload/album/201403/12/195114anj0yn8hefawepha.png) no-repeat -34px 0;         left:0;     }     .m_next:hover {    background:url(http://www.w3cfuns.com/data/p_w_upload/album/201403/12/195114anj0yn8hefawepha.png) no-repeat -51px 0;     }     .m_thumb_img {         width:402px;         height:54px;         overflow: hidden;         margin-left:17px;         position:relative;     }     .m_thumb_img ol {         position:absolute;         width:300%;     }     .m_thumb_img li {         width:54px;         height:54px;         float:left;         margin:0 10px;     }     .m_thumb_img a {         border:2px #a6ad88 solid;         display:block;         height:50px;         float:left;     }     .m_thumb_img a:hover, .m_thumb_img .now {         border:2px #f60 solid;     }     </style> </head> <body>     <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>     <script type="text/javascript">     (function($) {         var methods = {             magnifier: function(options) {                 return this.each(function() {                     var defaults = {                         zoomWidth: 100,                         zoomHeight: 100,                         largeImgWidth: 400,                         largeImgHeight: 400                     },                         settings = $.extend({}, defaults, options),                         _body = $('body'),                         _This = $(this),                         _imgBox = _This.find('.m_p_w_picpath'),                         _imgShow = _imgBox.find('img'),                         _thumbContent = _This.find('.m_thumb'),                         _thumbList = _thumbContent.find('ol'),                         _thumbLiLeft = _thumbContent.find('li').eq(0).css("margin-left"),                         _thumbLiRight = _thumbContent.find('li').eq(0).css("margin-right"),                         _thumbLRWidth = parseInt(_thumbLiLeft) + parseInt(_thumbLiRight),                         _thumbWidth = _thumbList.find('a')[0].offsetWidth,                         _thumbImg = _thumbContent.find('img'),                         _prev = _thumbContent.find('.m_prev'),                         _next = _thumbContent.find('.m_next'),                         _width = _imgBox.width(),                         _height = _imgBox.height(),                         _positionX = _This.offset().left,                         _positionY = _This.offset().top,                         count = moveLen = 0,                         _img = new Image();                     _thumbList.find('a').on('click', function(event) {                         var _this = $(this),                             _src = _this.find('img').attr('src');                         _img.src = _src;                         $('.im_zoom_viewer').css({                             background: 'url(' + _src + ') no-repeat'                         });                         _thumbList.find('a').removeClass('now');                         _this.addClass('now');                         _imgShow.attr('src', _src);                     });                     _imgBox.on({                         mouseenter: function(event) {                             var _this = $(this),                                 _zoomX = event.pageX - _positionX - (settings.zoomWidth / 2),                                 _zoomY = event.pageY - _positionY - (settings.zoomHeight / 2),                                 _imgSrc = _imgBox.find('img').attr('src');                             _this.css("cursor", "move").append('<span class="im_zoom" ></span>');                             if (!_body.find('.im_zoom_viewer').length) {                                 _body.append('<div class="im_zoom_viewer" ></div>');                                 $('.im_zoom_viewer').css({                                     background: 'url(' + _imgSrc + ') no-repeat'                                 });                                 _img.src = _imgSrc;                             }                         },                         mouseleave: function(event) {                             var _this = $(this);                             _this.find('.im_zoom').remove();                             _body.find('.im_zoom_viewer').hide();                         },                         mousemove: function(event) {                             var _this = $(this),                                 _zoomX = event.pageX - _positionX - (settings.zoomWidth / 2),                                 _zoomY = event.pageY - _positionY - (settings.zoomHeight / 2);                             if (_zoomX < 0) {                                 _zoomX = 0;                             } else if (_zoomX > _width - settings.zoomWidth) {                                 _zoomX = _width - settings.zoomWidth;                             };                             if (_zoomY < 0) {                                 _zoomY = 0;                             } else if (_zoomY > _height - settings.zoomHeight) {                                 _zoomY = _height - settings.zoomHeight;                             };                             console.log(_img.width)                             var _viewX = Math.ceil(parseInt($('.im_zoom')[0].style.left) / (_width - settings.zoomWidth) * (_img.width - _width)),                                 _viewY = Math.ceil(parseInt($('.im_zoom')[0].style.top) / (_height - settings.zoomHeight) * (_img.height - _width));                             $('.im_zoom').css({                                 left: _zoomX,                                 top: _zoomY                             });                             $('.im_zoom_viewer').css({                                 'display': 'block',                                 'background-position': -_viewX + 'px ' + -_viewY + 'px'                             });                         }                     });                     if (_thumbImg.length < 5) {                         _next.css({                             'background-position': '-85px 0'                         });                         _prev.css({                             'background-position': '-68px 0'                         });                     }                     _next.on('click', function(event) {                         event.preventDefault();                         var _this = $(this),                             len = _thumbList.find('a').length;                         if (count < len - 5) {                             _prev.removeAttr('style');                             moveLen += _thumbWidth + _thumbLRWidth;                             _thumbList.stop().animate({                                 "left": -moveLen                             }, 100, 'linear');                             count++;                             if (count === len - 5) {                                 _this.css({                                     'background-position': '-85px 0'                                 });                             }                         }                     });                     _prev.on('click', function(event) {                         event.preventDefault();                         var _this = $(this),                             len = _thumbList.find('a').length;                         if (count > 0) {                             _next.removeAttr('style');                             moveLen -= _thumbWidth + _thumbLRWidth;                             _thumbList.stop().animate({                                 "left": -moveLen                             }, 100, 'linear');                             count--;                             if (count === 0) {                                 _this.css({                                     'background-position': '-68px 0'                                 });                             }                         }                     });                 });             }         };         $.fn.Plugins = function(method) {             //初始化插件             if (methods[method]) {                 return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));             } else {                 $.error('在Plugins中不存在' + method + '方法');             }         }     })(jQuery);     </script>     <script type="text/javascript">     $(function() {         /*             zoomWidth : 遮罩小图片宽度             zoomHeight : 遮罩小图片高度,             largeImgWidth : 大图的宽度,             largeImgHeight : 大图的高度,            */         $('.magnifier').Plugins('magnifier', {             zoomWidth: 100,             zoomHeight: 100,             largeImgWidth: 400,             largeImgHeight: 400         });     })     </script>     <div class="magnifier">         <div class="m_p_w_picpath">             <img src="http://www.w3cfuns.com/data/p_w_upload/album/201403/12/195113nodqe4i31e6eiwi4.jpg" width="400" height="400" />         </div>         <div class="m_thumb">             <a href="javascript:;" class="m_prev">prev</a>             <a href="javascript:;" class="m_next">next</a>             <div class="m_thumb_img">                 <ol class="clearfix">                     <li>                         <a href="javascript:;" class="now">                             <img src="http://www.w3cfuns.com/data/p_w_upload/album/201403/12/195113nodqe4i31e6eiwi4.jpg" width="50" height="50" />                         </a>                     </li>                     <li>                         <a href="javascript:;">                             <img src="http://www.w3cfuns.com/data/p_w_upload/album/201403/12/195039acx13fuy2mkuy8mx.jpg" width="50" height="50" />                         </a>                     </li>                     <li>                         <a href="javascript:;">                             <img src="http://www.w3cfuns.com/data/p_w_upload/album/201403/12/195011cn7uu0pcxutpwnkp.jpg" width="50" height="50" />                         </a>                     </li>                     <li>                         <a href="javascript:;">                             <img src="http://www.w3cfuns.com/data/p_w_upload/album/201403/12/194956yv7w9vm44v4794f9.jpg" width="50" height="50" />                         </a>                     </li>                     <li>                         <a href="javascript:;">                             <img src="http://www.w3cfuns.com/data/p_w_upload/album/201403/12/194914rj7wl297y9u24rla.jpg" width="50" height="50" />                         </a>                     </li>                     <li>                         <a href="javascript:;">                             <img src="http://www.w3cfuns.com/data/p_w_upload/album/201403/12/194940cutwe9tbgqu9wqqw.jpg" width="50" height="50" />                         </a>                     </li>                 </ol>             </div>         </div>     </div> </body> </html>

参考原文地址:http://www.w3cfuns.com/article-5599770-1-1.html

附件:http://down.51cto.com/data/2365347
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI