【发布时间】:2018-08-11 04:20:24
【问题描述】:
我正在尝试制作具有类似seen here 的过渡效果的图像幻灯片。不幸的是,我只有这个 gif 文件,而且我无法找到实时网络示例。幻灯片应一次显示 3 张图像,然后滑动到下 3 张,依此类推。我开始使用光滑的滑块为我完成大部分幻灯片工作(这不是必需的)。但是我很难重新创建一个看起来像示例中的效果的过渡。我尝试在图像之间设置填充动画,但这会导致图像改变大小并导致图像偏离中心。在这种情况下,使用 box-sizing: border-box 并没有帮助。任何有关如何创建此过渡的帮助将不胜感激。这是我的代码:
$(document).ready(function(){
$('.slider').slick({
infinite: true,
arrows: true,
slidesToShow: 3,
slidesToScroll: 3,
speed: 500
});
});
.wrapper{
position: relative;
box-sizing: border-box;
}
.slick-slide img{
width:100%;
box-sizing:border-box;
}
.slick-slide{
padding: 0;
box-sizing: border-box;
}
.slick-active{
animation: slidetransition;
animation-duration: 3s;
}
@keyframes slidetransition {
0% {
padding: 0px;
}
50% {
padding: 0px 25px;
}
100% {
padding:0;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js"></script>
<div class="wrapper">
<div class="slider">
<div class="group1">
<img src="http://placehold.it/350x150/292929/dd0909&text=Slide_1">
</div>
<div class="group1">
<img src="http://placehold.it/350x150/292929/dd6809&text=Slide_2">
</div>
<div class="group1">
<img src="http://placehold.it/350x150/292929/fdff3b&text=Slide_3">
</div>
<div class="group2">
<img src="http://placehold.it/350x150/292929/3bff3b&text=Slide_4">
</div>
<div class="group2">
<img src="http://placehold.it/350x150/292929/5d87ff&text=Slide_5">
</div>
<div class="group2">
<img src="http://placehold.it/350x150/292929/ab8df8&text=Slide_6">
</div>
</div>
</div>
【问题讨论】:
-
你试过
margin而不是padding吗? -
尝试使用
animation-delay样式在每个图像的动画开始时错开。要实现橡皮筋效果,请尝试使用animation-timing-function样式。 -
另外,看起来使用
transition样式而不是动画会更简单。
标签: css animation css-transitions slick.js