最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

在線演示地址

項(xiàng)目基本結(jié)構(gòu)

目錄結(jié)構(gòu)如下:

第 1 步:圖像放大鏡的基本結(jié)構(gòu)

使用以下 HTML 和 CSS 代碼,首先在網(wǎng)頁上為此圖像放大鏡 HTML創(chuàng)建了一個(gè)框。您可以在此框中看到圖像。這里框的寬度:650px,高度:400 像素已經(jīng)用過。它被一個(gè) 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)在,一個(gè)圖像已添加到這個(gè)簡單的圖像放大鏡項(xiàng)目中。在這里,您可以使用您選擇的圖像。

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

第 3 步:CSS設(shè)計(jì)放大鏡

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

#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 激活圖像放大鏡

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

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

function magnify(id, zoom){
  const el = document.getElementById(id);
//cloneNode() 方法創(chuàng)建一個(gè)節(jié)點(diǎn)的副本,并返回克隆
  const copy = el.cloneNode(true);
//createElement() 方法創(chuàng)建由 tagName 指定的 HTML 元素
  const lens = document.createElement("div");
  
//setAttribute() 設(shè)置指定元素的屬性值
  lens.setAttribute("id","lens")  
  lens.style.width = lensSize + "px";
  lens.style.height = lensSize + "px";
  
//appendChild() 方法用于插入一個(gè)新節(jié)點(diǎn)
  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";
  
//當(dāng)指針在元素上移動(dòng)時(shí)執(zhí)行 MouseMove
  el.addEventListener("mousemove", (ev) => {
//preventDefault() 方法停止選定元素的默認(rèn)操作
    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)站中都扮演著非常重要的角色。如果你需要放大項(xiàng)目中的任何圖像,則可以使用這種 javascript 類型的圖像放大鏡 。

 完整源碼下載

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

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

相關(guān)文章

  • javascript 簡單高效判斷數(shù)據(jù)類型 系列函數(shù) By shawl.qiu

    javascript 簡單高效判斷數(shù)據(jù)類型 系列函數(shù) By shawl.qiu

    javascript 簡單高效判斷數(shù)據(jù)類型 系列函數(shù) By shawl.qiu...
    2007-03-03
  • javascript每日必學(xué)之循環(huán)

    javascript每日必學(xué)之循環(huán)

    javascript每日必學(xué)之循環(huán),本文的主要內(nèi)容就是循環(huán),死循環(huán)時(shí)進(jìn)行bug調(diào)式,感興趣的小伙伴們可以參考一下
    2016-02-02
  • TS中type和interface的區(qū)別解析

    TS中type和interface的區(qū)別解析

    對于type來說,更多的是對類型的一種復(fù)用,比如在項(xiàng)目中需要用到一些比較復(fù)雜的或者書寫起來很長的類型,而對于 interface來說,它是正兒八經(jīng)的用來定義接口類型(約束數(shù)類型和屬性)的,且接口類型是支持繼承和聲明合并的,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • TypeScript裝飾器與反射元數(shù)據(jù)實(shí)例詳解

    TypeScript裝飾器與反射元數(shù)據(jù)實(shí)例詳解

    TypeScript的裝飾器為我們提供了一種強(qiáng)大的工具,可以在運(yùn)行時(shí)改變類的行為,通過理解裝飾器的工作原理,我們可以創(chuàng)造更加強(qiáng)大、靈活且易于維護(hù)的應(yīng)用,這篇文章主要介紹了TypeScript裝飾器與反射元數(shù)據(jù),需要的朋友可以參考下
    2023-09-09
  • Javascript前端UI框架Kit使用指南之Kitjs簡介

    Javascript前端UI框架Kit使用指南之Kitjs簡介

    本文給大家簡單介紹了一款優(yōu)秀的Javascript前端UI框架--Kitjs,支持PC端以及手機(jī)開發(fā)領(lǐng)域,非常的全面,這里推薦給有需要的小伙伴。
    2014-11-11
  • JS實(shí)現(xiàn)點(diǎn)星星消除小游戲

    JS實(shí)現(xiàn)點(diǎn)星星消除小游戲

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)點(diǎn)星星消除小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • js實(shí)現(xiàn)精美的圖片跟隨鼠標(biāo)效果實(shí)例

    js實(shí)現(xiàn)精美的圖片跟隨鼠標(biāo)效果實(shí)例

    這篇文章主要介紹了js實(shí)現(xiàn)精美的圖片跟隨鼠標(biāo)效果,實(shí)例分析了javascript鼠標(biāo)事件及頁面樣式的操作技巧,需要的朋友可以參考下
    2015-05-05
  • 微信小程序setInterval定時(shí)函數(shù)新手使用的超詳細(xì)教程

    微信小程序setInterval定時(shí)函數(shù)新手使用的超詳細(xì)教程

    平時(shí)開發(fā)中為實(shí)現(xiàn)倒計(jì)時(shí)效果可以使用setInterval即可,下面這篇文章主要給大家介紹了關(guān)于微信小程序setInterval定時(shí)函數(shù)新手使用的超詳細(xì)教程,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 初探j(luò)s和簡單隱藏效果的實(shí)例

    初探j(luò)s和簡單隱藏效果的實(shí)例

    下面小編就為大家分享一篇初探j(luò)s和簡單隱藏效果的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • 基于原生js淡入淡出函數(shù)封裝(兼容IE)

    基于原生js淡入淡出函數(shù)封裝(兼容IE)

    這篇文章主要為大家詳細(xì)介紹了基于原生js淡入淡出函數(shù)封裝,可兼容IE,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評論

佛山市| 昌黎县| 海林市| 睢宁县| 清徐县| 镇安县| 休宁县| 高邑县| 慈溪市| 扎囊县| 读书| 芮城县| 云浮市| 时尚| 大冶市| 常德市| 交口县| 喀什市| 西畴县| 都兰县| 札达县| 上蔡县| 龙南县| 平乡县| 平舆县| 金塔县| 乌兰察布市| 亳州市| 昌黎县| 德令哈市| 皮山县| 马边| 宜黄县| 依兰县| 辽源市| 体育| 泗阳县| 宁强县| 伊川县| 大新县| 广东省|