【问题标题】:Delaying Animation on Click Slide Change单击幻灯片更改时延迟动画
【发布时间】:2017-03-15 20:02:29
【问题描述】:

我有一个使用淡入淡出过渡的光滑滑块。每张活动幻灯片都有一个动画,可缩放幻灯片的背景图像。当幻灯片更改时,动画将从幻灯片中删除。

当手动点击新幻灯片时,比例会在过渡完成之前跳回默认大小,从而在图像上创建跳转。我的问题是如何延迟动画的删除,以免跳转回默认比例?

代码如下,您可以在此处查看示例:http://tesla.uk-cpi.com/

JS

// Slider on Home Page
$('.homeSlider').slick({
     draggable: true,
     autoplay: true,
     autoplaySpeed: 7000,
     arrows: false,
     dots: true,
     fade: true,
     speed: 500,
     infinite: true,
     cssEase: 'linear',
     touchThreshold: 100,
     customPaging : function(homeSlider, i) {
        var title = $(homeSlider.$slides[i]).data('title');
        var number = $(homeSlider.$slides[i]).data('index-number');

        return '<a class="pager__item" onClick=reset()><div class="slide-number">'+number+'</div><div class="slide-title">'+title+'</div></a>';
    },
});

$('.slick-active .item').addClass('kenburnseffect');

$('.homeSlider').on('afterChange', function(event, slick, currentSlide){
    $('.item').removeClass('kenburnseffect');
    $('.slick-active .item').addClass('kenburnseffect');
});

CSS

  .item {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }

@-webkit-keyframes kenburns {
  from {
    -webkit-transform: scale(1.1);
  }
  to {
    -webkit-transform: scale(1);
  }
}
@keyframes kenburns {
  from {
    transform: scale(1.1);
  }
  to {
    transform: scale(1);
  }
}

【问题讨论】:

    标签: javascript jquery css animation slick.js


    【解决方案1】:

    使用 setTimeout,

    $('.homeSlider').on('afterChange', function(event, slick, currentSlide){
        setTimeout(function(){
            $('.item').removeClass('kenburnseffect');
            $('.slick-active .item').addClass('kenburnseffect');
        },1000);
    });
    

    这里,时间延迟是 1000 毫秒

    【讨论】:

    • 我试过了,但是当点击时删除类时我仍然会跳转。理想情况下,一旦新幻灯片就位,就需要删除该类。
    猜你喜欢
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多