0

网站位于@beattrainsoundsystem.com/home

我正在使用 serialScroll 为许多包含跳舞角色的 div 设置动画,并使用 LocalScroll 为内容 div 设置动画。我的问题是,当您尝试加载带有哈希的 URL(例如 beattrainsoundsystem.com/home#store)时,字符 div 不会动画到正确的位置。我知道要实现这一点,我需要为“start:”设置创建一个条件函数,以根据 URL 中的哈希值更改“start:”值。作为 jQuery 的新手,我不确定如何编写代码。

我已经在使用 URI 解析器插件来返回 URL 中的哈希值,所以对于“ http://www.beattrainsoundsystem.com/home#store

var urlHash = $.url.attr('anchor');

将返回“商店”

所以我需要的是一个函数,它说:

if (urlHash == home) {
     var start = 0
} else if (urlHash == mixes) {
     var start = 1,
} else if (urlHash == contact) {
     var start = 2,
}

这显然没有正确编码,但是我需要使这个工作的脚本概念化。

谢谢你的帮助!

4

3 回答 3

0
jQuery(function( $ ){
var urlHash = $.url.attr('anchor');
if (urlHash=="mixes") {
    $("#sectionsContent").scrollTo( $("#mixes"), 0 );
    $("#sectionsMid").scrollTo( $("#mixmid"), 0 );
    $("#sectionsTop").scrollTo( $("#mixTop"), 0 );
    $("#sectionsBottom").scrollTo( $("#mixBottom"), 0 );
}

if (urlHash=="contact") {
    $("#sectionsContent").scrollTo( $("#contact"), 0 );
    $("#sectionsMid").scrollTo( $("#storemid"), 0 );
    $("#sectionsTop").scrollTo( $("#storeTop"), 0 );
    $("#sectionsBottom").scrollTo( $("#storeBottom"), 0 );
}

if (urlHash=="store") {
    $("#sectionsContent").scrollTo( $("#store"), 0 );
    $("#sectionsMid").scrollTo( $("#blogmid"), 0 );
    $("#sectionsTop").scrollTo( $("#blogTop"), 0 );
    $("#sectionsBottom").scrollTo( $("#blogBottom"), 0 );
}

});

于 2010-01-05T17:41:32.183 回答
0

您可能应该将其与 localScroll 集成。如果调用 $.localScroll.hash(),它会滚动到 hash 指向的元素,并通知 serialScroll 的变化。

于 2009-12-03T03:00:03.027 回答
0

它并没有直接出现在我正在处理顶部链接的点击事件的地方,这是我试图找到的,所以我可以举一个具体的例子。

看起来动画唯一不起作用的时候是当我直接转到 URL 中包含哈希的某个页面时。所以,我可能会做类似的事情:

  1. 在页面加载时,从 URL 中获取 #name
  2. 找到href =我抓取的名称的元素(您将它们命名相同,最好给它们<a href="#name">一个id,例如<a id="name" href="#name">
  3. 在该元素上执行 click() 事件以模拟正常的动画方法

如果您希望它加载到正确的位置而不显示动画,这并不理想。

你应该能够做这样的事情:

$(document).ready(function(){
      // This whole part is pseudocode since I didn't spend
      // the time to find exactly how you're doing things

      // get the hash portion from the URL
      // (just copying you here, haven't done this myself)
      var sourceLinkHref = $.url.attr('anchor');

      // Find the <a> tag whose href attribute matches the
      // name you just found, and .click() it
      $("a[href=#" + sourceLinkHref + "]")
          .click();
   });
于 2009-12-03T03:01:31.137 回答