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

嘗試動手制作javascript放大鏡效果

 更新時間:2015年12月25日 09:53:54   作者:Big_Dot  
這篇文章主要介紹了javascript放大鏡效果,照著別人的例子,自己試著做了個放大鏡效果,感興趣的小伙伴們可以參考一下

本文實例為大家介紹了基于javascript實現(xiàn)放大鏡效果的原理和代碼,分享給大家供大家參考,具體內(nèi)容如下:

原理:

A:放大鏡   B:小圖片

C:大圖片可視區(qū)域

D:大圖片

鼠標的位置應(yīng)該在放大鏡的中央,所以鼠標位置為:

clientX=A.offsetLeft()+B.offsetLeft+1/2*A.offsetWidth;

clientY=A.offsetTop()+B.offsetTop+1/2*A.offsetHeight;

鼠標移動過程中:放大鏡A和大圖D是一起隨鼠標成比例運動的,因為當放大鏡A的右邊框移動到與小圖B的右邊框重合時,大圖D也應(yīng)該移動到了右邊框與C的右邊框重合的地方,所以,他們的移動比例是:(D.offsetWidth-C.offsetWidth)/(B.offsetWidth-A.offsetWidth)=b/a

HTML部分:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>放大鏡效果</title>

<style>

*{
margin:0;
padding:0; 
}

#demo{
position: relative;
margin:30px 50px;
width: 1000px;
height: 600px;
border: 1px solid #000;
}

#zhezhao{
position: absolute;
z-index:2;
background:red;
width:402px;
height:402px;
left: 20px;
top:20px;
opacity: 0;
}

#small{
position: absolute;
width:402px;
height:402px;
left: 20px;
top:20px;
border: 1px solid #000;
z-index: 1;
}


#small img{
position: absolute;

}


#big{
position: relative;
top: 20px;
left: 460px;
width:500px;
height:500px;
border: 1px solid #000;
overflow: hidden;
display: none;
z-index: 1;
}


#big img{
position: absolute;

}


#glass{
position: absolute;
width:100px;
height: 100px;
opacity: 0.3;
background:orange;
display: none;
}

</style>


</head>


<body>
<div id='demo'>
<div id='zhezhao'> </div> 
<!-- 在ie瀏覽器中,當鼠標在放大鏡上是,瀏覽器并不認為鼠標同樣在小圖的div上,所以加個遮罩層 兼容ie-->


<div id='small'> 
<img src='images/small.png' alt=''>
<div id='glass'></div>
</div>
<div id='big'>
<img src='images/big.jpg' alt='' >

</div>

</div>



</body>

</html>

js部分:

<script>

window.onload=function(){
var demo =document.getElementById('demo');
var small =document.getElementById('small');
var big =document.getElementById('big');
var glass =document.getElementById('glass')
var image =document.getElementById('big').getElementsByTagName('img')[0];
var zhezhao=document.getElementById('zhezhao');

zhezhao.onmouseover=function(){
glass.style.display='block'
big.style.display='block'
}
zhezhao.onmouseout=function(){
glass.style.display='none'
big.style.display='none'
}

//弄清楚clientX,offsetLeft,left的關(guān)系,注意區(qū)分
zhezhao.onmousemove=function(ev){
var event=ev
var left=event.clientX-demo.offsetLeft-small.offsetLeft-glass.offsetWidth/2;
var top =event.clientY-demo.offsetTop -small.offsetTop -glass.offsetHeight/2;
if(left<0){
left=0;
}else if(left>(small.offsetWidth-glass.offsetWidth)){
left=small.offsetWidth-glass.offsetWidth
}

if(top<0){
top=0;
}else if(top>(small.offsetHeight- glass.offsetHeight)){
top=small.offsetHeight- glass.offsetHeight
}
glass.style.left =left+'px';
glass.style.top =top+'px';

 

var percent=(image.offsetWidth-big.offsetWidth)/(small.offsetWidth-glass.offsetWidth)

image.style.left=-percent*left+'px'
image.style.top =-percent*top+'px'



}
}

</script>

以上就是本文的全部內(nèi)容,希望對大家實現(xiàn)javascript放大鏡效果有所幫助。

相關(guān)文章

  • js 判斷計算字符串長度/判斷空的簡單方法

    js 判斷計算字符串長度/判斷空的簡單方法

    這篇文章介紹了判斷計算字符串長度/判斷空的簡單方法,有需要的朋友可以參考一下
    2013-08-08
  • 前端使用國密sm2和sm4進行加解密代碼示例

    前端使用國密sm2和sm4進行加解密代碼示例

    在前端實現(xiàn)加密算法時,需要特別注意密鑰的安全存儲和管理,不應(yīng)將敏感的密鑰硬編碼在前端代碼中,這篇文章主要介紹了前端使用國密sm2和sm4進行加解密的相關(guān)資料,需要的朋友可以參考下
    2025-04-04
  • 純JS實現(xiàn)本地圖片預(yù)覽的方法

    純JS實現(xiàn)本地圖片預(yù)覽的方法

    這篇文章主要介紹了純JS實現(xiàn)本地圖片預(yù)覽的方法,基于javascript插件實現(xiàn)本地圖片預(yù)覽功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • javascript getElementsByTagName

    javascript getElementsByTagName

    DC大神為早期不支持getElementsByTagName的瀏覽器寫的hack,當然與原生的不能同日而言,原生的用到緩存機制呢。
    2011-01-01
  • bootstrap輸入框組使用方法

    bootstrap輸入框組使用方法

    這篇文章主要為大家詳細介紹了bootstrap輸入框組的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • JSON字符串操作移除空串更改key/value的介紹

    JSON字符串操作移除空串更改key/value的介紹

    今天小編就為大家分享一篇關(guān)于JSON字符串操作移除空串更改key/value的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • JS求解三元一次方程組值的方法

    JS求解三元一次方程組值的方法

    這篇文章主要介紹了JS求解三元一次方程組值的方法,涉及JS數(shù)學(xué)運算的相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • Webpack打包詳細流程及代碼

    Webpack打包詳細流程及代碼

    這篇文章主要給大家介紹了關(guān)于Webpack打包詳細流程及代碼的相關(guān)資料,Webpack是一款非常流行的打包工具,它的主要作用是將項目中的各個模塊打包成靜態(tài)資源,以便于在瀏覽器中加載和運行,需要的朋友可以參考下
    2024-01-01
  • javascript 正則表達式觸發(fā)函數(shù)進行高級替換

    javascript 正則表達式觸發(fā)函數(shù)進行高級替換

    如果在正則表達式中定義了子匹配,那么參數(shù)的長度會隨著子匹配的個數(shù)改變,如果沒有定義子匹配,那么長度是固定的。
    2010-03-03
  • 非常全面的12種js數(shù)組去重的方法

    非常全面的12種js數(shù)組去重的方法

    數(shù)組的去重方法,其實無論實在實際項目還是在面試中都會有用到的,下面這篇文章主要給大家介紹了非常全面的12種js數(shù)組去重的方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07

最新評論

平利县| 竹溪县| 襄汾县| 安乡县| 兴隆县| 邢台市| 临颍县| 海晏县| 东港市| 沅江市| 台北县| 阿拉善右旗| 新宾| 华安县| 曲水县| 海城市| 鲁山县| 临夏市| 额尔古纳市| 乌拉特中旗| 新津县| 酉阳| 丹东市| 霍林郭勒市| 巴马| 乌鲁木齐县| 长葛市| 丘北县| 甘洛县| 简阳市| 华蓥市| 射洪县| 田林县| 大埔县| 广安市| 大冶市| 长沙市| 沂水县| 锡林浩特市| 太仆寺旗| 孝昌县|