我正在寻找一种在用户滚动页面时为某些元素设置动画的方法(使用@keyframes, transform...)。例如:
divhas height: 100px。div是height: 50px和color: blue。可以使用纯 CSS 吗?如果不是,那么使用 HTML 或 Javascript 最有效的方法是什么?
根据滚动位置为元素的样式属性设置动画的最有效方法可能是添加一个具有滚动功能的类:
myID = document.getElementById("myID");
var myScrollFunc = function() {
var y = window.scrollY;
if (y > 500) {
// myID.style.backgroundColor = "blue"; // you can add individual styles
myID.className = "blue" // or add classes
} else {
// myID.style.backgroundColor = "red";
myID.className = "red"
}
};
window.addEventListener("scroll", myScrollFunc);Run Code Online (Sandbox Code Playgroud)
body {
height: 1100px;
}
#myID {
position: fixed;
height: 100px;
line-height: 20px;
transition: all 1s;
}
.blue {
background: blue;
animation: myAnimation 1s both;
}
.red {
background: red;
}
@keyframes myAnimation {
0% {
border-radius: 0px;
line-height: 10px;
}
100% {
border-radius: 100%;
line-height: 100px;
}
}Run Code Online (Sandbox Code Playgroud)
<div id="myID" class="red">Hello world</div>Run Code Online (Sandbox Code Playgroud)
文档:
| 归档时间: |
|
| 查看次数: |
3879 次 |
| 最近记录: |