<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScript實(shí)現(xiàn)圖片放大鏡效果

        來源:懂視網(wǎng) 責(zé)編:小OO 時(shí)間:2020-11-27 21:54:24
        文檔

        JavaScript實(shí)現(xiàn)圖片放大鏡效果

        本文實(shí)例為大家分享了js實(shí)現(xiàn)圖片放大鏡效果的具體代碼,供大家參考,具體內(nèi)容如下:1、結(jié)構(gòu)布局HTML代碼。<;div class="leftcon" id="left">;<;img src="~/Content/images/風(fēng)景-1.jpg" />;<;div class="slide_box" id="box">;<;/div>;<;/div>;<;div class="rightcon" id="right">;<;img src="~/Content/images/風(fēng)景-1.jpg" />;<;/div>。2、修飾結(jié)構(gòu)css樣式代碼。
        推薦度:
        導(dǎo)讀本文實(shí)例為大家分享了js實(shí)現(xiàn)圖片放大鏡效果的具體代碼,供大家參考,具體內(nèi)容如下:1、結(jié)構(gòu)布局HTML代碼。<;div class="leftcon" id="left">;<;img src="~/Content/images/風(fēng)景-1.jpg" />;<;div class="slide_box" id="box">;<;/div>;<;/div>;<;div class="rightcon" id="right">;<;img src="~/Content/images/風(fēng)景-1.jpg" />;<;/div>。2、修飾結(jié)構(gòu)css樣式代碼。

        本文實(shí)例為大家分享了js實(shí)現(xiàn)圖片放大鏡效果的具體代碼,供大家參考,具體內(nèi)容如下

        1、結(jié)構(gòu)布局HTML代碼

        <div class="leftcon" id="left">
         <img src="~/Content/images/風(fēng)景-1.jpg" />
         <div class="slide_box" id="box"></div>
        </div>
        <div class="rightcon" id="right">
         <img src="~/Content/images/風(fēng)景-1.jpg" />
        </div>

        2、修飾結(jié)構(gòu)css樣式代碼

        img {
        display: block;
        }.leftcon {
        width: 350px;height: 350px;
        margin: 100px 20px 0px 312px;
        float: left;position: relative;
        box-shadow: 3px 3px 10px 0 #111111; /*給圖片施加陰影效果 */
        -webkit-box-shadow: 3px 3px 10px 0 #111111; /*兼容性處理*/
        -moz-box-shadow: 3px 3px 10px 0 #111111;
        }.leftcon img {
        width: 100%;height: 100%;
        }.leftcon .slide_box {
        display: none; /*將小方塊盒子隱藏*/
        position: absolute;top: 0;left: 0;
        width: 175px;height: 175px;
        background: #000;opacity: 0.3;
        cursor: move; /*改變鼠標(biāo)的形狀*/
        }.rightcon {
        display: none; /*將右邊div隱藏*/
        width: 350px;height: 350px;
        margin-top: 100px;float: left;
        overflow: hidden;position: relative;
        }.rightcon img {
        width: 200%;height: 200%;
        position: absolute;left: 0px;top: 0px;
        }

        3、js獲取事件對象

        1)、Event是獲取事件對象,對象代表事件的狀態(tài),比如事件在其中發(fā)生的元素、鍵盤按鍵的狀態(tài)、
        鼠標(biāo)的位置、鼠標(biāo)按鈕的狀態(tài),envet是windows的一個(gè)屬性。 放大鏡實(shí)現(xiàn)方法(獲取右邊圖片定位)
        2)、e.clientY:返回事件觸發(fā)時(shí)鼠標(biāo)相對于元素視口的Y坐標(biāo)。
        e.clientX:返回事件觸發(fā)時(shí)鼠標(biāo)相對于元素視口的X坐標(biāo)。
        這里的元素視口實(shí)際上代指就是瀏覽器,clientX是鼠標(biāo)距離瀏覽器左邊框的距離,
        clientY是鼠標(biāo)距離瀏覽器上邊框的距離。
        offsetTop獲取對象相對于版面或由offsetTop屬性指定的父坐標(biāo)的計(jì)算頂端位置。
        這里就是左邊的div相對于body即瀏覽器窗口的縱向距離
        offsetLeft獲取對象相對于版面或由offsetLeft屬性指定的父坐標(biāo)的計(jì)算頂端位置。
        這里就是左邊的div相對于body即瀏覽器窗口的縱橫向距離
        offsetHeight是對象的可見高度。這里是指小滑塊的高度
        offsetHeight是對象的可見寬度。這里是指小滑塊的寬度

        var leftone = document.getElementById('left');
        var rightone = document.getElementById('right');
        var box = document.getElementById('box');
        var rimg = rightone.getElementsByTagName("img")[0];
        function getPosition(e){ //這里的參數(shù)e就是代表event
         //首先我們要去判斷事件源,獲取事件源,也就是e
         var e=e||window.event; //實(shí)現(xiàn)兼容
         //理解:
         //這個(gè)表達(dá)式寫全是這樣:var e=event?event||window.event;
         //如果存在event,那么var e=event;而如果不存在event,
         //那么var e=window.event.那么可以看出確實(shí)能實(shí)現(xiàn)兼容
         var top = e.clientY-leftone.offsetTop-box.offsetHeight/2; 
         //計(jì)算小圖容器里的鼠標(biāo)坐標(biāo)(要減去最外層的偏移)
         var left = e.clientX-leftone.offsetLeft-box.offsetWidth/2;
         //這里為什么除以2?是因?yàn)槲覀儾怀?的話,事件源也就是鼠標(biāo)就在這個(gè)小滑塊的的右下角,并不美觀
         //我們要讓鼠標(biāo)位于滑塊的中心,所以寬高各減去一半
        
         //邊界判斷
         //獲取小滑塊最大縱向移動距離
         var maxtop = leftone.offsetHeight - box.offsetHeight; 
         //獲取小滑塊最大橫向移動距離
         var maxleft = leftone.offsetWidth - box.offsetWidth; 
         var mintop = 0; //獲取小滑塊最小縱向移動距離
         var minleft = 0; //獲取小滑塊最大縱向移動距離
         var mvtop; //定義小滑塊的縱向移動距離
         var mvleft; //定義小滑塊的橫向移動距離
         // 判斷
         if (top<mintop) {
         box.style.top = mintop + "px";
         mvtop = mintop;
         //理解:
         //top是鼠標(biāo)到瀏覽器的垂直距離-左邊div頂部到瀏覽器的垂直距離-小滑塊的高度的一半。
         //那么現(xiàn)在鼠標(biāo)在小滑塊的中心,也就是說,top就等于小滑塊的頂部到左邊div的垂直距離
         //如果top<0,就是說小滑塊和左邊div頂部重合,就讓小滑塊的top值為0,即鼠標(biāo)繼續(xù)向上移動,
         //小滑塊不在移動,從而讓小滑塊的移動范圍不能超過左邊div的寬高范圍
         //下方同理
         }else if(top>maxtop){
         box.style.top = maxtop + "px";
         mvtop = maxtop;
         //如果top>maxtop,就是說小滑塊和左邊div底部重合,就讓小滑塊的top值為maxtop,
         //即鼠標(biāo)繼續(xù)向下移動,小滑塊不在移動,從而讓小滑塊的移動范圍不能超過左邊div的寬高范圍
         }else{
         box.style.top = top + "px";
         mvtop = top;
         //不超過邊界,則小滑塊的垂直移動距離就等于top,即小滑塊的頂部到左邊div的垂直距離
         }
         if(left<minleft){
         box.style.left = minleft + "px";
         mvleft = minleft
         }else if(left>maxleft){
         box.style.left = maxleft + "px";
         mvleft = maxleft
         }else{
         box.style.left = left + "px";
         mvleft = left;
         }
         //因?yàn)橛疫卍iv的圖片是左邊div的圖片的兩倍,而左邊div和右邊div都是小滑塊的寬高的兩倍,
         //而要讓右邊div放大左邊的小滑塊的包圍圖片,所以右邊大圖的定位坐標(biāo)是小滑塊的兩倍,這樣才能進(jìn)行映射
         //右側(cè)圖片跟著運(yùn)動:左側(cè)小滑塊移動多少,右側(cè)跟著移動他的2倍即可
         rimg.style.top = -mvtop*2 + "px";
         rimg.style.left = -mvleft*2 + "px";
         }

        4、鼠標(biāo)移入、移出事件

        左側(cè)盒子鼠標(biāo)移入,小滑塊和右側(cè)圖片顯示,銜接鼠標(biāo)移動效果
        onmouseenter 事件類似于 onmouseover 事件。 唯一的區(qū)別是 onmouseenter 事件不支持冒泡。

        //鼠標(biāo)移動效果
        leftone.onmousemove = function(e){
         var e=e||window.event; //判斷事件源
         box.style.display = "block";
         getPosition(e);
         rightone.style.display = "block";
        }
        //鼠標(biāo)移出效果
        leftone.onmouseleave = function(e){
         var e=e||window.event; //判斷事件源
         box.style.display = "none";
         rightone.style.display = "none";
        }

        5、效果圖

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScript實(shí)現(xiàn)圖片放大鏡效果

        本文實(shí)例為大家分享了js實(shí)現(xiàn)圖片放大鏡效果的具體代碼,供大家參考,具體內(nèi)容如下:1、結(jié)構(gòu)布局HTML代碼。<;div class="leftcon" id="left">;<;img src="~/Content/images/風(fēng)景-1.jpg" />;<;div class="slide_box" id="box">;<;/div>;<;/div>;<;div class="rightcon" id="right">;<;img src="~/Content/images/風(fēng)景-1.jpg" />;<;/div>。2、修飾結(jié)構(gòu)css樣式代碼。
        推薦度:
        標(biāo)簽: 圖片 實(shí)現(xiàn) js
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 2020久久精品亚洲热综合一本| 亚洲国产成人久久综合野外| 国产99视频精品免费视频76| 一个人免费观看日本www视频 | 亚洲日本视频在线观看| 亚洲熟妇无码AV| 一级毛片aa高清免费观看| 亚洲狠狠爱综合影院婷婷| 亚洲高清免费在线观看| 亚洲性无码AV中文字幕| 在线看片人成视频免费无遮挡| 亚洲 自拍 另类小说综合图区 | 久久受www免费人成_看片中文| 女人18毛片水真多免费看 | 亚洲精品无码久久久久sm| 午夜在线a亚洲v天堂网2019| 国产色爽免费无码视频| 成年女人毛片免费播放视频m| 国产亚洲精品xxx| 24小时免费看片| 亚洲一区视频在线播放| 国内精品久久久久影院亚洲| 日韩一级免费视频| 亚洲视频一区调教| av成人免费电影| 亚洲欧洲第一a在线观看| 国产片AV片永久免费观看| 亚洲国产精品成人久久蜜臀| 在线免费视频你懂的| 免费观看午夜在线欧差毛片 | 久久亚洲精品无码| 国产成人无码免费网站| 亚洲第一AAAAA片| 三级网站免费观看| 久久亚洲精品无码播放| AV激情亚洲男人的天堂国语| 免费国产成人高清在线观看网站 | 国产精品福利片免费看| 亚洲国产视频网站| 亚洲人AV永久一区二区三区久久| 精品一区二区三区免费毛片爱|