0
最近Swiper.jsを取り上げました。私はスライドショーをすることにしました。これらは素晴らしいです。今度は、すべてのスライド内の要素を別々にアニメーション化したいと思ったので、Swiper.jsによって提供されたコールバックを使用するのが最良の方法だと思いました。スワイパーコールバックとJqueryを使用してスライドショー内の要素をアニメ化する
非常に最初のスライドはうまく動作しますが、次のスライダに移動する(または最初のスライダに戻る)と、アニメーションが不安定になるようです。イメージがアニメーション状態で最初に表示され、その後再びアニメーション表示されているかのようです。
私はこの問題を示すために、コードスニペットを作っ:
html, body {
position: relative;
height: 100%;
}
body {
background: url(../../img/BannerEmpty.png);
background-repeat: no-repeat;
background-size: cover;
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
color:#000;
margin: 0;
padding: 0;
text-align:center;
}
p {
font-family: 'Architects Daughter', cursive;
font-size: 40px;
justify-content: flex-start;
color: #3C3C3B;
}
.swiper-container {
width: 100%;
height: 100%;
}
.swiper-slide {
text-align: center;
font-size: 18px;
margin:auto;
/* Center slide text vertically */
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
}
#swipeLeft {
margin: 0 20px 0 0
}
#swipeRight {
margin: 0 0 0 20px
}
<link href="http://brickhunters.ddns.net/swiperslider/dist/css/swiper.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head>
<meta charset="utf-8">
<title>Test animations in Swiper</title>
<link href="https://fonts.googleapis.com/css?family=Architects+Daughter|Archivo+Black" rel="stylesheet">
</head>
<body>
<!-- Swiper -->
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide">
<p id="swipeLeft">Slide from left!</p>
<p id="swipeRight">Slide from right!</p>
</div>
<div class="swiper-slide">
<p id="swipeLeft">Why wont you work!</p>
<p id="swipeRight">Argh #$!?%#@&=</p>
</div>
<div class="swiper-slide">
<img width="250px"id="swipeLeft" src="http://www.memes.at/faces/tears_in_the_eyes.jpg"></img>
<img width="250px" id="swipeRight" src="http://www.memes.at/faces/tears_in_the_eyes.jpg"></img>
</div>
</div>
<!-- Add Pagination -->
<div class="swiper-pagination"></div>
<!-- Add Arrows -->
</div>
<!-- Swiper JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="http://brickhunters.ddns.net/swiperslider/dist/js/swiper.min.js"></script>
<!-- Initialize Swiper -->
<script>
var swiper = new Swiper('.swiper-container', {
pagination: '.swiper-pagination',
paginationClickable: true,
spaceBetween: 30,
centeredSlides: true,
autoplay: 3000,
autoplayDisableOnInteraction: false,
loop: true,
onSlideChangeStart: function (s) {
var currentSlide = $(s.slides[s.activeIndex]);
currentSlide.find('#swipeLeft').removeClass('animated slideInLeft');
currentSlide.find('#swipeRight').removeClass('animated slideInRight');
},
onSlideChangeEnd: function (s) {
var currentSlide = $(s.slides[s.activeIndex]);
currentSlide.find('#swipeLeft').addClass('animated slideInLeft');
currentSlide.find('#swipeRight').addClass('animated slideInRight');
}
});
</script>
</body>
</html>
もペン:http://codepen.io/RexDesign/pen/NRgJWy
何1は、滑らかなアニメーションを実現するために行うために必要ありませんこの場合?
事前に感謝します。