页面滚动后的最近元素带有过渡
Recenter element following page scroll with transition
我有一个聊天小部件,只是一个小方块 div,在页面加载时绝对位于浏览器的垂直中心 window。当用户向下滚动页面时,我希望小部件随页面滚动,即消失,但一旦滚动停止,聊天小部件就会转换回垂直中心。
我四处寻找,但似乎找不到任何东西。
最近的是这个。 Element transform transition between appearing 'relative' and 'fixed' not smooth
非常感谢任何帮助。我宁愿避免 jquery if poss 而只使用 vanilla JS。
干杯理查德
我觉得如果你想要流畅的话用animejs会更简单
let timeout;
window.addEventListener("scroll", (ev) => {
clearTimeout(timeout);
timeout = setTimeout(() => {
anime({
targets: ".chat",
top: window.scrollY + window.innerHeight / 2,
easing: "easeOutCubic",
duration: 500
});
}, 100);
});
.chat {
position: absolute;
top: 50%;
transform: translateY(-50%);
background: red;
}
.idk {
height: 400vh;
}
<script src="https://unpkg.com/animejs@3.2.1/lib/anime.min.js"></script>
<div class="chat">
hello
</div>
<div class="idk">
</div>
我有一个聊天小部件,只是一个小方块 div,在页面加载时绝对位于浏览器的垂直中心 window。当用户向下滚动页面时,我希望小部件随页面滚动,即消失,但一旦滚动停止,聊天小部件就会转换回垂直中心。
我四处寻找,但似乎找不到任何东西。
最近的是这个。 Element transform transition between appearing 'relative' and 'fixed' not smooth
非常感谢任何帮助。我宁愿避免 jquery if poss 而只使用 vanilla JS。
干杯理查德
我觉得如果你想要流畅的话用animejs会更简单
let timeout;
window.addEventListener("scroll", (ev) => {
clearTimeout(timeout);
timeout = setTimeout(() => {
anime({
targets: ".chat",
top: window.scrollY + window.innerHeight / 2,
easing: "easeOutCubic",
duration: 500
});
}, 100);
});
.chat {
position: absolute;
top: 50%;
transform: translateY(-50%);
background: red;
}
.idk {
height: 400vh;
}
<script src="https://unpkg.com/animejs@3.2.1/lib/anime.min.js"></script>
<div class="chat">
hello
</div>
<div class="idk">
</div>