JS 製作放大鏡對比圖功能原始碼,擁有倍數可選功能
先看效果圖:
JS檔案:
//$(function ($) { $.fn.blowup = function (attributes,brother,beishu) { var $element = this; var $className = $element.attr("class"); var $class1,$brother //class 與 beother 變數 // If the target element is not an image if (!$element.is("img")) { console.log("%c Blowup.js Error: "+ "%cTarget element is not an image.", "background: #FCEBB6; color: #F07818; font-size: 17px; font-weight: bold;", "background: #FCEBB6; color: #F07818; font-size: 17px;"); return; } // Constants var $IMAGE_URL = $element.attr("src"); var $brotherSrc = $("."+brother).attr("src"); var $IMAGE_WIDTH = $element.width(); var $IMAGE_HEIGHT = $element.height(); var NATIVE_IMG = new Image(); NATIVE_IMG.src = $element.attr("src"); //NATIVE_IMG.width = "900"; //NATIVE_IMG.height = "900"; // Default attributes var defaults = { round : true, width: 200, height : 200, background : "#FFF", shadow : "0 8px 17px 0 rgba(0, 0, 0, 1)", border : "6px solid #FFF", cursor : true, zIndex : 999999 } // Update defaults with custom attributes var $options = $.extend(defaults, attributes); // Modify target image $element.on('dragstart', function (e) { e.preventDefault(); }); $element.css("cursor", $options.cursor ? "crosshair" : "none"); // Create magnification lens element var lens = document.createElement("div"); lens.id = ""+$className+"BlowupLens"; // Attack the element to the body $("body").append(lens); // Updates styles $blowupLens = $("#"+$className+"BlowupLens"); $blowupLens.css({ "position" : "absolute", "visibility" : "hidden", "pointer-events" : "none", "zIndex" : $options.zIndex, "width" : $options.width, "height" : $options.height, "border" : $options.border, "background" : $options.background, "border-radius" : $options.round ? "50%" : "none", "box-shadow" : $options.shadow, "background-repeat" : "no-repeat", }); // Show magnification lens $element.mouseenter(function () { $class1 = $element.attr("class"); $blowupLens = $("#"+$class1+"BlowupLens"); $blowupLens.css("visibility", "visible"); $brother = $("#"+brother+"BlowupLens"); $brother.css("visibility", "visible"); }) // Mouse motion on image $element.mousemove(function (e) { /*$blowupLens = $("#"+$class1+"BlowupLens"); $brother = $("#"+brother+"BlowupLens");*/ // Lens position coordinates var lensX = e.pageX - $options.width / 2; var lensY = e.pageY - $options.height / 2; // Relative coordinates of image var relX = e.offsetX; var relY = e.offsetY; // Zoomed image coordinates var zoomX = -Math.floor(relX / $element.width() * NATIVE_IMG.width - $options.width / 2); var zoomY = -Math.floor(relY / $element.height() * NATIVE_IMG.height - $options.height / 2); //console.log(relX+"/"+$element.width()+"*"+ NATIVE_IMG.width ); //console.log(zoomX); //console.log(zoomY); var bgSize; switch(beishu){ case 0.5: zoomX = zoomX+(zoomX*beishu); zoomY = zoomY+(zoomY*beishu); bgSize =400*2.5; break; case 1.5: zoomX = zoomX+(zoomX*beishu); zoomY = zoomY+(zoomY*beishu); bgSize =400*3.5; break; default: bgSize = NATIVE_IMG.width; } // Apply styles to lens $blowupLens.css({ left : lensX, top : lensY, "background-image" : "url(" + $IMAGE_URL + ")", "background-position" : zoomX + " " + zoomY, "background-size" : bgSize }); // 此處if else 待優化邏輯。↓ if(brother == "rightImg"){ $brother.css({ left : lensX + $element.parent().width(), top : lensY, "background-image" : "url(" + $brotherSrc + ")", "background-position" : zoomX + " " + zoomY, "background-size" : bgSize }); }else if(brother == "laftImg"){ $brother.css({ left : lensX - $element.parent().width(), top : lensY, "background-image" : "url(" + $brotherSrc + ")", "background-position" : zoomX + " " + zoomY, "background-size" : bgSize }); } }) // 滑鼠移除 $element.mouseleave(function () { /*$blowupLens = $("#"+$class1+"BlowupLens");*/ $blowupLens.css("visibility", "hidden"); /*$brother = $("#"+brother+"BlowupLens");*/ $brother.css("visibility", "hidden"); }) } //})
HTML 檔案
<!DOCTYPE html5> <html> <head> <meta charset="UTF-8"> <title></title> <!--<link rel="stylesheet" type="text/css" href="demo.css"/>--> </head> <body> <div style="text-align: center;margin: 10px;"> <button onclick="oneX()"> 一倍</button> <button onclick="twoX()"> 二倍</button> <button onclick="threeX()"> 三倍</button> </div> <div class="wrap" style="display: flex;justify-content: center;"> <div class="left" style="margin-right: 50px;"> <img src="http://static.sunday90.com/enlarge/images/03.jpg" width="400" class="laftImg" /> </div> <div class="right" > <img src="http://static.sunday90.com/enlarge/images/04.jpg" width="400" class="rightImg" /> </div> </div> </body> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <script src="blowup.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(document).ready(function(){ $(".laftImg").blowup({},"rightImg",1); $(".rightImg").blowup({},"laftImg",1); }) function oneX(){ $(".laftImg").blowup({},"rightImg",1); $(".rightImg").blowup({},"laftImg",1); } function twoX(){ $(".laftImg").blowup({},"rightImg",0.5); $(".rightImg").blowup({},"laftImg",0.5); } function threeX(){ $(".laftImg").blowup({},"rightImg",1.5); $(".rightImg").blowup({},"laftImg",1.5); } </script> </html>
相關推薦
JS 製作放大鏡對比圖功能原始碼,擁有倍數可選功能
先看效果圖: JS檔案: //$(function ($) { $.fn.blowup = function (attributes,brother,beishu) { var $element = this; var $className = $ele
raphael-min.js當中,rect圖物件原始碼,加上註解!!
raphael-min.js /** *環節物件rect圖 * *@paramp *@paramm *@returns{a.rect} */ a.rect= function(p, m) { var u = this, g = "rect" + a.util.
js 簡單實現表單資料的增添,單項刪改,多項刪除,修改以及全選功能
// 新增商品函式 function add(){ // 獲取表單元素 var table = document.getElementById("order"); // 以表單的行數為索引插入行
d3.js製作連線動畫圖和編輯器
此文章為原創文章,原文地址:https://www.cnblogs.com/eagle1098/p/11431679.html 連線動畫圖 編輯器 效果如上圖所示。本專案使用主要d3.jsv4製作,分兩部分,一個是實際展示的連線動畫圖,另一個是管理人員使用滑鼠編輯連線的頁面。對於d3.js如何引入圖片,如
js已知一個文字輸入框,通過按鈕點選,用if 判斷輸入框裡的數字是否能被3整除
<!DOCTYPE html> <html> <head> <title>第一題</title> <meta charset="utf-8"> </head> <!--
DedeCMS二次開發聯動篩選功能的實現(含多選功能)
多選效果如下圖:具體操作說明:一、注意,首先備份以下兩個檔案\include\arc.listview.class.php\include\extend.func.php多選版檔案下載連結:https 多選效果如下圖: 具體操作說明: 1、注意,首先備份以下兩個檔
python 讀不同編碼的文本,傳遞一個可選的encoding 參數給open() 函數
系統 fault 使用 取出 可選 asc 完全 pen 調用 文件的讀寫操作默認使用系統編碼,可以通過調用sys.getdefaultencoding() 來得到。在大多數機器上面都是utf-8 編碼。如果你已經知道你要讀寫的文本是其他編碼方式,那麽可以通過傳遞一個可選的
自發光效果(控制自發光的顏色、強度,呼吸光可選)
通過一個貼圖控制自發光的顏色,一個控制自發光主色調的顏色(注意此處mask直接用rgb格式即可,不需要阿爾法通道控制發光程度,因為顏色自帶一個亮度的屬性) _EmissionMask (“Emission Mask”, 2D) = “white” {} _E
poi操作word文件,以07版本為參考,將word文件中圖片替換為文字(替換文字也一樣),讀圖片可選文字內容
1、先簡單介紹下word07版本以後的儲存格式,word 07版本以後主要是以xml格式儲存。如果想檢視詳情可將字尾名改為zip,再檢視壓縮檔案可檢視到各種檔案,其中document.xml就是word主要展現給我們大家所看到的內容。2.根據第一步的描述,我查看了docume
(轉)織夢DedeCMS二次開發聯動篩選功能的實現(含多選功能)
原文:http://www.dedejs.com/html/article-571-1.html點選開啟連結織夢預設的列表頁沒有篩選功能,但有時候我們做產品列表頁的時候,產品的欄位比較多,很多人都需要用到篩選功能,這樣可以讓使用者更方便的找到自己所需要的東西,實現這個聯動篩選
js餅狀圖(帶百分比)功能實現,新人必懂
tool edi state pro form allow UNC connect ajax 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8
js製作CSV檔案下載功能時,由於值中含有json字串導致匯出格式錯誤解決方法
問題描述: 由於做的是真分頁,所以下載的時候不用在查詢資料庫,因而直接用的是js製作CSV檔案下載功能,但是由於值中含有json字串導致匯出格式錯誤。格式錯誤體現在json字串被拆分,佔用了多個單元格。 解決方法: 根據CSV檔案識別單元格的方式,用雙引號括起來的內容被
thinkpad 睡眠喚醒後熱鍵功能正常,但屏幕無法顯示狀態/進度條/圖標
選項 屏幕 速度 alt 設置 系統 操作 右鍵 狀態 由於博主比較習慣筆記本開蓋即用,合蓋即走,不大習慣開機關機(畢竟SSD速度杠杠滴^_^)。可是發現筆記本長時間睡眠乃至休眠喚醒後,使用thinkpad熱鍵,雖然可以調節,但屏幕不顯示調節狀態了。解決步驟如下: 1.
js中onchange()的使用,實現功能,選擇哪一張圖片,顯示哪一張
pla option type oct 圖片 script www () height 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x
js 利用canvas + flv.js實現 視頻流 截屏 、本地下載功能實現,兼容火狐,谷歌, 截屏跨域的坑
font 方案 function can 屬性和方法 load() com DG ren 1 本地視頻截屏(canvsa) <!DOCTYPE html> <html> <head> <meta charset=
Mock.js簡易教程,脫離後端獨立開發,實現增刪改查功能
定義 數據 false 則表達式 type break 整數 增 刪 改 查 大於 在我們的生產實際中,後端的接口往往是較晚才會出來,並且還要寫接口文檔,於是我們的前端的許多開發都要等到接口給我們才能進行,這樣對於我們前端來說顯得十分的被動,於是有沒有可以制造假數據來模擬後
怎麼製作GIF動圖,製作GIF動圖攻略
網路聊天中,使用GIF動圖已經成為一種常態。很多人都習慣了使用GIF動圖來表達自己的心情,那麼你們有想過你們手中的GIF動圖是怎麼製作的嗎?我想肯定都是想過的。其實製作GIF並不困難,有款迅捷GIF製作工具請新增連結描述便能夠輕鬆駕馭了。下面小編就來分享下製作GIF動圖的方法,教大家如何製作GIF動圖。
python學習之網站的編寫(HTML,CSS,JS)(十七)----------示例,構造一個網頁的框架,上部標題,登入,logo,左側選單,右側內容,原始碼
結果: 顏色為了明顯,所以較為難看,可以根據自己的需要進行更改 原始碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title
python學習之網站的編寫(HTML,CSS,JS)(十六)----------示例,構造一個左側管理選單的功能,點選主選單才顯示下面的內容
結果: 程式碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>逆水行舟不進則退</title>
python學習之網站的編寫(HTML,CSS,JS)(十五)----------示例,彈出一個背景為半黑色,前面是白框的彈窗功能(已經編好的框架)
效果圖,程式碼直接可應用,按自己的需要在其中加入想要的內容: 程式碼及講解: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <