我是JS和前端的完全初学者。我正在一个网站上工作,我在这个div中有一个id为main-image
的图像。
当用户向下滚动图像时,我希望它慢慢向左移动,然后删除图像。
var x = 0;
var screenWidth = window.innerWidth;
window.onscroll = function() {
var box = document.getElementById("main-image");
setInterval(function() {
if (x <= screenWidth) {
x++;
box.style.left = x + "px";
} else {
box.style.display = "none";
}
}, 10);
}
.site-header {
background-image: url("https://images.pexels.com/photos/2159065/pexels-photo-2159065.jpeg?auto=compress&cs=tinysrgb&fit=crop&h=627&w=1200");
height: 100vh;
background-repeat: no-repeat;
background-size: cover;
justify-content: center;
position: relative;
}
#main-image {
position: marker;
left: 0;
transition: ease-out;
}
<div class="container-fluid site-header" id="main-image">
<div class="image-on-text-container bg-secondary">
<span class="site-brand"></span>
</div>
</div>
我为此写了这个脚本,但它运行得很糟糕。我想让它运行得慢一点,也许有一些效果,但我不知道怎么做。
3条答案
按热度按时间tktrz96b1#
相反,计算
y
增量,并在定时值(即:0.Ns
,并将x坐标转换为增量值乘以100,以获得百分比值。mbyulnm02#
通过元素的位置值(例如左)来动画元素有其缺点,并且不能像平移那样平滑地渲染,因为它不能纯粹由gpu计算。请参阅更详细的解释here。
下面是一个transform的例子:translatex()设置为全局CSS变量。
jhdbpxl93#
更改这两个块:
还有这个