簡體   English   中英

如何在Swiper中添加自定義幻燈片過渡效果?

[英]How to add custom slide transition effect to Swiper?

有什么好的方法可以實現添加自定義幻燈片過渡效果的Swiper插件嗎? 官方API沒有此類信息,在官方論壇上也沒有回答我的問題。 我發現了一些過時的插件,但是自從編寫這些插件以來,Swiper似乎發生了很大的變化。

我想修改Coverflow效果以實現各種行為,例如非線性幻燈片移動以及上一張和下一張幻燈片的不同移動。

在inb4中,我知道我可以簡單地重寫Swiper代碼或編寫自己的滑塊,但是我希望能夠保留此滑塊的所有功能,並能夠在新版本發布后輕松對其進行更新。

也可以接受有關其他js / jQuery滑塊的答案,這些滑塊允許輕松自定義,支持觸摸設備和硬件加速的轉換。 我已經嘗試過bxSlider,發現它的可定制性比Swiper小。

自定義滑動效果過渡,支持Swiper支持的觸摸...

    var interleaveOffset = -.5;

var interleaveEffect = {

  onProgress: function(swiper, progress){
    for (var i = 0; i < swiper.slides.length; i++){
      var slide = swiper.slides[i];
      var translate, innerTranslate;
      progress = slide.progress;

      if (progress > 0) {
        translate = progress * swiper.width;
        innerTranslate = translate * interleaveOffset;        
      }
      else {        
        innerTranslate = Math.abs( progress * swiper.width ) * interleaveOffset;
        translate = 0;
      }

      $(slide).css({
        transform: 'translate3d(' + translate + 'px,0,0)'
      });

      $(slide).find('.slide-inner').css({
        transform: 'translate3d(' + innerTranslate + 'px,0,0)'
      });
    }
  },

  onTouchStart: function(swiper){
    for (var i = 0; i < swiper.slides.length; i++){
      $(swiper.slides[i]).css({ transition: '' });
    }
  },

  onSetTransition: function(swiper, speed) {
    for (var i = 0; i < swiper.slides.length; i++){
      $(swiper.slides[i])
        .find('.slide-inner')
        .andSelf()
        .css({ transition: speed + 'ms' });
    }
  }
};

var swiperOptions = {
  loop: true,
  speed: 1000,
  grabCursor: true,
  watchSlidesProgress: true,
  mousewheelControl: true
};

swiperOptions = $.extend(swiperOptions, interleaveEffect);

var swiper = new Swiper('.swiper-container', swiperOptions);

演示和來源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM