2017-01-07 5 views
0

私はここに投稿するのがかなり新しいです。私は最初にウェブサイトに入ったときに画面をフェードインさせるためのjavascriptエフェクトを持っていますが、フォームの送信後に画面が表示されるのを防ぐことはできません。これを達成するための簡単な方法はありますか?コンタクトフォームを送信した後にJavaScriptのフェードイン効果が発生するのを防ぐのに役立つ

HTML

<form method="post" action="#contact"> 
    <input type="hidden" name="hidden" id="hidden" value="Message sent from Jay Gervais Design"/> 

<div id="comment"> 
<input type="text" name="firstname" id="firstname" placeholder="First Name"><label for="firstname"></label><br /> 

<input type="text" name="lastname" id="lastname" placeholder="Last Name"><label for="lastname"></label><br /> 

<input type="text" name="email" id="email" required="required" Placeholder="E-Mail Address"><label for="email"></label><br /> 

<textarea rows="10" cols="30" name="comments" id="comments" Placeholder="Write me a comment"></textarea><label for="comments"></label><br /> 

<input type="submit" name="submit" id="submit" value="Submit" /> 

</div> 

CSS

body { 
    padding-top: 50px; 
    font-family: 'Josefin Sans', sans-serif; 
    opacity: 1; 
    transition: 5s opacity; 
} 
    body.fade-out { 
    opacity: 0; 
    transition: none; 
} 

JS

送信ボタンのデフォルト動作では、アニメーションのように再び起こることになりますページを(リロードすることです
$(function() { 
     $('a[href*="#"]:not([href="#"])').click(function() { 
     if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 
      var target = $(this.hash); 
      target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
      if (target.length) { 
      $('html, body').animate({ 
       scrollTop: target.offset().top 
      }, 1000); 
      return false; 
      } 
     } 
     }); 
    }); 

/* Fade in */ 
    document.body.className += 'fade-out'; 
    $(function() { 
     $('body').removeClass('fade-out'); 
    }) 
+0

これを行う方法はいくつかあります。デフォルトを防ぐためにいくつかの回答がありますが、数分後に期限切れになるCookieを使用することもできますし、phpなどのサーバーサイドスクリプトを使用している場合は、セッションを使用して、セッション。また、隠しフォームデータを使用することもできます。送信すると、そのページは再びアニメーションを実行しないことがわかります。より多くのオプションがあるかもしれませんが、これらはすぐに気になります。 –

答えて

1

よく)。

$("form").submit(function(event){ 
    event.preventDefault(); 
    } 
+0

ありがとう。このソリューションは、提出後スムーズなスクロールアニメーションが失われることを除いて、うまくいきました。両方の効果のために両方のJSコードスニペットを含むように投稿を編集しました。私はどのように他の人の上に1つを単一にするか分からない。 – PixelsOfMind

+0

私は、アニメーションをやり直さないようにページに知らせるために、隠れたフォームデータを使用する可能性が最も高いです。 –

+0

例を挙げることはできますか? – PixelsOfMind

0

これをコードに追加すると、これを回避できます。送信ボタンをクリックすると遷移効果が発生しないようにする必要があります。

$("input[type='submit']").click(function(event){ 
    $('body').css("transition", "none"); 
}); 
+0

これはトランジション効果には何の違いもありませんでした。 – PixelsOfMind

関連する問題