js仿淘寶商品放大預(yù)覽功能
將鼠標(biāo)移動至圖片區(qū)域可放大預(yù)覽
效果圖:

代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{padding:0; margin:0;}
#img1{width:300px; height:200px;}
#sp1{width:60px; height:40px; position: absolute; left:0; top:0; background: rgba(62, 55, 58, 0.4)
}
#img2{width:2250px; height:1500px; position: absolute;}
div{width:450px; height:300px; position: absolute; left:310px; top:0; overflow: hidden; border:2px solid black; display: none;}
</style>
<script>
window.onload=function(){
var img1 = document.getElementById('img1');
var img2 = document.getElementById('img2');
var sp = document.getElementById('sp1');
var oBox = document.getElementById('box');
sp.onmouseover=function(){
oBox.style.display='block';
};
sp.onmouseout=function(){
oBox.style.display='none';
};
document.onmousemove=function(ev){
var x = (ev.clientX || event.clientX)-sp.offsetWidth/2;
var y = (ev.clientY || event.clientY)-sp.offsetHeight/2;
if((ev.clientX || event.clientX)<sp.offsetWidth/2){
x = 0;
}
if((ev.clientX || event.clientX)>img1.offsetWidth-sp.offsetWidth/2){
x = img1.offsetWidth-sp.offsetWidth;
}
if((ev.clientY || event.clientY)<sp.offsetHeight/2){
y = 0;
}if((ev.clientY || event.clientY)>img1.offsetHeight-sp.offsetHeight/2){
y = img1.offsetHeight-sp.offsetHeight;
}
if((ev.clientX || event.clientX)<300 && (ev.clientY || event.clientY)<200) {
sp.style.left = x + 'px';
sp.style.top = y + 'px';
img2.style.left = -x * (img2.offsetWidth / img1.offsetWidth) + 'px';
img2.style.top = -y * (img2.offsetHeight / img1.offsetHeight) + 'px';
}
}
}
</script>
</head>
<body>
<img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1489083204637&di=244fe324db033fc826de48e90d2373f0&imgtype=0&src=http%3A%2F%2Fpic2015.5442.com%2F2016%2F0328%2F025%2F5.jpg%2521960.jpg
" alt="" id="img1">
<span id="sp1"></span>
<div id="box">
<img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1489083204637&di=244fe324db033fc826de48e90d2373f0&imgtype=0&src=http%3A%2F%2Fpic2015.5442.com%2F2016%2F0328%2F025%2F5.jpg%2521960.jpg
" alt="" id="img2">
</div>
</body>
</html>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
基于d3.js/neovis.js/neod3.js實(shí)現(xiàn)鏈接neo4j圖形數(shù)據(jù)庫的圖像化顯示功能
neovis.js?由vis.js支持的圖形可視化以及來自Neo4j的數(shù)據(jù)。這篇文章主要介紹了基于d3.js/neovis.js/neod3.js實(shí)現(xiàn)鏈接neo4j圖形數(shù)據(jù)庫的圖像化顯示功能,需要的朋友可以參考下2022-02-02
微信小程序使用swiper組件實(shí)現(xiàn)層疊輪播圖
這篇文章主要為大家詳細(xì)介紹了微信小程序使用swiper組件實(shí)現(xiàn)層疊輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-11-11
基于JS代碼實(shí)現(xiàn)圖片在頁面中旋轉(zhuǎn)效果
這篇文章主要介紹了基于JS代碼實(shí)現(xiàn)圖片在頁面中旋轉(zhuǎn)效果 的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-06-06
js實(shí)現(xiàn)彈出框的拖拽效果實(shí)例代碼詳解
本文通過實(shí)例代碼給大家介紹了js實(shí)現(xiàn)彈出框的拖拽效果,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-04-04
JS數(shù)組屬性去重并校驗(yàn)重復(fù)數(shù)據(jù)
這篇文章主要介紹了JS數(shù)組屬性去重并校驗(yàn)重復(fù)數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01
微信小程序自定義tabbar custom-tab-bar 6s出不來解決方案(cover-view不兼容)
這篇文章主要介紹了微信小程序自定義tabbar custom-tab-bar 6s出不來解決方案,cover-view不兼容問題,需要的朋友可以參考下2019-11-11
利用JavaScript中的高階函數(shù)和閉包實(shí)現(xiàn)命令模式
命令模式提供了一種優(yōu)雅的解決方案,使得我們能夠靈活地封裝和管理代碼操作,所以本文將為大家介紹命令模式的概念、應(yīng)用場景以及在JavaScript中的實(shí)現(xiàn)方式,需要的可以參考一下2023-06-06

