放大镜插件
需求
電商網(wǎng)站上最常見,最常用的插件莫過于放大鏡特效了。為了避免重復造輪子,我這邊整理了一個蠻好用的jquery放大鏡插件。開箱即用,很便捷。
插件核心代碼
//************************************************************** // jQZoom allows you to realize a small magnifier window,close // to the image or images on your web page easily. // // jqZoom version 2.1 // Author Doc. Ing. Renzi Marco(www.mind-projects.it) // First Release on Dec 05 2007 // i'm searching for a job,pick me up!!! // mail: renzi.mrc@gmail.com //**************************************************************(function($) {$.fn.jqueryzoom = function(options) {var settings = {xzoom: 200, //zoomed width default widthyzoom: 200, //zoomed div default widthoffset: 10, //zoomed div default offsetposition: "right", //zoomed div default position,offset position is to the right of the imagelens: 1, //zooming lens over the image,by default is 1;preload: 1};if (options) {$.extend(settings, options);}var noalt = '';$(this).hover(function() {var imageLeft = this.offsetLeft;var imageRight = this.offsetRight;var imageTop = $(this).get(0).offsetTop;var imageWidth = $(this).children('img').get(0).offsetWidth;var imageHeight = $(this).children('img').get(0).offsetHeight;noalt = $(this).children("img").attr("alt");var bigimage = $(this).children("img").attr("jqimg");$(this).children("img").attr("alt", '');if ($("div.zoomdiv").get().length == 0) {$(this).after("<div class='zoomdiv'><img class='bigimg' src='" + bigimage + "'/></div>");$(this).append("<div class='jqZoomPup'> </div>");}if (settings.position == "right") {if (imageLeft + imageWidth + settings.offset + settings.xzoom > screen.width) {leftpos = imageLeft - settings.offset - settings.xzoom;} else {leftpos = imageLeft + imageWidth + settings.offset;}} else {leftpos = imageLeft - settings.xzoom - settings.offset;if (leftpos < 0) {leftpos = imageLeft + imageWidth + settings.offset;}}$("div.zoomdiv").css({ top: imageTop, left: leftpos });$("div.zoomdiv").width(settings.xzoom);$("div.zoomdiv").height(settings.yzoom);$("div.zoomdiv").show();if (!settings.lens) {$(this).css('cursor', 'crosshair');}$(document.body).mousemove(function(e) {mouse = new MouseEvent(e);/*$("div.jqZoomPup").hide();*/var bigwidth = $(".bigimg").get(0).offsetWidth;var bigheight = $(".bigimg").get(0).offsetHeight;var scaley = 'x';var scalex = 'y';if (isNaN(scalex) | isNaN(scaley)) {var scalex = (bigwidth / imageWidth);var scaley = (bigheight / imageHeight);$("div.jqZoomPup").width((settings.xzoom) / scalex);$("div.jqZoomPup").height((settings.yzoom) / scaley);if (settings.lens) {$("div.jqZoomPup").css('visibility', 'visible');}}xpos = mouse.x - $("div.jqZoomPup").width() / 2 - imageLeft;ypos = mouse.y - $("div.jqZoomPup").height() / 2 - imageTop;if (settings.lens) {xpos = (mouse.x - $("div.jqZoomPup").width() / 2 < imageLeft) ? 0 : (mouse.x + $("div.jqZoomPup").width() / 2 > imageWidth + imageLeft) ? (imageWidth - $("div.jqZoomPup").width() - 2) : xpos;ypos = (mouse.y - $("div.jqZoomPup").height() / 2 < imageTop) ? 0 : (mouse.y + $("div.jqZoomPup").height() / 2 > imageHeight + imageTop) ? (imageHeight - $("div.jqZoomPup").height() - 2) : ypos;}if (settings.lens) {$("div.jqZoomPup").css({ top: ypos, left: xpos });}scrolly = ypos;$("div.zoomdiv").get(0).scrollTop = scrolly * scaley;scrollx = xpos;$("div.zoomdiv").get(0).scrollLeft = (scrollx) * scalex;});}, function() {$(this).children("img").attr("alt", noalt);$(document.body).unbind("mousemove");if (settings.lens) {$("div.jqZoomPup").remove();}$("div.zoomdiv").remove();});count = 0;if (settings.preload) {$('body').append("<div style='display:none;' class='jqPreload" + count + "'>sdsdssdsd</div>");$(this).each(function() {var imagetopreload = $(this).children("img").attr("jqimg");var content = jQuery('div.jqPreload' + count + '').html();jQuery('div.jqPreload' + count + '').html(content + '<img src=\"' + imagetopreload + '\">');});}}})(jQuery); function MouseEvent(e) {this.x = e.pageXthis.y = e.pageY }github地址
如果你想獲得完整的項目,方便查看demo,可以點擊這個試試:點我查看demo
ps:(本來想放到github上的,但是不知道為什么,始終推不上去,也拉不下來。。只能換成上傳到碼云了)
輸入git clone https://git.oschina.net/sunny_des/jq-zoom.git 或者直接點下載壓縮包到本地即可體驗。
說明
由于插件是網(wǎng)上尋找而來,部分作者署名已經(jīng)經(jīng)過修改刪除,如有作者發(fā)現(xiàn)侵權,麻煩聯(lián)系一下我,手動刪除,感謝~
總結(jié)
- 上一篇: gearman java_gearman
- 下一篇: HTML调用PC摄像头【申明:来源于网络