改善网络应用程序的用户体验一直是我的一个优先事项。 我总是回到我20年来的想法:"用户期望一个网络应用程序能够工作--让我们使这个程序使用起来很愉快。"多年来,我们采用JavaScript来改善用户体验,但随着时间的推移,这些策略要么变得笨拙,要么被植入网络语言本身。 其中一个功能就是平滑滚动;这是一个很好的用户体验改进,但如果不完善的话就会很烦人。 你知道你可以只用CSS来实现平滑滚动吗?
scroll-behavior 这个CSS属性可以控制具有滚动行为的溢出元素的滚动策略,而且只在由导航或CSSOM属性触发的情况下。 默认的scroll-behavior 值是auto ,这表示没有视觉效果--立即滚动到目标元素,没有动画。 为了给用户提供流畅的滚动体验,你可以使用smooth 值:
/* slide between items */
.slideshow ul {
scroll-behavior: smooth;
}
当然,当你使用本地浏览器API时,你确实失去了一些视觉控制--最明显的是动画速度和动画曲线。 从积极的方面看,你不需要添加数千字节的JavaScript,你需要维护这些JavaScript来实现非常相似的效果!