首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果滑块从头开始,则Coda-Slider不应滑回所有元素

如果滑块从头开始,则Coda-Slider不应滑回所有元素
EN

Stack Overflow用户
提问于 2011-10-31 22:54:35
回答 2查看 1.4K关注 0票数 1

我使用的是示例2中的coda-slider,现在我不希望滑块回滚到第一个元素,如果它在最后一个元素上。我希望滑块只在正确的方向上移动(当然是从第一个元素开始)。

尾部滑块似乎使用了jQuery animate函数:

代码语言:javascript
复制
    function autoSlide() {
        if (navClicks == 0 || !settings.autoSlideStopWhenClicked) {
            if (currentPanel == panelCount) {
                var offset = 0;
                currentPanel = 1;
            } else {
                var offset = - (panelWidth*currentPanel);
                currentPanel += 1;
            };
            alterPanelHeight(currentPanel - 1);
            // Switch the current tab:
            slider.siblings('.coda-nav').find('a').removeClass('current').parents('ul').find('li:eq(' + (currentPanel - 1) + ') a').addClass('current');
            // Slide:
            $('.panel-container', slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);
            setTimeout(autoSlide,settings.autoSlideInterval);
        };
    };

animate函数中的参数是否有可能完成这项工作?

coda滑块本身只支持this parameters

EN

回答 2

Stack Overflow用户

发布于 2013-05-11 21:46:27

尾部滑块使用serialScroll。如果您不希望滑块在到达第一个元素末尾后返回到第一个元素,请打开jquery.serialScroll文件(jquery.serialScroll-1.2.1.js),转到第37行,并将循环从“true”更改为“false”。

代码语言:javascript
复制
cycle:false, //cycle endlessly ( constant velocity )
票数 2
EN

Stack Overflow用户

发布于 2012-04-05 07:56:26

我注意到这个有点老了,但我自己也遇到了这个问题,我想把我是如何做到这一点的,以防别人也需要这样做。

因此,我们需要做的第一件事是创建第一个面板的额外副本,并将其放在面板容器的末尾。这必须在我们调用容器上的codaSlider之前完成。你还需要硬编码面板的数量。所以..。

代码语言:javascript
复制
$(document).ready(function(){
    $('.panel-container .panel').eq(0).clone().appendTo('.panel-container');
    $("#main-photo-slider").codaSlider();
});

然后,将autoslide()函数更改为:

代码语言:javascript
复制
function autoSlide() {
    if (navClicks == 0 || !settings.autoSlideStopWhenClicked) {
        if (currentPanel == panelCount) {
            $('.panelContainer').css({'left':'0px'});
            var offset = 1;
            currentPanel = 2;
        } else {
            var offset = - (panelWidth*currentPanel);
            currentPanel += 1;
        };
        alterPanelHeight(currentPanel - 1);
        // Switch the current tab:
        slider.siblings('.coda-nav').find('a').removeClass('current').parents('ul').find('li:eq(' + (currentPanel - 1) + ') a').addClass('current');
        // Slide:
        $('.panel-container', slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);
        setTimeout(autoSlide,settings.autoSlideInterval);
    };
};

这应该可以工作,但它可能会产生一些不想要的结果,例如,如果你使用导航栏,它将创建一个额外的链接到最后一个图像,这将是相同的情况下,下一个/上一个按钮,当他们在最后/第一个图像…这对我来说不是问题,因为我使用了这里提到的自定义导航:http://css-tricks.com/creating-a-slick-auto-playing-featured-content-slider/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7955433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档