Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript iOS触控事件未在转换父级内的浮动元素上触发_Javascript_Html_Css_Ios - Fatal编程技术网

Javascript iOS触控事件未在转换父级内的浮动元素上触发

Javascript iOS触控事件未在转换父级内的浮动元素上触发,javascript,html,css,ios,Javascript,Html,Css,Ios,我在使用Siema构建的旋转木马时遇到了一些问题,在iOS设备(Chrome和Safari)上无法使用“拖动滚动”。当时我需要一个快速解决方案,并发现在上面添加一个非整数填充量的div解决了这个问题 我现在已经成功地制作了一个最小的示例,它甚至不需要我构建旋转木马: HTML JS 将其加载到iOS浏览器中,触摸事件不会触发,即使单击事件会触发 我最初发现的修复仍然有效。在HTML的第1行添加fixer,触摸事件确实会触发。我发现的另一个解决方案是向.touch测试元素添加一个clearfix

我在使用Siema构建的旋转木马时遇到了一些问题,在iOS设备(Chrome和Safari)上无法使用“拖动滚动”。当时我需要一个快速解决方案,并发现在上面添加一个非整数填充量的div解决了这个问题

我现在已经成功地制作了一个最小的示例,它甚至不需要我构建旋转木马:

HTML

JS

将其加载到iOS浏览器中,触摸事件不会触发,即使单击事件会触发

我最初发现的修复仍然有效。在HTML的第1行添加
fixer
,触摸事件确实会触发。我发现的另一个解决方案是向.touch测试元素添加一个clearfix

这是iOS错误还是我对触摸事件的工作原理有误解

我也能理解为什么clearfix可以工作,因为它给触摸目标提供了一些高度,但我很想知道为什么填充的东西可以修复它,为什么它必须是一个非整数

<div class="touch-test">
    <div class="wrapper">
        <div class="item">
          <a href="#">Click me</a>
        </div>
    </div>
</div>
.wrapper {
  transform: translate3d(0px, 0px, 0px);
}

.item {
  float: left;
}
const touchTest = document.querySelector('.touch-test');
touchTest.addEventListener('touchstart', () => alert('touched'));
touchTest.addEventListener('click', () => alert('clicked'));