如何使CSS缩放的元素不影响页面滚动条?

埃里克·格兰奇

我正在尝试为元素添加大型CSS变换动画,以使其显示/消失。变换的大小很大,因为在该变换过程中,元素可能变得比屏幕大,从而影响滚动条。

我希望它不影响滚动条,但同时仍允许页面具有滚动条(因此主体/溢出:隐藏不是一种选择)。

这将是一个通用效果,因此我无法控制将在其中运行效果的页面布局。

我能想到的最好的办法是有一个整页的div,其中隐藏了溢出,并在那里运行效果,但是这意味着将元素移出其正常的DOM,这将破坏所有CSS样式,具体取决于其父元素/类。

我尝试过的另一种方法是使用“位置:固定”从流中删除元素,它消除了滚动条问题,但这样做会影响页面上其他元素的布局(因为它们将被移动以填充新创建的“孔” ”)。

是否有另一种选择来指示元素可以在不影响其父元素的边界框的情况下溢出其父元素(从而不触发任何滚动条)?

埃里克·格兰奇

解决方案是在动画元素上使用“ position:fixed”,在父元素上使用非静态位置。

但是,尽管在Firefox中可以使用,但只能在Chromium浏览器(至少86种)上使用:您必须强制重排以确保考虑到“位置:固定”,否则滚动条仍将受到影响。

然后是伪代码

elem.style.position = 'fixed';
if ( (elem.parentNode.style.position || 'static') == 'static) {
    elem.parentNode.style.position = 'relative';
}

// Force a reflow, so that the position change is taken into account for the animation
window.getComputedStyle(container.firstChild).width;

elem.animate(... your animation here ...);

另外,由于使用“ position:fixed”将元素从流程中移出,这将影响其他元素的布局。为避免这种情况,必须插入相同大小的占位符元素。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何防止绝对定位的元素影响滚动条?

来自分类Dev

如何仅选择页面(css)中最大的滚动条?

来自分类Dev

不带CSS滚动条的滚动元素

来自分类Dev

不带CSS滚动条的滚动元素

来自分类Dev

滚动条和元素-HTML / CSS

来自分类Dev

如何删除页面上的滚动条?

来自分类Dev

如何使滚动条重叠页面内容

来自分类Dev

如何删除页面上的滚动条?

来自分类Dev

WPF缩放+滚动条?

来自分类Dev

使用页面滚动条仅滚动特定元素

来自分类Dev

使用页面滚动条仅滚动特定元素

来自分类Dev

指针事件不影响Firefox和Opera中的滚动条

来自分类Dev

是否可以将图像放置在不影响滚动条的窗口边缘上?

来自分类Dev

CSS flexbox 布局因滚动条而缩放错误

来自分类Dev

缩放后CSS元素不会变成页面的宽度

来自分类Dev

页面底部的滚动条

来自分类Dev

CSS固定元素显示在滚动条上

来自分类Dev

摆动滚动条可缩放图像

来自分类Dev

添加新的LI元素时如何使滚动条下降

来自分类Dev

如何从元素的底部到顶部更改滚动条位置?

来自分类Dev

如何在可能的右侧滚动条旁边浮动元素?

来自分类Dev

如何从元素的底部到顶部更改滚动条位置?

来自分类Dev

如何知道滚动条是否在元素的底部

来自分类Dev

使相对定位的元素不影响布局/高度

来自分类Dev

滚动DIV元素的特定滚动条

来自分类Dev

CSS:如何使滚动条显示在div的边界之外?

来自分类Dev

如何摆脱CSS中的水平滚动条

来自分类Dev

如何居中滚动条?

来自分类Dev

如何激活滚动条?