css - 如何使用正文作为滚动容器在 FF 中使用 scroll-snap

标签 css firefox scroll-snap

我试图让一个垂直滚动的页面捕捉到每个段落(每个照片描述)。我还希望 body 成为我的滚动容器,而不是 body 中的一些 div

我有:

body.scroll-snap {
  scroll-snap-type: y proximity;
}

.scroll-snap .episode p {
  scroll-snap-align: start;
  scroll-margin: 8px;
}

这在 Chrome 和 Safari 中完美运行,但在 Firefox 中不起作用。 Firefox 检查器显示这些应用于标记的 CSS 属性,但滚动没有对齐。

如何在不创建额外的滚动容器的情况下使其在 FF 中工作?

最佳答案

显然,更好的方法是将 html 元素设置为捕捉容器而不是 body。在这种情况下,在 FF 和类似 Chrome 的浏览器中滚动快照。但它在当前的 Safari 中停止工作。您可以通过将 scroll-snap-type 设置为两者来修复它。

另请注意,当前的 Safari 不支持 scroll-margin,而是支持已弃用的 scroll-snap-margin(希望这将在未来的版本中修复) .

所以我目前的解决方案是:

html.scroll-snap {
  scroll-snap-type: y proximity;
}

html.scroll-snap body {
  scroll-snap-type: y proximity;
}

.scroll-snap .episode p {
  scroll-snap-align: start;
  scroll-margin: 8px;
  scroll-snap-margin: 8px; /* works in Safari */
}

关于css - 如何使用正文作为滚动容器在 FF 中使用 scroll-snap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57913914/

相关文章:

javascript - 浏览器渲染 Hook

javascript - Google map api3 不会在 Chrome 或 IE 中显示

javascript - 使用 jquery 在 div 中添加、调整大小、位置、颜色更改文本

javascript - 单击按钮时在 <td> 中显示计算的算术平均值

html - ie7 下推 float

javascript - JS Array.prototype.sort() 在 Firefox 中失败,在 Chrome 中有效

html - 使用鼠标的 CSS 滚动捕捉在 Safari 中不起作用,但在 Firefox 和 Chrome 中起作用

css - 如何设置可滚动DIV的默认位置?

javascript - CSS Scroll Snap 获取事件元素

html - css浏览器windows safari和mac safari问题