京東放大鏡效果

2021-10-05 06:12:11 字數 1454 閱讀 5613

先上html和css**

.box

.box1

.box1 img

.mask

.mask:hover

.box2

.box2 img

前面滑鼠覆蓋出現,滑鼠離開消失等都不難。先獲取各個元素,設定display屬性就好了。直接上**

let mask = document.queryselector(".mask")

let box1 = document.queryselector(".box1")

let box2 = document.queryselector(".box2")

let bigimg = document.queryselector(".box2 img")

box1.addeventlistener("mouseover", function(e) )

box1.addeventlistener("mouseout", function() )

接下來是設定,黃色的遮罩層跟隨滑鼠移動和放大效果,放大的基本原理是

遮擋層移動距離 / 遮擋層最大移動距離= 大移動距離 / 大最大移動距離

這裡還加了碰撞檢測,防止黃色遮罩層跑出盒子外面。

js**如下:

box1.addeventlistener("mousemove", function(e)  else if (maskx > box1.offsetwidth - mask.offsetwidth) 

if (masky < 0) else if (masky > box1.offsetheight - mask.offsetheight)

mask.style.left = maskx + "px";

mask.style.top = masky + "px";

//遮擋層移動距離/遮擋層最大移動距離= 大移動距離/大最大移動距離

// maskx/box1.offsetwidth - mask.offsetwidth

// 遮擋層最大移動距離

var maskmax = box1.offsetwidth - mask.offsetwidth

//大圖移動距離

var bigmax = bigimg.offsetwidth - box2.offsetwidth

var bigx = maskx * bigmax / maskmax

var bigy = masky * bigmax / maskmax

//注意這裡是負的值,因為移動方向要和屬性方向相反

bigimg.style.left = -bigx + "px";

bigimg.style.top = -bigy + "px";

})

仿京東放大鏡效果

案例分析 1.整個案例可以分為三個功能模組 2.滑鼠經過小盒子,黃色的遮擋層和大盒子顯示,離開時2個盒子隱藏功能 3.黃色的遮擋層跟隨滑鼠移動功能 4.移動黃色遮擋層,大跟隨移動功能。效果 html部分 1 doctype html 2 html lang en 3 head 4 meta char...

WPF放大鏡效果

原文 wpf放大鏡效果 在做wpf專案中,不止兩個專案需要有放大鏡功能。第乙個專案是乙個手術室的遠端示教系統,主要是為了方便專家演示病症時,可以放大上的某些部位。第二個專案是乙個工廠的mes專案,其中有個功能是質量預警,主要就是根據疵點,對比實物進行預警。可是疵點很小,這時就需要乙個放大鏡的功能。效...

放大鏡效果(offset)

注 preview img 初始 需要放大的 mask 遮擋層 big 大盒子 preview img.addeventlistener mousemove function e else if maskx maskmax if masky 0 else if masky maskmax mask....