首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多个导航选项的滑块会丢失索引,或者断开或掉错位置?

具有多个导航选项的滑块会丢失索引,或者断开或掉错位置?
EN

Stack Overflow用户
提问于 2016-01-22 14:20:13
回答 1查看 28关注 0票数 0

我已经建立了一个产品旅游,感谢一个成员的帮助,在这里,我能够包括一个“导航”到我现有的旅游。问题是有三种不同的导航方式。

  • 屏幕上的侧箭头
  • 箭头键(左右键)
  • 屏幕底部滑块时间线

我注意到,在滚动通过我的工作项目与各种导航选项,滑块将打破。您可以尝试用箭头键滑动,然后使用底部导航,只是一般使用打破滑块。

当我实现用户建议使用的滑块时,我的索引似乎不合适了:我还捕获了一个

未定义的参考错误:“e”未定义

但是由于我没有写代码,所以我不知道如何修正它。

代码语言:javascript
复制
$(document).ready(function() {

var current = 0,
    $panels = $('.tour-panel'),
    noOfPanels = $panels.size() - 1,
    $currentElement = $panels.eq(current),
    $nextElement = $currentElement,
    $links = $('.slideshow-timeline a');

    function anyElement( slidePosition ) {
    $nextElement = $panels.eq(next);
    if (slidePosition > current) {
        $currentElement.removeClass('active-tour');
        $currentElement.addClass('fadeOutLeft');
        setTimeout(function () {
            $nextElement.addClass('active-tour fadeInRight');
        }, 50);
        setTimeout(function () {
            $currentElement.removeClass('fadeOutLeft');
        }, 750);
    } else if (slidePosition < current) {
        $currentElement.removeClass('active-tour');
        $currentElement.addClass('fadeOutRight');
        setTimeout(function () {
            $nextElement.addClass('active-tour fadeInLeft');
        }, 50);
        setTimeout(function () {
            $currentElement.removeClass('fadeOutRight');
        }, 750);
    } else {
        // in this case the element selected and the one showing are the same
        // there are no class changes to be applied
    }
    current = slidePosition;
    $currentElement = $nextElement;
}

$('.previous').click(function () {
    if (current === 0) {
        previous = noOfPanels;
    } else {
        previous = current - 1;
    }
    anyElement( previous );
});
Mousetrap.bind('left', function () {
    if (current === 0) {
        previous = noOfPanels;
    } else {
        previous = current - 1;
    }
    anyElement( previous );
});

$('.next').click(function () {
    if (current === noOfPanels) {
        next = 0;
    } else {
        next = current + 1;
    }
    anyElement( next );
});
Mousetrap.bind('right', function () {
    if (current === noOfPanels) {
        next = 0;
    } else {
        next = current + 1;
    }
    anyElement( next );
});

    $links.on('click', function () {
    e.preventDefault();
    var next = $links.index(this);
    anyElement( next );
    });

});

在导航滑块时,它似乎很难在两者之间进行解密,我也使用这个HTML来构建较低的导航。它构建的思想是链接到一个#id,然后使用我的滑块引用id并将其拉到屏幕上。

代码语言:javascript
复制
<ul class="slideshow-timeline">
    <li class="active-target-main"><a href="#target" class="js-goto-panel">Target</a>
        <ul class="current-section">
            <li><a href="#target-1">Tracking</a></li>
            <li><a href="#target-2">Segmentation</a></li>
            <li><a href="#target-3">Wealth Screening</a></li>
            <li><a href="#target-4">Targeting</a></li>
            <li><a href="#target-5">Cultivation</a></li>
        </ul>
    </li>
    <li><a href="#connect">Connect</a></li>
    <li><a href="#convert">Convert</a></li>
    <li><a href="#optimize">Optimize</a></li>
</ul>

我的解决方案是如何修正索引的顺序,就好像它坏了一样,它完全破坏了用户体验。非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2016-01-22 14:41:32

脚本一执行就会中断。这可不妙。这里有问题的代码是这一行(围绕第164行):

代码语言:javascript
复制
$(".sticky").offset().top;

当它执行时,类sticky似乎没有元素。

还尝试更改以下代码(围绕第66行):

代码语言:javascript
复制
h.on("click", function() {
    e.preventDefault();
    var i = h.index(this);
    b(i)
})

代码语言:javascript
复制
h.on("click", function( e ) {
    e.preventDefault();
    var i = h.index(this);
    b(i)
})

脚本中似乎有几个问题,所以最好的方法是检查控制台和调试关键错误。

例如:您已经将参数添加到上述函数中。现在,您的脚本能够进一步执行,我们得到了一个以前没有看到的错误(因为脚本现在才能到达那里)。

新的错误是没有定义h。请详细说明你想要完成的任务。您还能创建一个JSFiddle吗?(如果你这样做了,编辑起来会更容易。)

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

https://stackoverflow.com/questions/34948882

复制
相关文章

相似问题

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