2011-02-04 12 views
2

ページ上のすべてのリンクを1秒遅らせる方法を探していますので、フェードアウトアニメーションが発生することがあります。画像はフェードアウトしますが、遅延がなければアニメーションは見えません。私はこのイメージに4つの領域を持っています。 2人はページAに行き、2人はページbに行く。何かご意見は?遅延リンクすべてのページリンクをクリック

+4

ユーザーを苛立たせるのに最適です。 –

+1

これまでのところうまくいきました。クリックの遅延は0.5秒で済みます。それは芸術的な種類のサイトです。 – salem

+0

JavaScriptライブラリを使用していますか? (そして、私は*あなたが知っていることに興味を持っています*それは今までよく働いていましたが、なぜ私がサイトを離れて戻っていないのかを教えてもらえませんでした。あなたは本当に知らないのですか?あなたはそれをやる方法を尋ねているので...) –

答えて

5

あなたはjQueryを使ってそれを行うことができます。

$('a').click(function(e) { 
    var anchor = $(this), h; 
    h = anchor.attr('href'); 
    e.preventDefault(); 
    anchor.animate({'opacity' : 0}, 1000, function() { 
     window.location = h; 
    }); 
}); 
+9

彼は彼がjQueryを使っているとは言いませんでした。 JavaScriptの質問にjQueryの回答を与えないでください.jQuery!= JavaScript。 –

+8

jQueryを使用しているからといって、私はばかだとは思わないでください。 – Stephen

+2

@Stephen:私は、私はしなかったと言っていない。 (私はjQueryも使用しています)私は誰もがそうではないと言っています。OPが言っていない限り、JavaScriptの質問にjQuery固有の回答を与えることは大丈夫です。 Silverlightでそれを行う方法を教えてください。 –

7

あなたがキャプチャ(および停止)のリンクをクリックしてイベントと1000ミリ秒後にリンクのhrefます。attribにリダイレクトするようにタイムアウトを設定することができます。 jQueryのを使用して

$("#a_context a").click(function(e) { 
    e.preventDefault(); 
    var destination = $(this).attr('href'); 
    setTimeout(function() { window.location.href = destination; }, 1000); 
});

それが最良の方法ですが、私は考えることができるすべてであるかどうかわかりません。

+2

jQuery!= JavaScript。 –

+5

はい、私は知っていますが、私の答えはそれほど重要ではありません。彼がまっすぐなJSを使いたいのであれば、私のコードの意味を理解することは難しいことではありません。概念は重要です。 – simshaun

4
var aTags = document.getElementsByTagName('a'); 

for (var i = 0; i < aTags.length; i++) { 
    if (document.addEventListener) { 
     aTags[i].addEventListener('click', function(e) { 
      e.preventDefault(); 

      // fade out here then 
      // setTimeout(function(){ 
      // window.location.href = e.currentTarget.href; 
      // }, 1000); 
     }, false); 
    } else { 
     aTags[i].attachEvent('onclick', function(e) { 
      e.returnValue = false; 

      // fade out here then on complete 
      // setTimeout(function(){ 
      // window.location.href = e.srcElement.href; 
      // }, 1000); 
     }); 
    } 
} 
+1

elseの後に 'attachEvent'を意味すると思います – JCOC611

+1

あなたのために修正されました。 –

+0

おっと、ありがとう – mVChr