0

嗨,我正在关注本教程

为了构建一个 jquery 滑块,我需要的是在显示六张幻灯片后重定向到另一个网页,目前它正在重复幻灯片。

一些代码

$('ul').jwSlider({
    speed : 2500,
    pause : 3000
});

谢谢

4

2 回答 2

0

目前它会删除第一个元素并将其添加到ul. 所以没有六个。

您需要添加另一个选项并在和的函数中slideShown调用它slidefadejwSlider

...
    var defaults = {
            speed : 1000,
            pause : 2000,
            transition : 'fade',
            slideShown: $.noop
        },
...
        function slide() {
            setInterval(function() {
                // Animate to the left the width of the image/div
                $this.animate({'left' : '-' + $this.parent().width()}, options.speed, function() {
                    // Return the "left" CSS back to 0, and append the first child to the very end of the list.
                    $this
                       .css('left', 0)
                       .children(':first')
                       .appendTo($this); // move it to the end of the line.
                    options.slideShown(); // <------ added call
                })
            }, options.pause);
        } // end slide

        function fade() {
            setInterval(function() {
                $this.children(':first').animate({'opacity' : 0}, options.speed, function() {   
                    $this
                       .children(':first')
                       .css('opacity', 1) // Return opacity back to 1 for next time.
                       .css('zIndex', $this.children(':last').css('zIndex') - 1) // Reduces zIndex by 1 so that it's no longer on top.                  
                       .appendTo($this); // move it to the end of the line.
                    options.slideShown(); // <------ added call
                })
            }, options.pause);
        } // end fade   

然后打电话

var slidesShown = 0;
$('ul').jwSlider({
    speed : 2500,
    pause : 3000,
    slideShown: function(){
        slidesShown++;
        if (slidesShown == 6)
            window.location = "http://go.to/somewhere";
    }
});
于 2012-08-16T10:47:27.660 回答
0

jwSlider 似乎没有为此目的包含任何回调。您需要为这个特殊用例扩展插件。

但是,您可以使用一个简单的解决方法来计算重定向发生之前的秒数:

var timeUntilRedirect = numberOfSlides * (speedInMilliseconds + pauseInMilliseconds)

setTimeout(function() {

  // redirect, e.g.:
  window.top.location.href="http://yourdomain.com"

}, timeUntilRedirect);
于 2012-08-16T10:46:30.123 回答