html - 定位到屏幕外的元素会影响滚动性能吗?
问题描述
我已经搜索了很长时间,遗憾的是无法找到我确切问题的答案。
各种网站上有很多主题,例如 stackoverflow(例如this question)和许多试图“修复”position:fixed
元素缓慢滚动性能的博客(例如benfrain.com)。但是,我还没有遇到有人讨论放置在屏幕外的元素的影响,这很可能也是position:fixed
.
让我们看下面的例子。
我最近开发了一个使用类似布局的网站,其中我将元素放置在屏幕外,以确保链接也可用于屏幕阅读器等(移动导航元素是特定的)。但是,鉴于许多网站描述了由于position:fixed
元素而导致的各种浏览器中滚动性能降低的情况,我很好奇:
问题:屏幕外的固定元素是否也以与屏幕上的元素相同的方式呈现 - 因此,它们是否会导致滚动性能降低?
编辑:尽可能重复标记允许我详细说明:我的问题只是考虑元素在滚动时仍然位于屏幕外的情况。这与屏幕外元素的实际动作/运动/动画无关,也与视口的其他重绘无关。
for (i = 0; i < 50; i++) {
$("body").append("<p>Pardon me being lazy, inserting 'content' jQuery-way.</p>");
};
$(".show-one").on("click", function() {
$(".one").toggleClass("show");
});
$(".show-two").on("click", function() {
$(".two").toggleClass("show");
});
.nav {
position: fixed;
top: 0;
width: 100%;
height: 50px;
background: lightblue;
}
button {
width: 50%;
float: left;
height: 100%;
}
.off-screen {
position: fixed;
width: 100%;
height: 30%;
box-shadow: 0 0 3px 1px rgba(0, 0, 0, 0.3);
transition: transform .77s ease;
}
.one {
top: 50px;
background: lightgreen;
transform: translate3d(100vw, 0, 0);
}
.two {
top: 50%;
background: pink;
transform: translate3d(0, 100vh, 0);
}
.show {
transform: translate3d(0, 0, 0);
}
body {
overflow-x: hidden;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="nav">
<button class="show-one">Toggle off-screen one</button>
<button class="show-two">Toggle off-screen two</button>
</div>
<div class="off-screen one"></div>
<div class="off-screen two"></div>
解决方案
推荐阅读
- c# - 下拉列表中的一对多关系
- c++ - 在 C++ 中将 int 转换为 double
- regex - 如何找到与 Capybara 的特定文本不匹配的元素?
- cakephp-3.0 - 如何使用friendsofcake/crud批量删除?
- python - 如何拆分特征和标签
- google-bigquery - 如果我向查询添加评论,BigQuery 是否仍会从缓存中提取?
- php - str_replace 用新行替换特定字符
- watson-studio - 打断 Watson Studio AI 实验
- angular - 无法使用 Ionic 和 Angular 材质滚动
- .net-core - Identity MySQL EF Pomelo Core 2.2 - 两个用户表与一个 UserId FK 关系不显示用户结果