我在父div中有一堆div,这个父div允许水平滚动。
我设置了一些jQuery,以便在单击这些子div时更新它们的外观。这对于加载时可见的前几个div(即无需滚动(效果很好。但是,在移动设备上,对于需要水平滚动才能看到的div,我可以说 jQuery 确实可以识别发生的点击,但外观更改是不可见的(例如,在下面的示例代码中,span 元素的文本似乎没有改变(。我发现如果我从父div 中删除"-webkit-overflow-scrolling:touch"属性,那么它就可以正常工作(尽管滚动体验当然没有那么好,所以理想情况下我想要两全其美(
下面的指示性代码。此问题在移动Chrome和Safari(在iOS上(上都发生。感谢您的帮助!
<style>
.hori-scroll {
white-space: nowrap;
overflow-x:auto;
/*-webkit-overflow-scrolling: touch;*/
-ms-overflow-style: -ms-autohiding-scrollbar;
}
</style>
<div class='hori-scroll'>
<div class='child'>
<span class='grandchild'></span>
</div>
</div>
<script>
$('.child').click(function(){
$(this).find('.grandchild').text('changed');
});
</script>
刚刚发现将此 CSS 应用于子元素可以消除此问题:
-webkit-transform: translate3d(0,0,0(