javascript - Javascript - :Slider On touch 未按预期工作
问题描述
我正在制作一个自定义滑块。
所有的东西都能找到。但到目前为止,我还想添加 ontouch、ontouchmove 功能。我几乎实现了,但仍然有问题,这就是为什么我无法完全实现它。
代码片段
function onDragAction (e) {
e = e || window.event;
if (e.type == 'touchmove') {
caouselPosX2 = caouselPosX1 - e.touches[0].clientX;
caouselPosX1 = e.touches[0].clientX;
} else {
caouselPosX2 = caouselPosX1 - e.clientX;
caouselPosX1 = e.clientX;
}
carouselInneritems.style.transform = 'translateX(' + (carouselInneritems.offsetLeft - caouselPosX2) + 'px)';
}
请尝试使用移动分辨率进行检查的演示。
解决方案
我玩过这个,据我所知有两个主要问题。
onDragAction()
需要调用e.stopPropagation()
- 在您发布的演示中,每次新幻灯片进入鼠标下方时都会调用它,但您只希望调用一次。这为我解决了很多问题。您需要有一些条件逻辑来表达您希望滑块进入的方向。目前它在每种情况下都是通过减法计算的,从我通过阅读您的代码汇总的内容来看,它总是会转到左边。
推荐阅读
- excel - data validation list based on checkbox value
- git - git remove old commits
- typescript - 使用 typescript 和 karma 进行 Babelify 项目
- angular - After updating from Angular 5 to 6 I keep getting the error: can't resolve timers in xml2js
- r - Shiny sever fails when running demo app
- javascript - 访问 Facebook 停用的应用程序开发帐户
- java - spring-boot 安全登录失败
- excel - Excel VBA - 将变量传递给被调用的子/函数:何时,什么以及如何
- android - org.gradle.api.GradleException:请修复版本冲突
- c - 指向符号的指令指针