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


事件監(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);}
"teachingReport" onTouchStart={(event) => this.onTouchStart(event)}/>觸摸事件有以下幾個:
touchstart事件:手指觸摸時候觸發(fā)(支持多指觸發(fā))touchmove事件:手指在滑動的時候連續(xù)地觸發(fā)。在這個事件發(fā)生期間,調用preventDefault()事件可以阻止?jié)L動,當然也不能濫用否則會影響原有頁面的上下滾動等。touchend事件:手指從屏幕上離開的時候觸發(fā)touchcancel事件:當系統(tǒng)停止跟蹤觸摸的時候觸發(fā)。關于這個事件的確切出發(fā)時間,文檔中并沒有具體說明。。。不建議使用事件處理
添加全局字段: locationStartX: number = 0;locationEndX: number = 0;滑動處理,超出滑動閾值后,更新相關狀態(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);}}?本文完~
評論
圖片
表情
感谢您访问我们的网站,您可能还对以下资源感兴趣:
国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频
