2017-02-16 17 views
0

私はナビゲーション(class = "menu-js-nav")を持っていて、各項目(a)は別のウェブサイトへのリンクです。マウスのクリックで 'a'要素をアニメートしたいときに、アニメーションが終了したら、ブラウザはクリックされた 'a'要素のWebサイトを開く必要があります。リダイレクトの前にマウスのクリックで 'a'要素をアニメーション化するにはどうすればよいですか?

私はデフォルトを防止しようとしましたが、アニメーションを作成しました。今私は防止されたデフォルトのアクションを実行する必要があります。私はいくつかの方法を試しましたが、アニメーションなしでリンクに常にリダイレクトされました。マウスをクリックした後に、最初に 'a'アイテムのアニメーションを作成したいのですが、その後、目的のWebサイトにリダイレクトしたいと思うコードを書くべきですか?

$('.menu-js-nav a').on('click', function(e) { 
    e.preventDefault(); 

    $(this).addClass('spinner').css({ 
     position: 'relative' 
    }).animate({ 
     left: 150 
    }, 1000).animate({ 
     top: -1000 
    }, 1000); 
}); 
+1

'animate'はアニメーションが完了するたびに呼び出されるコールバック受け入れるの完全な部分の機能を開いてリンクを作る - パラメータを参照し' complete'のhttp://api.jquery .com/animate/ – ewcz

答えて

2

as jquery documentationアニメーションは完全なセクションで関数呼び出しをサポートします。

だからアニメイト

$('.menu-js-nav a').on('click', function(e) { 
    e.preventDefault(); 
    link_to = $(this).attr('href'); 
    $(this).addClass('spinner').css({ 
     position: 'relative' 
    }).animate({ 
     left: 150 
    }, 1000).animate({ 
     top: -1000 
    }, 1000, function(){ 
      //open your link here 
      window.location.href = link_to; 
     }); 
}); 
+0

こんにちは、 'ここにあなたのリンクを開いてください。'それぞれの 'a'には異なるhrefがあります。例えば、index.html、contact.html、about.html ...などです。クリックしたものを開く必要があります。私はここで1つだけ書くことはできませんが、私はどちらがユーザーによって選択されるか分かりません。 – Jayna

+1

私はあなたが求めているものを含める答えを編集しました。あなたのhtmlを見たことがないので、各リンクがhref属性にあると仮定しています。 –

+0

ありがとうございます!それは完璧に動作します! :-) – Jayna

関連する問題