は私が達成したいものです。ページを離れる前にクリックしたリンクをアニメーション化するにはどうすればよいですか?ここで
- をHTMLリンクをクリックすると、私はリンクが新しいウィンドウ/タブで開かれている場合、アニメーションはいけない
- ページを離れる前に、それをアニメーション化します開催場所
どのように私はこれを達成しますか?
は私が達成したいものです。ページを離れる前にクリックしたリンクをアニメーション化するにはどうすればよいですか?ここで
どのように私はこれを達成しますか?
あなたはjavascript
$(function(){
$(".btn").bind("click",function(){
$(this).animate({'left': '100px'}, 100, function(){
window.location.href = index.html
})
})
})
を使用することができますしかし、あなたのボタンがリンクされている場合は、デフォルトのアクションを停止する必要があります。
クリックイベントをキャプチャし、デフォルトのアクションを防止し、アニメーションを行い、新しいページを読み込む必要があります。
(a jsfiddleとして入手可能)jqueryの使用している場合:アップデート
$('a').click(function (event) {
event.preventDefault();
$(this).animate({
//whatever
}, function() {
location.href = $(this).attr("href");
});
});
を:コメントで述べたような状況を占めHere's the new jsfiddleは、更新されたコードのためにそこに行きます。このトリックは、CtrlキーまたはCommandキーの押下を検索し、いずれかのキーが押されていれば、新しく定義されたアニメーションクリックハンドラを中止することです。
注:jsfiddleのキー入力を検出するには、ウィンドウにフォーカスが必要です。これは、フレームが機能する前にフォーカスが必要であることを意味します。
応答をありがとうが、これは要件#2を満たすとは思わない。ユーザーがリンクのコンテキストメニューを開いて「新しいウィンドウで開く」を選択すると、アニメーションを再生せずにリンクが新しいウィンドウで開かれます。しかし、ユーザーがCRTL/CMDを押し続けてリンクをクリックすると、提案された方法でアニメーションが再生され、同じウィンドウでリンクが開きます。 –
私はjsfiddleを更新しました。あなたが今述べた状況を処理する必要があります。私はMac上で "Ctrl"をテストすることができませんでしたが、それは動作するはずです(コマンドで動作します)。 –
2番目の部分についてはわかりません –
ボタンはありません。リンクのクリックイベントでアニメーションを再生することは、実際には選択肢ではありません。なぜなら、同じウィンドウ(アニメーションは再生するはずか)または新しいウィンドウ(アニメーションは再生しないでください) 。 –
clickイベントで 'false'を返すか' preventDefault'を呼び出す必要があります。 – jcubic