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

おそらくこれをlocalScrollと統合する必要があります。$ .localScroll.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 に答える
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 に答える