CSS 一张一张淡入画面
The CSS fade in picture one by one
我想一张一张展示3-4张图片。我试着先隐藏图片。当我滚动到某个地方时,它会一张一张地淡出图片。但是,问题是第二张图片一开始不会隐藏,而是延迟1s后淡入。 css 动画延迟有什么问题?
$(window).scroll(function(){
var body = $("body").scrollTop();
if (body >= 1000) {
$("#circle").removeClass("circle_hidden").addClass("circle_display");
$("#circle1").removeClass("circle_hidden").addClass("circle1_display");
var classname= $("#circle").attr("class");
console.log(classname);
}
});
.circle_hidden{
width:50%;
visibility: hidden;
}
.circle_display{
width:50%;
animation-name: fadeIn;
animation-duration: 3s;
visibility: visible;
}
.circle1_display{
width:50%;
animation-name: fadeIn;
animation-duration: 3s;
animation-delay: 0.5s;
visibility: visible;
}
@keyframes animation {
0%{transform: translateY(50%);background-color: red}
100%{tranform:translateY(70%);background-color: blue}
}
@keyframes fadeIn {
0%{opacity: 0}
100%{opacity:1}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div id="bg1" style=" height: 2000px; width: 800px;">
<p>Topic 1</p>
<img id="circle" class="circle_hidden" src="images/top7.jpg" >
<img id="circle1" class="circle_hidden" src="images/top8.jpg" >
我认为问题在于 #circle1
元素的不透明度在 500 毫秒的延迟期间设置为 100%。
将 opacity: 0%
添加到 circle1_display
class 似乎可以解决该问题,但该元素在动画完成后隐藏。
你可以做的是在JavaScript中添加延迟,例如:
CSS
.circle1_display{
width:50%;
animation-name: fadeIn;
animation-duration: 3s;
}
JavaScript:
setTimeout(function(){
$("#circle1").removeClass("circle_hidden").addClass("circle1_display");
}, 500);
我想一张一张展示3-4张图片。我试着先隐藏图片。当我滚动到某个地方时,它会一张一张地淡出图片。但是,问题是第二张图片一开始不会隐藏,而是延迟1s后淡入。 css 动画延迟有什么问题?
$(window).scroll(function(){
var body = $("body").scrollTop();
if (body >= 1000) {
$("#circle").removeClass("circle_hidden").addClass("circle_display");
$("#circle1").removeClass("circle_hidden").addClass("circle1_display");
var classname= $("#circle").attr("class");
console.log(classname);
}
});
.circle_hidden{
width:50%;
visibility: hidden;
}
.circle_display{
width:50%;
animation-name: fadeIn;
animation-duration: 3s;
visibility: visible;
}
.circle1_display{
width:50%;
animation-name: fadeIn;
animation-duration: 3s;
animation-delay: 0.5s;
visibility: visible;
}
@keyframes animation {
0%{transform: translateY(50%);background-color: red}
100%{tranform:translateY(70%);background-color: blue}
}
@keyframes fadeIn {
0%{opacity: 0}
100%{opacity:1}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div id="bg1" style=" height: 2000px; width: 800px;">
<p>Topic 1</p>
<img id="circle" class="circle_hidden" src="images/top7.jpg" >
<img id="circle1" class="circle_hidden" src="images/top8.jpg" >
我认为问题在于 #circle1
元素的不透明度在 500 毫秒的延迟期间设置为 100%。
将 opacity: 0%
添加到 circle1_display
class 似乎可以解决该问题,但该元素在动画完成后隐藏。
你可以做的是在JavaScript中添加延迟,例如:
CSS
.circle1_display{
width:50%;
animation-name: fadeIn;
animation-duration: 3s;
}
JavaScript:
setTimeout(function(){
$("#circle1").removeClass("circle_hidden").addClass("circle1_display");
}, 500);