我的页面底部有一个栏(功能区)
它有4个<div>
标签以完全不透明度开始。它们都是可点击的链接。
还有4个位于同一位置,但有display:none
我需要前4个从opacity:1;
到opacity:0;
从左到右以步进方式进行,可能会有一个小的时差,比如1秒。
在第4场比赛消失之后,我想以类似的方式用新的4替换他们的位置。不透明度:从左到右分别为0到1约1秒。
他们将在屏幕上停留5秒,循环将重复。时间我可以调整,我只需要了解代码的主要细节。
因此,在每个<div>
的不透明度下降到0后,显示将变为无。当然,更改回阻止何时循环返回。
我认为我需要显示开/关的原因是因为它们占据相同的空间并且是可点击的链接。如果有更好的方式,我全都耳朵。
fadeloop('#ribbon_box_01_id', 500, 5000, true);
fadeloop('#ribbon_box_02_id', 500, 5500, true);
fadeloop('#ribbon_box_03_id', 500, 6000, true);
fadeloop('#ribbon_box_04_id', 500, 6500, true);
function fadeloop(el, timeout, timein, loop) {
var $el = $(el),
intId, fn = function() {
$el.fadeTo(timeout, 0).fadeTo(timein, 1);
};
fn();
if (loop) {
intId = setInterval(fn, timeout + timein + 3000);
return intId;
}
return false;
}
&#13;
.ribbon_flex_wrapper {
-webkit-box-flex: 0 0 10vh;
-moz-box-flex: 0 0 10vh;
width: 100%;
-webkit-flex: 0 0 10vh;
-ms-flex: 0 0 10vh;
flex: 0 0 10vh;
overflow: hidden;
float: left;
display: block;
}
.ribbon_services_body {
position: relative;
width: 100%;
height: 10vh;
background-color: transparent;
}
.ribbon_services_box {
position: relative;
display: inline-block;
width: 25%;
height: 100%;
cursor: pointer;
opacity: 1;
}
.ribbon_films_box {
position: relative;
display: none;
width: 25%;
height: 100%;
cursor: pointer;
opacity: 1;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="ribbon_flex_wrapper" id="ribbon_flex_wrapper_id">
<div class="ribbon_services_body">
<!-----------SERVICES---------------->
<div class="ribbon_services_box" id="ribbon_box_01_id" onClick="edit();">
<div class="ribbon_services_box" id="ribbon_box_02_id" onClick="vfx();">
<div class="ribbon_services_box" id="ribbon_box_03_id" onClick="audio();">
<div class="ribbon_services_box" id="ribbon_box_04_id" onClick="color();">
<!-----------OUR FILMS--------------->
<div class="ribbon_films_box" id="ribbon_box_05_id" onClick="xxx();">
<div class="ribbon_films_box" id="ribbon_box_06_id" onClick="xxx();">
<div class="ribbon_films_box" id="ribbon_box_07_id" onClick="xxx();">
<div class="ribbon_films_box" id="ribbon_box_01_id" onClick="xxx();">
</div>
</div>
&#13;
这有一个很好的淡入淡出,但我不知道如何添加显示更改和其他4个标签。再一次,这只是我发现的许多起点之一,如果你认为完全不同的东西更好,我会对此持开放态度。
功能区如下所示:
答案 0 :(得分:0)
要尝试实现您想要的效果,如果我理解得不错,我将使用简单的css3动画来实现“不透明”效果。
首先,我将使用z-index将最后4个divs
放在前4个下面,然后再次使用简单的动画来更改z-index,以便始终正确单击所有div(不透明度,隐藏div
仍将停留在上方)。我会使用z-index,因为display
属性不能在动画上使用。
然后,您只需要一个简单的jquery
脚本即可将动画类添加到divs
。
像这样:
$('button').click(function(){
$(".box4").addClass("fadein");
timeout = setTimeout(function() {
$(".box3").addClass("fadein");
timeout = setTimeout(function() {
$(".box2").addClass("fadein");
timeout = setTimeout(function() {
$(".box1").addClass("fadein");
$(".banner2").addClass("zindex");
timeout = setTimeout(function() {
$(".box5").addClass("fadeout");
timeout = setTimeout(function() {
$(".box6").addClass("fadeout");
timeout = setTimeout(function() {
$(".box7").addClass("fadeout");
timeout = setTimeout(function() {
$(".box8").addClass("fadeout");
}, 1000);
}, 1000);
}, 1000);
}, 1000);
}, 1000);
}, 1000);
}, 1000);
});
body, div {margin:0; padding:0}
img {display:block;}
.container {
position:relative;
height:50px;
margin-bottom:10px;
}
.box {
display:inline-block;
cursor:pointer;
margin-left:-5px;
}
.banner1, .banner2 {
position:absolute;
top:0;
left:0;
white-space:nowrap;
}
.banner1 {
z-index:5
}
.banner2 {
z-index:1;
}
.box1, .box2, .box3, .box4 {}
.box5, .box6, .box7, .box8 {opacity:0;}
.fadein {
animation-name: fadein;
animation-duration: 1s;
animation-fill-mode: forwards;
}
.fadeout {
animation-name: fadeout;
animation-duration: 1s;
animation-fill-mode: forwards;
}
.zindex {
animation-name: zindex ;
animation-duration: 0.1s;
animation-fill-mode: forwards;
}
@keyframes fadein {
0% { opacity:1; }
100% { opacity:0; }
}
@keyframes fadeout {
0% { opacity:0; }
100% { opacity:1; }
}
@keyframes zindex {
0% {z-index:1; }
100% {z-index:10; }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="container">
<div class="banner1">
<div class="box box1"><img src="https://t00.deviantart.net/OHnECGm-qAA6y-TCecwbQV9nQlY=/fit-in/150x150/filters:no_upscale():origin()/pre00/203f/th/pre/f/2018/036/c/6/mission_impossible_6_by_queenofnightwish-dc298a8.jpg" alt=""></div>
<div class="box box2"><img src="https://t05.deviantart.net/K9H6kV3KW6NCFUOu9J8bNr6DKGY=/fit-in/150x150/filters:no_upscale():origin()/pre00/b405/th/pre/f/2009/174/0/6/bruce_lee_signature_by_stfx_art.png" alt=""></div>
<div class="box box3"><img src="https://t00.deviantart.net/yQx2SZhR-zq-1zLFnerYPlMVL3U=/fit-in/150x150/filters:no_upscale():origin()/pre00/0519/th/pre/f/2009/123/f/6/gambit_by_modestroad.jpg" alt=""></div>
<div class="box box4"><img src="https://t00.deviantart.net/Ptw-vGWCgr6_q7b54nRrY3EZ7ic=/fit-in/150x150/filters:no_upscale():origin()/pre00/a85b/th/pre/i/2016/217/0/d/shah_rukh_khan_by_rizucreation-dacsd72.jpg" alt=""></div>
</div>
<div class="banner2">
<div class="box box5"><img src="https://image.redbull.com/rbcom/010/2012-05-19/1331574558762_1/0010/1/150/50/1/jenny-rissveds-podium.JPG" alt=""></div>
<div class="box box6"><img src="https://image.redbull.com/rbcom/052/2018-07-05/550b8e50-8419-4b31-90b4-8450ec7f83e8/0012/0/262/0/1329/3200/150/1/f1-2018-max-verstappen.jpg" alt=""></div>
<div class="box box7"><img src="https://image.redbull.com/rbcom/010/2014-05-26/1331654253313_9/0010/1/150/50/1/imagen-de-vi%C3%B1ales-y-salom-en-la-pretemporada.jpg" alt=""></div>
<div class="box box8"><img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTOPaBgzYMm41trhcBkJ0B1-QaQ46EzX6ZQ864lloFBBAYWiqo_tg" alt=""></div>
</div>
</div>
<button>start</button>
顺便说一句,我使用了按钮来触发效果。为嵌套超时看起来很丑陋而道歉,没有太多时间来整理它。