专栏名称: 前端早读课
我们关注前端,产品体验设计,更关注前端同行的成长。 每天清晨五点早读,四万+同行相伴成长。
目录
相关文章推荐
前端早读课  ·  【早阅】改掉10个不好的TypeScript习惯 ·  3 天前  
前端早读课  ·  【第3395期】Chrome Canary ... ·  4 天前  
前端大全  ·  面了11个前端开发,发现了一个通病… ·  5 天前  
前端大全  ·  10分钟速成:轻松搭建前端monorepo架 ... ·  5 天前  
前端大全  ·  Mitosis:跨框架的UI组件解决方案 ·  1 周前  
51好读  ›  专栏  ›  前端早读课

【早阅】可能不知道的CSS交互属性

前端早读课  · 公众号  · 前端  · 2024-10-21 08:00

正文

作者:@Zachary Lee
原文:https://webdeveloper.beehiiv.com/p/css-interaction-properties-you-might-not-know-about

背景

在现代网页设计中,用户体验的流畅性和互动性越来越受到重视。CSS 提供了多种属性来增强网页的交互效果,特别是在滚动和触摸操作方面。本文介绍了几个关键的 CSS 属性,包括 scroll-snapoverscroll-behaviorscrollbar-gutteroverflow-anchortouch-actionscroll-timelineview-timeline 和 View Transition API,这些属性可以帮助开发者创建更加直观和动态的网页体验。

要点

本文的核心要点是介绍了一系列新的 CSS 属性和 API,这些工具可以显著提升网页的交互性和用户体验。通过这些属性,开发者可以更精细地控制滚动行为、触摸操作、动画效果以及页面过渡,从而为用户提供更加流畅和自然的浏览体验。

分析

Scroll Snap

这个属性允许网页内容在用户滚动时 “吸附” 到特定位置,特别适用于轮播图或需要对齐的页面部分。

通过 scroll-snap-type 和 scroll-snap-align 属性,开发者可以定义滚动容器的行为和子元素的对齐方式。

  • scroll-snap-type:此属性设置容器的滚动吸附行为。它接受 x、y 或 block 等值,以及 mandatory 或 proximity,用于确定吸附轴以及容器遵守吸附点的严格程度。

  • scroll-snap-align:应用于子元素,此属性定义它们在可滚动区域内的对齐方式。常见值包括 start、center 和 end,用于确定吸附时的对齐方式。

 .container {
scroll-snap-type: y mandatory;
}

.item {
scroll-snap-align: center;
}

在此范例中,容器沿垂直轴 (y) 将其项目吸附到中心。当使用者滚动时,内容会自动对齐到最近的吸附点。scroll-snap-type: y mandatory; 和 scroll-snap-align: center; 可以确保内容在垂直滚动时自动对齐到中心。

Overscroll Behavior

这个属性控制滚动元素在到达边界时的行为,可以防止默认的浏览器动作(如反弹效果或页面滚动)。

通过 overscroll-behavior 属性,开发者可以设置 autocontain 或 none,以控制滚动溢出的传播。

 .modal {
overflow-y: auto;
overscroll-behavior-y: contain;
}

在此范例中,当使用者到达模态窗口的滚动边界时,overscroll-behavior: contain 会阻止滚动影响模态窗口外的页面。这对于控制模态窗口或侧边栏中的滚动行为特别有用。

要防止 Android 上的 Chrome 在滚动超过顶部时刷新页面,请在 html 元素上设置以下内容:

 html {
margin: 0;
overscroll-behavior: none;
}

Scrollbar Gutter

这个属性允许开发者为滚动条预留空间,避免内容溢出时导致的布局变化。

通过 scrollbar-gutter 属性,可以设置 autostablealways 等值,确保滚动条出现时不会影响页面的视觉布局。

Overflow Anchor

这个属性控制滚动锚定行为,防止动态内容加载时导致的滚动跳跃。

通过 overflow-anchor 属性,开发者可以设置 auto 或 none,以控制浏览器是否调整滚动位置。例如,overflow-anchor: none; 可以防止聊天应用中新消息加载时改变用户的滚动位置。

Touch Action

这个属性控制触摸设备上的手势行为,决定浏览器是否处理默认手势(如缩放和滚动),或者将事件传递给 JavaScript 进行自定义处理。通过 touch-action 属性,开发者可以设置 autononepan-xpan-y 等值,以控制元素的触摸行为。例如,touch-action: pan-y; 可以确保垂直滚动元素时不会触发水平滚动。

Scroll Timeline 和 View Timeline

这两个新属性允许开发者根据用户的滚动行为创建动态动画。scroll-timeline 将动画与页面或元素的滚动关联,而 view-timeline 则根据元素在视口中的位置创建动画。这些属性可以替代 JavaScript 库,提供更好的性能。

View Transition API

这个 API 提供了一种创建平滑视图过渡动画的方法,适用于单页应用(SPA)和多页应用(MPA)。通过 document.startViewTransition(callback),开发者可以在 DOM 状态变化时捕捉当前屏幕截图,并在更新后平滑过渡到新状态。

【第3175期】用 View Transition API 在 Web 做出 Native 般丝滑的动画

影响

这些新的 CSS 属性和 API 对网页设计和开发产生了深远的影响。它们不仅提升了用户体验,还简化了开发流程,减少了对外部库的依赖。特别是 scroll-snap 和 overscroll-behavior 等属性,使得滚动体验更加流畅和直观;而 scroll-timeline 和 view-timeline 则开启了基于用户交互的动态动画的新时代。

结论

随着这些新的 CSS 属性和 API 的普及,网页设计和开发将迎来更多的创新和可能性。开发者可以利用这些工具创建更加动态和互动的网页,提升用户体验。未来,随着浏览器支持的增强和开发者社区的探索,这些技术将在更多的项目中得到应用,推动网页设计的发展。

AI 阅:了解技术资讯的一种方式。