这仅适用于移动设备。它在桌面上按预期工作,因此我将省略所有这些样式和功能。
我有一个像这样的 Vue 组件:
模板
<div class="container">
<div class="invisible-overlay-styles">
<button
v-if="! videoIsPlaying"
@click="playVideo()"
@mousedown="playVideo()"
>
</button>
<a
v-if="videoIsPlaying"
>
</a>
</div> <!-- invisible-overlay-styles -->
<video ... />
</div>
所有的 div、按钮、锚点和视频都堆叠在一起,使用display: block和position: absolute; width: 100%; etc. etc. etc.
方法
playVideo(){
console.log( 'Im playing!!' );
if( this.player ){
if( this.player.paused ){
this.player.play()
}
}
}
如果我点击它,它就会按预期工作:
第一次单击时,将播放视频。
第二次单击时,将单击该链接。
但如果我单击并按住,则 或@click
都不会@mousedown
被触发。这都在:
我的三星 Android 设备上的 Chrome
在 iPhone 7 上的 Safari 浏览器上
在我的 Mac 上的 iOS 模拟器中。...我已经检查过,当我单击并按住(长按)时,没有出现 console.logs。
那么两个问题:
我明白为什么没有被触发,因为它是和@click
的组合。但为什么当我长按时没有触发?@mousedown
@mouseup
@mousedown
如何使用 Vue(或 JavaScript)在移动设备上定位长按?
慕雪6442864
慕田峪9158850
相关分类