vue移动端H5页面点击事件在部分安卓手机上失灵

之前开发了一个H5页面,模仿爱奇艺视频APP的我的频道,点击当前频道进行移除或者添加,开始使用的是@click事件,但是上线以后发现部分安卓手机比如荣耀系列的,点击屏幕上的按钮,事件触发不灵光,点好多次才触发一次。后来换成@touchend,完美解决这个问题,而且很丝滑。

@touchend和@click的区别在于它们触发的时间和方式不同。

@click是在用户用手指点击屏幕的时候触发的。在移动端设备上,由于移动设备的屏幕尺寸较小,点击屏幕上的元素会更加精准,因此@click事件被广泛使用。

@touchend则是在用户触摸屏幕结束时(即放开手指)触发的。与@click相比,@touchend的触发时间更晚一些。在一些场景下,为了提高用户体验,开发者会选择使用@touchend事件来代替@click事件,例如在移动端设备上进行滑动操作时,@touchend可以更好地处理滑动过程中的各种交互效果。

总之,@click和@touchend虽然都是用户与屏幕交互事件,但它们触发的时间和方式有所不同,开发者可以根据具体的需求来选择使用。
@touchend是在用户结束触摸屏幕(即放开手指)时触发的事件。在Vue中,你可以利用这个事件来实现一些功能,例如隐藏弹框。

例如,你可以在包含弹框的元素上添加@touchend事件监听器,当用户结束触摸时,该事件监听器会被触发,然后你可以在事件处理函数中隐藏弹框。

这里有一个简单的例子:

<template>
  <view @touchend="hidePopup">
    <!-- 其他内容 -->
    <viewclass="popup" v-show="isPopupVisible">
      <!-- 弹框内容 -->
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      isPopupVisible: true,
    };
  },
  methods: {
    hidePopup() {
      this.isPopupVisible = false;
    },
  },
};
</script>

在这个例子中,当用户在包含弹框的元素上结束触摸时,hidePopup方法会被调用,然后将isPopupVisible设置为false,使弹框隐藏。

当然有@touchend就有@touchstart,只不过它的触发时间刚好是触摸手机屏幕的时刻。

@touchstart事件是在用户与元素接触时触发的手指触摸屏幕事件。这个事件仅适用于带有触摸屏的设备。当用户将手指放在屏幕上时,就会触发@touchstart事件。这个事件可以用于实现一些触摸屏上的特殊效果,例如在用户触摸屏幕时进行定位或者缩放等操作。

在Vue中,你可以在需要监听触摸事件的元素上添加@touchstart事件监听器,然后在事件处理函数中编写相应的逻辑代码。例如:

<template>
  <div @touchstart="handleTouchStart">
    <!-- 触摸事件绑定的元素 -->
    <button>Touch me</button>
  </div>
</template>

<script>
export default {
  methods: {
    handleTouchStart(event) {
      // 处理触摸事件的逻辑
      console.log('Touch started!');
    }
  }
}
</script>

在这个例子中,当用户在按钮上触摸屏幕时,@touchstart事件会被触发,然后调用handleTouchStart方法来处理触摸事件的逻辑。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值