<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      手?jǐn)]原生js放大鏡效果

      普及知識:放大鏡特效涉及到的幾個(gè)值
      offsetWidth    獲取元素的寬度
      offsetHeight  獲取元素的高度
      offsetLeft父元素沒有定位時(shí),獲取元素距離頁面的左邊距,父元素有定位時(shí),獲取元素距離父元素的左邊距
      offsetTop父元素沒有定位時(shí),獲取元素距離頁面的上邊距,父元素有定位時(shí),獲取元素距離父元素的上邊距
      clientX  離視口左邊的距離
      clientY  離視口上邊的距離
      onmousemove  鼠標(biāo)移動事件
      onmouseover  鼠標(biāo)劃過事件

      主要思路:

          1.點(diǎn)擊縮略圖,中圖和大圖一塊切換
          2.鼠標(biāo)移動到中圖時(shí)顯示大圖,并顯示放大鏡陰影部分
          3.當(dāng)在中圖上移動時(shí) 陰影部分的放大鏡跟著移動,大圖也跟著移動
          4.鼠標(biāo)從中圖移除時(shí),大圖隱藏   陰影部分的放大鏡也隱藏。
          5.處理邊界值

      * {
        margin: 0;
        padding: 0;
        list-style: none;
      }
      
      .container {
        width: 1000px;
        height: 600px;
        margin: 50px auto;
        font-size: 0;
      }
      
      .left-img {
        width: 490px;
        height: 510px;
        margin-right: 16px;
        border: 1px solid #eee;
        display: inline-block;
        /* 圖片 */
        background-image: url(./images/imgA_2.jpg);
        background-repeat: no-repeat;
        background-position: center;
        background-size: cover;
        /* 遮罩層相對我進(jìn)行定位 */
        position: relative;
      }
      .mask {
        width: 230px;
        height: 230px;
        background-image: url(./images/bg.png);
        position: absolute;
        top: 0;
        left: 0;
        opacity: 0;
      }
      .right-img {
        width: 490px;
        height: 510px;
        border: 1px solid #eee;
        display: inline-block;
        background-image: url(./images/imgA_3.jpg);
        background-repeat: no-repeat;
        opacity: 0;
      }
      
      .img-list-wrapper {
        width: 490px;
        text-align: center;
        margin-top: 10px;
      }
      .img-list {
        display: inline-block;
      }
      .img-list li {
        display: inline-block;
        width: 60px;
        height: 60px;
        margin: 0 5px;
        cursor: pointer;
        /* background-image: url(./images/imgA_1.jpg); */
        background-repeat: no-repeat;
        /* border: 2px solid #000; */
        border: 1px solid #eee;
      }
      .img-list li.active{
        border: 1px solid #000;
      }

       

      //數(shù)據(jù)邏輯  界面邏輯 事件邏輯
      // 單一元素
      function $(selector) {
        return document.querySelector(selector);
      }
      
      // 多個(gè)元素
      function $$(selector) {
        return document.querySelectorAll(selector);
      }
      
      // 初始化數(shù)據(jù)圖片
      var imgs = {
        // 小圖
        small: ['imgA_1.jpg', 'imgB_1.jpg', 'imgC_1.jpg'],
        // 中圖
        middle: ['imgA_2.jpg', 'imgB_2.jpg', 'imgC_2.jpg'],
        // 大圖
        large: ['imgA_3.jpg', 'imgB_3.jpg', 'imgC_3.jpg']
      }
      var smallImge = $('.img-list');
      var minddleImage = $('.left-img');
      var bigImage = $('.right-img');
      var mask = $('.mask');
      function initSmall(){
        var html='';
        for(var i = 0;i<imgs.small.length;i++){
          html+='<li style="background-image:url(./images/'+imgs.small[i]+') "></li>';
        }
        smallImge.innerHTML=html;
        //默認(rèn)選中第一個(gè)
        $('.img-list li').className = 'active';
      }
      
      function init(){
        initSmall();
        bindEvent();
      }
      var bindEvent = function(){
        //事件委托綁定事件 其原理是用事件的冒泡實(shí)現(xiàn)的
        //小圖切換大圖事件
        smallImge.addEventListener('click', smallImgeHandle);
        //放大鏡事件
        //鼠標(biāo)移動 和 鼠標(biāo) 離開
        minddleImage.addEventListener('mousemove', mouseHandle);
        minddleImage.addEventListener('mouseleave',leaveHandle)
      }
      var smallImgeHandle = function(e){
        console.dir(e.target.tagName)
        if(e.target.tagName === 'LI'){
          //將之前選中的項(xiàng)的狀態(tài)取消掉
          var selected = $('.img-list .active');
          if(selected){
            selected.className = '';
          }
          e.target.className = 'active';
      
          //切換中圖和大圖
          //先取到 目標(biāo)元素在列表中的下標(biāo)
          var lis = smallImge.querySelectorAll('li');
          var index = [].indexOf.call(lis,e.target);
          minddleImage.style.backgroundImage = 'url(./images/'+imgs.middle[index]+')';
          bigImage.style.backgroundImage = 'url(./images/'+imgs.large[index]+')';
        }
      }
      var mouseHandle = function(e){
        console.log(123);
        mask.style.opacity = 1;
        bigImage.style.opacity = 1;
        var cx = e.clientX;//鼠標(biāo)點(diǎn)離視口的左邊距離
        var cy = e.clientY;//鼠標(biāo)點(diǎn)離視口的上邊距離
        var mcx = minddleImage.offsetLeft;//中圖的容器離視口的左邊距離
        var mcy = minddleImage.offsetTop;//中圖的容器離視口的上邊距離
        var left = cx - mcx - mask.offsetWidth / 2; //mask離中圖的容器的左邊距離
        var top = cy - mcy - mask.offsetHeight / 2;//mask離中圖的容器的上邊距離
        // 注意點(diǎn):設(shè)置元素的尺寸和位置會導(dǎo)致瀏覽器reflow 瀏覽器為了優(yōu)化性能不會立馬reflow 會等到最后都設(shè)置完之后 會進(jìn)行一次reflow
        var maxLeft = minddleImage.offsetWidth - mask.offsetWidth;//最大左側(cè)偏移量
        var maxTop = minddleImage.offsetHeight - mask.offsetHeight;//最大頭部偏移量
        console.log('left:'+left)
        console.log('top:'+top)
      
        //處理邊界條件
        if(left<=0){
          left = 0;
        }
        if(top<=0){
          top = 0;
        }
        if(left>=maxLeft){
          left = maxLeft;
        }
        if(top>=maxTop){
          top = maxTop;
        }
        mask.style.left = left + 'px';
        mask.style.top = top + 'px';
        //移動大圖的偏移量
        bigImage.style.backgroundPositionX = -left + 'px';
        bigImage.style.backgroundPositionY = -top + 'px';
      }
      var leaveHandle = function(){
        mask.style.opacity = 0;
        bigImage.style.opacity = 0;
      }
      init();

       

      posted @ 2024-09-29 15:12  飛奔的龜龜  閱讀(118)  評論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 亚洲精品人妻中文字幕| 亚洲欧洲一区二区精品| 婷婷综合缴情亚洲| 国产粉嫩美女一区二区三| 国产成人精品1024免费下载| 亚洲精品一区二区三区小| 久久国产精品老人性| 国产精品自拍一二三四区| 美女爽到高潮嗷嗷嗷叫免费网站 | 一个人看的www视频免费观看| 呼玛县| 日韩中文字幕在线不卡一区| 久久五十路丰满熟女中出| 久久精品国产99国产精品澳门| 成人国产乱对白在线观看| 国产精品免费观在线| 日韩一区二区三区在线视频| 92精品国产自产在线观看481页| 国产精品一区二区久久不卡| 日韩av一区二区精品不卡| ww污污污网站在线看com| 久久精品亚洲日本波多野结衣| 久久夜色精品国产噜噜亚洲sv| AV人摸人人人澡人人超碰| 欧美牲交a欧美牲交aⅴ一| 无遮无挡爽爽免费视频| 一本精品99久久精品77| 国产成人精品亚洲午夜麻豆| 男女做aj视频免费的网站| 亚洲v欧美v日韩v国产v| 国产一区二区三区免费观看| 亚洲国产精品久久无人区| 久久精品夜夜夜夜夜久久| 国产一区二区三区色噜噜| 中文字幕国产精品日韩| 日韩av中文字幕有码| 国产精品不卡一区二区三区| 99精品免费久久久久久久久日本| av亚洲在线一区二区| av天堂久久精品影音先锋| 亚洲av精选一区二区|