【发布时间】:2017-03-10 11:53:22
【问题描述】:
我正在实现光滑的滑块,并使用 css 动画为图像添加了 Ken Burn 的效果。
在幻灯片更改之前,我在动画中出现了跳跃 - 图像似乎回到了原来的状态。真的,我在平稳过渡之后。关于如何解决的任何想法?
参见代码笔示例: https://codepen.io/katundu/pen/aJJqWv
JS
$('.slider').slick({
draggable: true,
autoplay: true,
autoplaySpeed: 7000,
arrows: false,
dots: true,
fade: true,
speed: 500,
infinite: true,
cssEase: 'ease-in-out',
touchThreshold: 100
})
幻灯片放映
<div class="slideshow">
<div class="slider">
<div class="item">
<img src="http://tesla.uk-cpi.com/login/resources/market-built-environment-3-w1920h1080.jpg" />
</div>
<div class="item">
<img src="http://tesla.uk-cpi.com/login/resources/pipes-w1920h1080.jpg" />
</div>
</div>
</div>
CSS 和动画
body,
html {
height: 100%;
background: #333;
font-family: 'Roboto', sans-serif;
}
.slideshow {
position: relative;
z-index: 1;
height: 100%;
max-width: 700px;
margin: 50px auto;
}
.slideshow * {
outline: none;
}
.slideshow .slider {
box-shadow: 0 20px 50px -25px black;
}
.slideshow .slider-track {
-webkit-transition: all 1s cubic-bezier(0.7, 0, 0.3, 1);
transition: all 1s cubic-bezier(0.7, 0, 0.3, 1);
}
.slideshow .item {
height: 100%;
position: relative;
z-index: 1;
}
.slideshow .item img {
width: 100%;
-webkit-transition: all 1s cubic-bezier(0.7, 0, 0.3, 1);
transition: all 1s cubic-bezier(0.7, 0, 0.3, 1);
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
.slideshow .item.slick-active img {
-webkit-transform: scale(1);
transform: scale(1);
-webkit-animation: cssAnimation 8s 1 ease-in-out;
animation: cssAnimation 8s 1 ease-in-out;
}
@keyframes cssAnimation {
from {
-webkit-transform: scale(1) translate(0px);
}
to {
-webkit-transform: scale(1.3) translate(0px);
}
}
@-webkit-keyframes cssAnimation {
from {
-webkit-transform: scale(1) translate(0px);
}
to {
-webkit-transform: scale(1.3) translate(0px);
}
}
【问题讨论】:
-
-webkit-transform: scale(1.2);transform: scale(1.2);应该是 1.3 作为动画关键帧的结尾
-
您能否详细说明原因?
-
动画从
scale(1)开始(覆盖默认的scale(1.2))在1.3结束 - 如果你想保持动画的最终状态,你必须添加动画FORWARDS -animation 8s 1 ease-in-out forwards; - 但 不会 帮助您,因为触发动画的类在过渡到下一张幻灯片时会被删除,因此它会再次跳回默认的 scale(1.2)。 - 有道理吗? -
谢谢,这真的很有帮助
-
由于某种原因,我仍然可以通过图像跳转
标签: javascript css animation