仅当滑块在浏览器窗口中可见时,Revolution Slider才会播放

时间:2014-08-17 13:43:44

标签: javascript jquery wordpress revolution-slider

我在页面上有两个滑块。 第一个在页面加载时始终可见(在顶部),第二个在页面底部。

我需要让第二个滑块在可见时(在滚动条上)开始播放。 我得到an answer from the developers

(function() {
    var win, slider, sliderHeight, sliderPaused, winHeight;

    // Change the "revapi1" part here to whatever "revapi" name that your slider uses
    slider = revapi1.on('revolution.slide.onloaded', function() {

        win = jQuery(window).on('scroll', checkScroll).on('resize', sizer);
        sizer();

    });

    function sizer() {
        sliderHeight = slider.height();
        winHeight = win.height();
        checkScroll();
    }

    function checkScroll() {
        var scrTop = win.scrollTop(),
        offset = slider.offset().top;

        if(offset <= scrTop + winHeight && offset + sliderHeight >= scrTop) {

            if(sliderPaused) slider.revresume();
            sliderPaused = false;
        } else {
            if(!sliderPaused) slider.revpause();
            sliderPaused = true;
        }
    }
})();

我尝试使用此代码(我已将revapi1更改为我的滑块ID),但它似乎无效。

是否有人有工作解决方案或者可以帮我修复目前的代码?

1 个答案:

答案 0 :(得分:1)

您必须检查滑块是否在视口中。

$(window).scroll(function() {
  var windowPosition = $(window).scrollTop();
  var slidePosition = $("#your-slide").offset().top;

  if (slidePosition < windowPosition) {
    // add code here to play slider
  }
}