文章基于《vue登錄時(shí)人機(jī)驗(yàn)證-滑塊驗(yàn)證》實(shí)現(xiàn)觸屏滑動(dòng)
觸屏滑動(dòng)方法如下:
//觸摸移動(dòng)
touchMove(e) {
let ele = e.target
let one = e.targetTouches[0]
let startX = one.clientX
let eleWidth = ele.offsetWidth
let parentWidth = ele.parentElement.offsetWidth
let MaxX = parentWidth - eleWidth
if (this.rangeStatus) {
//不運(yùn)行
return false
}
document.ontouchmove = e => {
let endX = e.targetTouches[0].clientX
this.disX = endX - startX
if (this.disX <= 0) {
this.disX = 0
}
if (this.disX >= MaxX - eleWidth) {
//減去滑塊的寬度,體驗(yàn)效果更好
this.disX = MaxX
}
ele.style.transition = '.1s all'
ele.style.transform = 'translateX(' + this.disX + 'px)'
}
document.ontouchend = () => {
if (this.disX !== MaxX) {
ele.style.transition = '.5s all'
ele.style.transform = 'translateX(0)'
//執(zhí)行成功的函數(shù)
this.errorFun && this.errorFun()
} else {
this.rangeStatus = true
if (this.status) {
this.$parent[this.status] = true
}
//執(zhí)行成功的函數(shù)
this.successFun && this.successFun()
}
document.ontouchmove = null
document.ontouchend = null
}
}