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