vue3中touchstart不起作用呢

发布于 2022-09-13 01:26:54 字数 644 浏览 42 评论 0

最近为了学习vue3,自定义了一套ui组件库,在开发slider的时候要用到touch事件,但是失效了。难道touch事件只能在移动端才能起作用吗?

<template>
    <div class="sino-slider" ref="sinoSlider" @click="onSliderClick">
        <div class="sino-slider__bar" :style="barStyle">
            <div class="sino-slider__button-wrapper sino-slider__button-wrapper--right">
                <div class="sino-slider__button" @touchstart.native.prevent="onTouchStart"
                    @touchmove.native.prevent="onTouchMove" @touchend.native.prevent="onTouchEnd"></div>
            </div>
        </div>
    </div>
</template>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

温折酒 2022-09-20 01:26:54

touch 要在支持触屏的设备,pc 用 drag
试试这段代码,pc没反应,开发者工具切到移动端能打出log

 var el = document.querySelector("body");
 el.ontouchstart = function(){console.log(111)};

你排查bug思路有需要改进的地方,这东东到底是你的代码写得有问题,还是框架(vue3)的问题,还是touch事件的问题……
要尽可能精准地定位到问题在哪里,知道问题在哪,就很好改了 不然就是一片混沌
怎么精准定位呢,就是把可能有影响的因素一个一个测试排除掉
先写很简单的测试代码 看touch事件在pc正不正常
正常的话,再写很简单的vue3代码看touch在vue3里正不正常
前两步的代码只要测api能不能用就行了,尽可能精简,打个log就行,不要把业务代码混进来
如果前面都正常,那就是你的业务代码有问题了

じее 2022-09-20 01:26:54

vue3 移除了 native 吧。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文