js 仿京東放大鏡

2021-09-28 17:33:09 字數 1243 閱讀 1115

功能模組

整個案例可以分為三個功能模組

滑鼠經過小盒子, 黃色的遮擋層 和 大盒子顯示,離開隱藏2個盒子功能

黃色的遮擋層跟隨滑鼠功能。

移動黃色遮擋層,大跟隨移動功能。

案例分析

黃色的遮擋層跟隨滑鼠功能。

把滑鼠座標給遮擋層不合適。因為遮擋層座標以父盒子為準。

首先是獲得滑鼠在盒子的座標。

之後把數值給遮擋層做為left 和top值。

此時用到滑鼠移動事件,但是還是在小盒子內移動。

發現,遮擋層位置不對,需要再減去盒子自身高度和寬度的一半。

遮擋層不能超出小盒子範圍。

如果小於零,就把座標設定為0

如果大於遮擋層最大的移動距離,就把座標設定為最大的移動距離

html**

js**

window.addeventlistener('load', function() )

preview_img.addeventlistener('mouseout', function() )

// 2. 滑鼠移動的時候,讓黃色的盒子跟著滑鼠來走

preview_img.addeventlistener('mousemove', function(e) else if (maskx >= maskmax)

if (masky <= 0) else if (masky >= maskmax)

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

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

// 3. 大的移動距離 = 遮擋層移動距離 * 大最大移動距離 / 遮擋層的最大移動距離

// 大圖

var bigimg = document.queryselector('.bigimg');

// 大最大移動距離

var bigmax = bigimg.offsetwidth - big.offsetwidth;

// 大的移動距離 x y

var bigx = maskx * bigmax / maskmax;

var bigy = masky * bigmax / maskmax;

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

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

})})

JS 仿京東放大鏡

滑鼠移動的時候黃色背景層跟著移動 16 content.addeventlistener mousemove function e else if maskx maskmax 30if masky 0 else if masky maskmax 35 mask.style.left maskx px...

仿京東放大鏡效果

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

京東放大鏡效果

先上html和css box box1 box1 img mask mask hover box2 box2 img 前面滑鼠覆蓋出現,滑鼠離開消失等都不難。先獲取各個元素,設定display屬性就好了。直接上 let mask document.queryselector mask let box...