<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          手把手教你實(shí)現(xiàn)web頁面內(nèi)容滑動效果

          共 2167字,需瀏覽 5分鐘

           ·

          2020-07-28 16:09

          作者 |?唐宋元明清2188
          來源 |?http://www.cnblogs.com/kybs0/

          標(biāo)簽的觸摸/鼠標(biāo)滑動事件,添加元素的切換動畫,效果如下:

          事件監(jiān)聽

          鼠標(biāo)事件和觸摸事件監(jiān)聽:
          componentDidMount() { var teachingReportDiv = document.getElementById("teachingReport") as HTMLElement; teachingReportDiv.onmousedown = this.onMouseDown; teachingReportDiv.onmouseup = this.onMouseUp; teachingReportDiv.addEventListener('touchstart', this.onTouchStart, false); teachingReportDiv.addEventListener('touchmove', this.onTouchMove, false); teachingReportDiv.addEventListener('touchend', this.onTouchEnd, false); }
          觸摸事件,不能HTMLElement.ontouchstart添加事件監(jiān)聽,可以EventListener或者在標(biāo)簽中添加。
          "teachingReport" onTouchStart={(event) => this.onTouchStart(event)}/>
          觸摸事件有以下幾個(gè):
          • touchstart事件:手指觸摸時(shí)候觸發(fā)(支持多指觸發(fā))
          • touchmove事件:手指在滑動的時(shí)候連續(xù)地觸發(fā)。在這個(gè)事件發(fā)生期間,調(diào)用preventDefault()事件可以阻止?jié)L動,當(dāng)然也不能濫用否則會影響原有頁面的上下滾動等。
          • touchend事件:手指從屏幕上離開的時(shí)候觸發(fā)
          • touchcancel事件:當(dāng)系統(tǒng)停止跟蹤觸摸的時(shí)候觸發(fā)。關(guān)于這個(gè)事件的確切出發(fā)時(shí)間,文檔中并沒有具體說明。。。不建議使用

          事件處理

          添加全局字段:
          locationStartX: number = 0; locationEndX: number = 0;
          滑動處理,超出滑動閾值后,更新相關(guān)狀態(tài)。
          onTouchStart = (event) => { this.locationStartX = event.targetTouches[0].pageX; } onTouchMove = (event) => { // event.preventDefault(); this.locationEndX = event.targetTouches[0].pageX; } onTouchEnd = (event) => { const locationChangedX = this.locationEndX < this.locationStartX; if (Math.abs(locationChangedX) > 10) { const isSlidingToRight=locationChangedX<0; }???}

          添加切換動畫

          動畫,可以通過state參數(shù)觸發(fā)
          this.onTouchStart(event)}/>動畫數(shù)據(jù)參考://動畫
          @keyframes showFromLeft { from { opacity: 0; transform: translateX(-100px); } to { opacity: 1; transform: translateX(0px); } } @keyframes showFromRight { from { opacity: 0; transform: translateX(100px); } to { opacity: 1; transform: translateX(0px); } } @keyframes hideToLeft { from { opacity: 1; transform: translateX(0px); } to { opacity: 0; transform: translateX(-100px); } } @keyframes hideToRight { from { opacity: 1; transform: translateX(0px); } to { opacity: 0; transform: translateX(100px); } }
          ?本文完~

          瀏覽 67
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产日逼的视频 | 天天干人人上 | 色天堂在线播放 | 黄片视频软件 | 影音先锋AV在线资源网站 |