亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用JavaScript實現(xiàn)簡單圖像放大鏡效果

 更新時間:2022年08月02日 08:23:06   作者:海擁  
圖像放大鏡在很多網(wǎng)站中都扮演著重要的角色,大多數(shù)開發(fā)人員使用?jquery?來創(chuàng)建圖像放大鏡。在本教程中,我將向大家展示如何使用?HTML、CSS?和?JavaScript?制作一個簡單的圖像放大鏡,需要的可以參考一下

圖像放大鏡在很多網(wǎng)站中都扮演著重要的角色,大多數(shù)開發(fā)人員使用 jquery 來創(chuàng)建圖像放大鏡。在本教程中,我將向大家展示如何使用 HTML、CSS 和 JavaScript 制作一個簡單的圖像放大鏡。

在線演示地址

項目基本結構

目錄結構如下:

第 1 步:圖像放大鏡的基本結構

使用以下 HTML 和 CSS 代碼,首先在網(wǎng)頁上為此圖像放大鏡 HTML創(chuàng)建了一個框。您可以在此框中看到圖像。這里框的寬度:650px,高度:400 像素已經(jīng)用過。它被一個 5px 的邊框包圍。

<div class="container">
     
</div>
body,
html {
  height: 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  position: relative;
  min-width: 700px;
  background: rgb(202, 201, 201);
}
.container {
  width: 650px;
  height: 400px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 5px solid rgb(244, 254, 255);
}

第 2 步:將圖像添加到放大鏡

現(xiàn)在,一個圖像已添加到這個簡單的圖像放大鏡項目中。在這里,您可以使用您選擇的圖像。

<div id="zoom">
  <img src="https://img-blog.csdnimg.cn/c43ca410ce4a40e4836664f7dbe98ad5.png" alt="">
</div>
#zoom img{
  width: 650px;
  height: 400px;
}

第 3 步:CSS設計放大鏡

現(xiàn)在已經(jīng)創(chuàng)建了放大鏡玻璃,可以在其中通過縮放看到圖像。我將通過 JavaScript 添加這個元素?,F(xiàn)在我只是在設計。

#lens {
  position: absolute;
  border: 2px solid grey;
  border-radius: 50%;
  overflow: hidden;
  cursor: none;
  box-shadow: inset 0 0 10px 2px grey;
  filter: drop-shadow(0 0 2px grey);
}

#lens > * {
  cursor: none;
}

第 4 步:使用 JavaScript 激活圖像放大鏡

這個CSS 圖像放大鏡需要一些 JavaScript 才能工作。沒有使用 jQuery 或外部庫。因此,如果您了解基本的 JavaScript,您就可以構建它。

//lensSize => 寬度和高度
const lensSize = 200;

function magnify(id, zoom){
  const el = document.getElementById(id);
//cloneNode() 方法創(chuàng)建一個節(jié)點的副本,并返回克隆
  const copy = el.cloneNode(true);
//createElement() 方法創(chuàng)建由 tagName 指定的 HTML 元素
  const lens = document.createElement("div");
  
//setAttribute() 設置指定元素的屬性值
  lens.setAttribute("id","lens")  
  lens.style.width = lensSize + "px";
  lens.style.height = lensSize + "px";
  
//appendChild() 方法用于插入一個新節(jié)點
  el.appendChild(lens);
//getBoundingClientRect() 方法返回元素的大小及其位置
  el.getBoundingClientRect();
  copy.style.zoom = zoom;
  lens.appendChild(copy);
  
  copy.style.width = (el.offsetWidth * zoom) + "px";
  copy.style.heigth = (el.offsetHeight * zoom) + "px";
  copy.style.position = "absolute";
  
//當指針在元素上移動時執(zhí)行 MouseMove
  el.addEventListener("mousemove", (ev) => {
//preventDefault() 方法停止選定元素的默認操作
    ev.preventDefault();
    ev.stopPropagation();
    const pos = getCursorPos(ev);
    lens.style.left =  - (lensSize/2) + pos.x + "px";
    lens.style.top = - (lensSize/2) + pos.y + "px";
    copy.style.left = - (pos.x - el.offsetLeft) + (lensSize/zoom)*0.5 + "px";
    copy.style.top = - (pos.y - el.offsetTop) + (lensSize/zoom)*0.5  + "px";
  })
}

  function getCursorPos(e) {
    var x = (window.Event) ? e.pageX : event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
    var y = (window.Event) ? e.pageY : event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
    return {x : x , y : y};
  }
//放大值
magnify("zoom", 4)

JavaScript 圖像放大鏡在很多網(wǎng)站中都扮演著非常重要的角色。如果你需要放大項目中的任何圖像,則可以使用這種 javascript 類型的圖像放大鏡 。

 完整源碼下載

GitHub 地址:https://github.com/wanghao221/moyu/tree/main/工具-21.圖片放大鏡

以上就是使用JavaScript實現(xiàn)簡單圖像放大鏡效果的詳細內容,更多關于JavaScript圖像放大鏡的資料請關注腳本之家其它相關文章!

相關文章

  • 微信小程序之swiper滑動面板用法示例

    微信小程序之swiper滑動面板用法示例

    這篇文章主要介紹了微信小程序之swiper滑動面板用法,結合實例形式詳細分析了swiper滑動面板的具體功能、參數(shù)、使用方法及相關操作注意事項,需要的朋友可以參考下
    2018-12-12
  • javascript實現(xiàn)動態(tài)CSS換膚技術的腳本

    javascript實現(xiàn)動態(tài)CSS換膚技術的腳本

    javascript實現(xiàn)動態(tài)CSS換膚技術的腳本...
    2007-06-06
  • 原生JS實現(xiàn)小小的音樂播放器

    原生JS實現(xiàn)小小的音樂播放器

    這篇文章主要為大家詳細介紹了原生JS實現(xiàn)音樂播放器,支持循環(huán)、隨機播放,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • JS?限時限次數(shù)點擊按鈕的實現(xiàn)思路

    JS?限時限次數(shù)點擊按鈕的實現(xiàn)思路

    這篇文章主要介紹了JS?限時限次數(shù)點擊按鈕,實現(xiàn)方法很簡單需要用一個變量作為計數(shù),點擊一次,計數(shù)加一點擊函數(shù)內判斷計數(shù)變量設置定時恢復,對實例代碼感興趣的朋友一起看看吧
    2022-03-03
  • JS前端組件設計以業(yè)務為導向實踐思考

    JS前端組件設計以業(yè)務為導向實踐思考

    這篇文章主要為大家介紹了JS前端組件設計以業(yè)務為導向實踐思考,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 淺談Javascript事件處理程序的幾種方式

    淺談Javascript事件處理程序的幾種方式

    事件就是用戶或瀏覽器自身執(zhí)行的某種動作。比如說click,mouseover,都是事件的名字。而相應某個事件的函數(shù)就叫事件處理程序(或事件偵聽器)。為事件指定處理程序的方式有好幾種
    2012-06-06
  • BootStrap table刪除指定行的注意事項(筆記整理)

    BootStrap table刪除指定行的注意事項(筆記整理)

    在前端開發(fā)中遇到這樣的問題,對于table指定行的數(shù)據(jù)進行刪除,花了好長時間才解決,今天小編抽時間給大家介紹BootStrap table刪除指定行的注意事項,需要的朋友參考下吧
    2017-02-02
  • JavaScript實現(xiàn)HTML5游戲斷線自動重連的方法

    JavaScript實現(xiàn)HTML5游戲斷線自動重連的方法

    這篇文章主要介紹了JavaScript實現(xiàn)HTML5游戲斷線自動重連的方法,需要的朋友可以參考下
    2017-09-09
  • javascript中的 object 和 function小結

    javascript中的 object 和 function小結

    JavaScript的面向對象是基于原形的,所有對象都有一條屬于自己的原型鏈。Object與Function可能很多看Object instanceof Function , Function instanceof Object都為true而迷惑,所以首先看下對象的實例。
    2016-08-08
  • js實現(xiàn)類似jquery里animate動畫效果的方法

    js實現(xiàn)類似jquery里animate動畫效果的方法

    這篇文章主要介紹了js實現(xiàn)類似jquery里animate動畫效果的方法,實例分析了javascript模擬實現(xiàn)jQuery中animate動畫效果的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04

最新評論