我不相信在涉及剑道移动广告的类似帖子(例如这个:prevent touchstart when swiping)中已经充分涵盖了这一点。
我的问题是,当我触摸(有限长度)kendo移动listivew开始滑动或滚动手势时,我碰巧触摸的行立即呈现在其#34; :: active" state,在我的CSS中更改行的背景颜色。列表视图中的每一行都是一个锚,因此也需要支持触摸/点击交互。这很烦人,因为它让用户认为他们选择了listview项目,而实际上他们还没有。
Kendo mobile决定什么是触控/点击,什么是滑动。我不。我希望有一些方法可以防止触摸高亮,如果检测到滑动。我也愿意改变触摸在视觉上的表现方式,只要它仍然涉及改变背景颜色。也许是前面有短暂延迟的CSS颜色转换?有什么想法吗?
答案 0 :(得分:0)
实际上,涉及活动状态和手势的所有内容都是移动Web浏览器中的一个大问题。事件由浏览器触发,由Cordova稍微改进,然后由Kendo再次完善。
最大的问题是,当您的手指触摸屏幕时,它可能无法知道您将在一瞬间开始滑动。事实上,在开始手势之前,你可以将手指放在屏幕上并在那里保持10秒钟。通常一旦你开始一个手势,它就会取消发生的点击/点击事件,而是改为刷卡,这应该会清除活动状态。
我从几乎每个原生应用中都看到了相同的行为。按住按钮,它将变为“活动”状态。但如果你将手指滑离它,它会再次变为不活动状态。
你的行应该删除" active"一旦你开始滑动就表明状态。
根据经验,我会诚实地说,除非你想花一个星期来处理边缘案件和难看的事件处理代码,否则不要对现有的行为进行斗争。
使用CSS可以轻松摆脱背景颜色变化。对于iOS7,CSS将是:
.km-ios7 li.km-state-active .km-listview-link {
#background-color: transparent;
}
但是在点击活动中,您的用户将无法获得他们按下该项目的任何视觉反馈,这是一种更糟糕的用户体验。