css touch-action

429 阅读1分钟

在CSS中,touch-action属性用于定义在特定元素上允许的浏览器默认的触摸操作。这个属性可以控制元素在被触摸时,浏览器是否执行默认的滚动、缩放或其他手势操作。

基本用法:

.element {
  touch-action: pan-y; /* 允许垂直滚动,禁止水平滚动 */
}

属性值:

  • auto:允许所有的浏览器默认手势(如滚动和缩放)。
  • none:禁止所有浏览器默认手势,所有的触摸事件将被传递给JavaScript处理。
  • pan-x:允许水平平移手势。
  • pan-y:允许垂直平移手势。
  • pinch-zoom:允许缩放手势。
  • 组合值,如 pan-x pinch-zoom:允许水平滚动和缩放。

示例:

.scrollable {
  touch-action: auto; /* 默认行为,允许滚动和缩放 */
}

.no-scroll {
  touch-action: none; /* 禁止滚动和缩放,所有触摸事件将传递给JavaScript */
}

.vertical-scroll {
  touch-action: pan-y; /* 只允许垂直滚动 */
}

.horizontal-scroll {
  touch-action: pan-x; /* 只允许水平滚动 */
}

.zoomable {
  touch-action: pinch-zoom; /* 允许缩放手势 */
}

注意事项:

  • touch-action属性在需要精细控制触摸事件的场景下非常有用,特别是对于自定义手势或交互。
  • 在某些情况下,使用touch-action: none;可能会导致页面上的文本无法通过触摸选择,因为默认的触摸操作被禁止了。
  • 这个属性在现代浏览器中得到了支持,但在一些旧版本浏览器中可能不受支持。

touch-action属性是优化移动端和触摸设备用户体验的一个有力工具,它允许开发者控制元素对触摸输入的响应方式。