フォーム アクションを投稿する前に、ページをフェードアウトする必要があります。これが可能かどうかさえわからないので、どこから始めればよいかわかりません。
そうは言っても、私はリンクのためにそれを行う方法を知っています...以下のjavascript。ご協力いただきありがとうございます!
post メソッドをインターセプトする必要がある HTML フォーム
<form id="postitron" method="post" action="/postitron/answertron.php">
anchor
タグに使用した JavaScript
var $linkLocation;
function redirectPage(){
window.location = $linkLocation;
}
$('a.transition').click(function(event){
event.preventDefault();
$linkLocation = this.href;
$('#page').animate({opacity:0},400, function(){
redirectPage();
});
});
アップデート:
非常に多くの答え!ありがとうございました!
全体的に推奨されているものの要点を実装し、アニメーションの無限ループを取得しています..何が欠けていますか?
デモンストレーションのために JSFiddle を作成しました... 無限ループでアニメーション化されません... しかし、404 も返されません。変!?
HTML
<form id="postitron" method="post" action="/postitron/answertron.php">
<input type="hidden" name="acces" value"yes">
<input id="submit" type="submit" value="DOIT">
</form>
JavaScript
$('#postitron').submit(function(e){
e.preventDefault();
$('#page').animate({opacity:0},400, function(){
$('#postitron').submit();
});
});
更新 #2
@Ahren は、@Priyank Patel が .one() メソッドを使用すると、アニメーションが無限にループするのを防ぐことができると提案しましたが、それは実行されました (イェーイ!) が、私のコンソールは現在、フォームの送信を妨げているエラーを返しています:
キャッチされていない TypeError: オブジェクト # のプロパティ 'submit' は関数ではありません
これが更新されたJavaSriptです
$('#postitron').one('submit', function(e){
e.preventDefault();
$('#page').animate({opacity:0},400, function(){
$('#postitron').submit();
});
});
アップデート #3
さらに考えてみると... .one() メソッドは、要素のハンドラを 1 回実行します。アニメーションがフェードすると、同じ submit() メソッドが実行されないようにしていますか?
アップデート #4