移动端滑动事件处理
@touchmove="midTouchmove"
// 滑动
midTouchmove(event) {
// event.preventDefault();
let e = e || window.event;
let touch = e.targetTouches[0];
// 禁用多指事件和防触发滑动事件
if (this.isMoreRefers || (touch.pageY < 450) || (touch.pageY > 750) || Math.abs(touch.pageX - this.initX) < 20){ return false }
let item = null
if (this.pageYOffset === 0) {
// 单指滑动事件(API 计算方法, 性能较好,窗口出现滚动条时返回值 null)
let ele = document.elementFromPoint( Math.round(touch.pageX), Math.round(touch.pageY));
if (ele.getAttribute('class') !== 's-paly') { return false }
let eleIndex = parseInt(ele.dataset.index);
item = this.notesMid[eleIndex]
}else {
// 单指滑动事件(原生计算方法, 计算量比较大,支持多种场景)
if (touch.pageY < 618) {
item = this.changeMove(this.notesMid, this.curItemNote, true, this.initX, touch.pageX, this.midWindth)
} else {
let mid = this.notesMid.filter( v => v.key.indexOf('f') == -1 )
item = this.changeMove(mid, this.curItemNote, false, this.initX, touch.pageX, this.midWindth )
}
}
if (item === false || item === null ) { return false }
if (this.timeGap && this.lastValue !== item.value) {
let that = this;
let curIndex = this.curKeyIndex.indexOf(item.value)
if (curIndex < 0) {
this.curKeyIndex.push(item.value)
}
this.pressBtn(item)
this.lastValue = item.value
this.timeGap = false
setTimeout(() => {
that.timeGap = true
this.curKeyIndex.splice(1, 1)
}, 10)
}
},
// 滑动
midTouchmove(event) {
// event.preventDefault();
let e = e || window.event;
let touch = e.targetTouches[0];
// 禁用多指事件和防触发滑动事件
if (this.isMoreRefers || (touch.pageY < 450) || (touch.pageY > 750) || Math.abs(touch.pageX - this.initX) < 20){ return false }
let item = null
if (this.pageYOffset === 0) {
// 单指滑动事件(API 计算方法, 性能较好,窗口出现滚动条时返回值 null)
let ele = document.elementFromPoint( Math.round(touch.pageX), Math.round(touch.pageY));
if (ele.getAttribute('class') !== 's-paly') { return false }
let eleIndex = parseInt(ele.dataset.index);
item = this.notesMid[eleIndex]
}else {
// 单指滑动事件(原生计算方法, 计算量比较大,支持多种场景)
if (touch.pageY < 618) {
item = this.changeMove(this.notesMid, this.curItemNote, true, this.initX, touch.pageX, this.midWindth)
} else {
let mid = this.notesMid.filter( v => v.key.indexOf('f') == -1 )
item = this.changeMove(mid, this.curItemNote, false, this.initX, touch.pageX, this.midWindth )
}
}
if (item === false || item === null ) { return false }
if (this.timeGap && this.lastValue !== item.value) {
let that = this;
let curIndex = this.curKeyIndex.indexOf(item.value)
if (curIndex < 0) {
this.curKeyIndex.push(item.value)
}
this.pressBtn(item)
this.lastValue = item.value
this.timeGap = false
setTimeout(() => {
that.timeGap = true
this.curKeyIndex.splice(1, 1)
}, 10)
}
},
tiryLi

浙公网安备 33010602011771号