【问题标题】:Anchor doesn't work anymore锚不再起作用
【发布时间】:2014-03-05 02:09:05
【问题描述】:

我是 Javascript 的初学者,我的网站有一些问题... 我正在使用 fullPage.js 脚本和另一个带有隐藏子菜单的垂直菜单脚本。 我的导航菜单脚本不适用于 fullPage.js。看起来不错,但我的锚不再工作了。

我可能在某个地方做错了,但我找不到在哪里。

$(document).ready(function () {
    $.fn.fullpage({
        verticalCentered: false,
        resize: true,
        scrollingSpeed: 750,
        easing: 'easeInQuad',
        navigation: false,
        navigationPosition: 'left',
        navigationTooltips: ['firstSlide', 'secondSlide'],
        slidesNavigation: true,
        slidesNavPosition: 'bottom',
        loopBottom: false,
        loopTop: true,
        loopHorizontal: false,
        autoScrolling: true,
        scrollOverflow: false,
        css3: false,
        paddingTop: '3em',
        paddingBottom: '10px',
        normalScrollElements: '#element1, .element2',
        keyboardScrolling: true,
        touchSensitivity: 5,
        continuousVertical: false,
        animateAnchor: true,
        //events
        onLeave: function (index, direction) {},
        afterLoad: function (anchorLink, index) {},
        afterRender: function () {},
        afterSlideLoad: function (anchorLink, index, slideAnchor, slideIndex) {},
        onSlideLeave: function (anchorLink, index, slideIndex, direction) {}
    });
});
$(function () {
    var menu_ul = $('.menu > li > ul'),
        menu_a = $('.menu > li > a');
    menu_ul.hide();
    menu_a.click(function (e) {
        e.preventDefault();
        if (!$(this).hasClass('active')) {
            menu_a.removeClass('active');
            menu_ul.filter(':visible').slideUp('slow');
            $(this).addClass('active').next().stop(true, true).slideDown('slow');
        } else {
            $(this).removeClass('active');
            $(this).next().stop(true, true).slideUp('slow');
        }
    });
});
<div class="section" id="section0">
    <!-- SECTION HOME PAGE -->
    <h1>earth. home. destroyed.</h1>
    <div id="content">
        <ul class="menu">
            <li class="item0"><a href="#section0">home page</a></li>
            <li class="item1"><a>releases</a>
                <ul>
                    <li class="subitem"><a>discography</a></li>
                    <li class="subitem"><a>videos</a></li>
                    <li class="subitem"><a>remixes</a></li>
                </ul>

            <li class="item2"><a href="#section1">subscribe</a></li>
            <li class="item3"><a>follow</a>
                <ul>
                    <li class="subitem"><a target="_blank" href="http://www.facebook.com/">facebook</a></li>
                    <li class="subitem"><a target="_blank" href="http://www.twitter.com/">twitter</a></li>
                </ul>
            </li>
            <li class="item4"><a href="#section2">contact</a></li>
        </ul>
    </div>
</div>

【问题讨论】:

  • 某处缺少&lt;/li&gt;
  • 这就是为什么保持代码缩进干净很重要。与原代码对比:stackoverflow.com/revisions/….
  • erf 对不起,我不知道复制/粘贴发生了什么:(

标签: javascript jquery html css fullpage.js


【解决方案1】:

因为您在锚点单击事件中使用了 event.preventDefault(),这将限制页面重定向。删除那个,

menu_a.click(function (e) {
    if (!$(this).hasClass('active')) {
        menu_a.removeClass('active');
        menu_ul.filter(':visible').slideUp('slow');
        $(this).addClass('active').next().stop(true, true).slideDown('slow');
    } else {
        $(this).removeClass('active');
        $(this).next().stop(true, true).slideUp('slow');
    }
});

【讨论】:

  • 感谢您的回答!它对我不起作用,但我可能忘记了一些东西。
【解决方案2】:

问题是您没有在 fullpage.js 插件中使用锚点。 您可能已经删除了该行。

你需要这样的东西:

$.fn.fullpage({
    anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage', 'lastPage'],
    menu: '#myMenu'
});

您不应该使用您发布的初始化。这只是一个示例,显示了带有所有可能选项的 on the documentation(除了您删除的 anchorsslidesColor)。

仅使用您需要的选项,并考虑每个选项的默认值,详细信息 at the documentation。 如果您根本不打算使用padding,那么使用paddingTop: '3em', 之类的东西是没有意义的。

【讨论】:

  • 非常感谢!!它现在完美运行!谢谢你的精彩剧本,我保证我会在网站上给你学分和一些美元。谢谢你,祝你有美好的一天! xx
猜你喜欢
  • 2021-11-17
  • 2016-02-26
  • 2016-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多