水平滚动页面链接不能从另一个页面工作

时间:2015-01-27 15:18:03

标签: javascript jquery

我的页面中有一个部分在一些Javascript的帮助下水平滚动。问题是,如果我从另一个页面引用它们,那么这些水平部分的链接就不起作用了。这里的工作示例(主导航中的“我们提供什么”子链接): http://fitnessacademysurrey.cloudlevel.me

如果我导航到博客页面然后使用“我们提供什么”子链接,他们什么都不做。

以下是链接的代码:

$(document).ready(function () {
var sildeNum = $('.page').length,
    wrapperWidth = 100 * sildeNum,
    slideWidth = 100/sildeNum;
$('.wrapper').width(wrapperWidth + '%'); 
$('.page').width(slideWidth + '%');

$('a.scrollitem').click(function(){
    $('a.scrollitem').removeClass('selected');
    $(this).addClass('selected');

    $('#nav-subnav ul li').removeClass('active');
    $('.panelHeading').addClass('hidden');
    $("a.scrollitem").each(function(index) {
    if($(this).hasClass("selected"))
        $("#nav-subnav ul li:nth-child("+(index+1)+")").addClass("active"),
        $(".panelHeading:nth-child("+(index+2)+")").removeClass("hidden");
    });

    $('#nextLink').removeClass('disabled');
    $('#previousLink').removeClass('disabled');
    if($('#nav-subnav ul li.active').is(':last-child'))
        $('#nextLink').addClass('disabled');

    if($('#nav-subnav ul li.active').is(':first-child'))
        $('#previousLink').addClass('disabled');

    var slideNumber = $($(this).attr('href')).index('.page'),
        margin = slideNumber * -100 + '%';

    $('.wrapper').animate({marginLeft: margin},500);
    return false;

  });
});
$( function() {
  var hash = window.location.hash;
  if (hash.length > 1) {
    $("[href='" + hash + "']").click();
  }
});

previousLink和nextLink用于其他导航,但我认为这不相关。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

问题是您使用JavaScript滚动页面,因此您需要添加读取哈希值的代码并找到正确的链接并单击它。

$( function() {
    var hash = window.location.hash;
    if (hash.length > 1) {
        $("[href='" + hash + "']").click();
    }
});