Javascript 使用库的CSS动画
很抱歉,这里也有类似的问题。我已经尽了最大的努力去寻找,所以任何帮助都将不胜感激 我正在使用来自的一个新的动画库为练习站点上的某些元素设置动画。 我对在页面加载时设置元素动画没有问题,但我不知道如何让它们在可见时触发,就像现在很多网站上常见的那样 以此为例,Javascript 使用库的CSS动画,javascript,jquery,html,css,css-animations,Javascript,Jquery,Html,Css,Css Animations,很抱歉,这里也有类似的问题。我已经尽了最大的努力去寻找,所以任何帮助都将不胜感激 我正在使用来自的一个新的动画库为练习站点上的某些元素设置动画。 我对在页面加载时设置元素动画没有问题,但我不知道如何让它们在可见时触发,就像现在很多网站上常见的那样 以此为例, 。在顶部反弹{ -webkit动画:在前1.1秒中反弹; 动画:在前1.1秒反弹两个; } @-webkit关键帧在顶部反弹{ 0% { -webkit转换:translateY(-500px); 转换:translateY(-500px
。在顶部反弹{
-webkit动画:在前1.1秒中反弹;
动画:在前1.1秒反弹两个;
}
@-webkit关键帧在顶部反弹{
0% {
-webkit转换:translateY(-500px);
转换:translateY(-500px);
-webkit动画计时功能:轻松;
动画计时功能:轻松自如;
不透明度:0;
}
38% {
-webkit转换:translateY(0);
变换:translateY(0);
-webkit动画计时功能:轻松输出;
动画计时功能:放松;
不透明度:1;
}
55% {
-webkit转换:translateY(-65px);
转换:translateY(-65px);
-webkit动画计时功能:轻松;
动画计时功能:轻松自如;
}
72% {
-webkit转换:translateY(0);
变换:translateY(0);
-webkit动画计时功能:轻松输出;
动画计时功能:放松;
}
81% {
-webkit转换:translateY(-28px);
transform:translateY(-28px);
-webkit动画计时功能:轻松;
动画计时功能:轻松自如;
}
90% {
-webkit转换:translateY(0);
变换:translateY(0);
-webkit动画计时功能:轻松输出;
动画计时功能:放松;
}
95% {
-webkit转换:translateY(-8px);
转换:translateY(-8px);
-webkit动画计时功能:轻松;
动画计时功能:轻松自如;
}
100% {
-webkit转换:translateY(0);
变换:translateY(0);
-webkit动画计时功能:轻松输出;
动画计时功能:放松;
}
}
@关键帧在顶部反弹{
0% {
-webkit转换:translateY(-500px);
转换:translateY(-500px);
-webkit动画计时功能:轻松;
动画计时功能:轻松自如;
不透明度:0;
}
38% {
-webkit转换:translateY(0);
变换:translateY(0);
-webkit动画计时功能:轻松输出;
动画计时功能:放松;
不透明度:1;
}
55% {
-webkit转换:translateY(-65px);
转换:translateY(-65px);
-webkit动画计时功能:轻松;
动画计时功能:轻松自如;
}
72% {
-webkit转换:translateY(0);
变换:translateY(0);
-webkit动画计时功能:轻松输出;
动画计时功能:放松;
}
81% {
-webkit转换:translateY(-28px);
transform:translateY(-28px);
-webkit动画计时功能:轻松;
动画计时功能:轻松自如;
}
90% {
-webkit转换:translateY(0);
变换:translateY(0);
-webkit动画计时功能:轻松输出;
动画计时功能:放松;
}
95% {
-webkit转换:translateY(-8px);
转换:translateY(-8px);
-webkit动画计时功能:轻松;
动画计时功能:轻松自如;
}
100% {
-webkit转换:translateY(0);
变换:translateY(0);
-webkit动画计时功能:轻松输出;
动画计时功能:放松;
}
}
.扳机{
/*计划是将其添加到所有元素中,然后每次类在视口中时触发动画*/
}
页面标题,加载时设置动画
向下,当可见时应设置动画
我认为您应该做的是跟踪页面的滚动状态,如果滚动位置高于某个值,则启动动画,然后使用Javascript更改CSS的动画值。
一个简单的例子如下:
<html lang="en">
<head>
<style>
#header2 {
width: 100px;
height: 100px;
background: red;
position: relative;
-webkit-animation: none 1s infinite; /* Safari 4.0 - 8.0 */
animation: none 1s infinite;
}
/* Chrome, Safari, Opera */
@-webkit-keyframes mymove {
from {left: 0px;}
to {left: 200px;}
}
@keyframes mymove {
from {left: 0px;}
to {left: 200px;}
}
</style>
</head>
<body>
<h1 id="header1" style="height: 1200px;">This is first paragraph</h1>
<br>
<h1 id="header2">This is second paragraph</h1>
<script>
let myHeader2 = document.getElementById("header2");
window.setInterval(checkScrollingPosition, 200);
function checkScrollingPosition(){
console.log(window.scrollY)
if (window.scrollY > 200){
//starting animation if scrollPosition > 200
console.log("starting animation...")
startAnimation()
return;
}
}
function startAnimation(){
myHeader2.style.animation = "mymove 5s 1"
myHeader2.style.WebkitAnimation = "mymove 5s 1"
}
</script>
</body>
</html>
#校长2{
宽度:100px;
高度:100px;
背景:红色;
位置:相对位置;
-webkit动画:none 1s infinite;/*Safari 4.0-8.0*/
动画:无1无限;
}
/*铬、狩猎、歌剧*/
@-webkit关键帧mymove{
从{左:0px;}
到{左:200px;}
}
@关键帧mymove{
从{左:0px;}
到{左:200px;}
}
这是第一段
这是第二段
让myHeader2=document.getElementById(“header2”);
设置间隔(检查滚动位置,200);
函数checkScrollingPosition(){
console.log(window.scrollY)
如果(window.scrollY>200){
//如果scrollPosition>200,则启动动画
log(“正在启动动画…”)
startAnimation()
返回;
}
}
函数startAnimation(){
myHeader2.style.animation=“mymove 5s 1”
myHeader2.style.WebkitAnimation=“mymove 5s 1”
}
根据您想要做的事情,可能是您可以将阈值替换为页面高度的某个百分比。为此,只需研究获取页面滚动状态的不同方法。使用。它可以检查元素是否在用户的视野内,并在出现这种情况时调用函数
在InterSectionObserver
中,调用一个函数,该函数将在视图中输入或输出的所有元素上循环。在该函数中,您可以检查ea