1

基本的に、ページ間でフェードイン/フェードアウトを行うためのカスタムJSを作成しました。スクリプト自体はうまく機能するので、新しいリンクをクリックすると、コンテンツがフェードアウトし、新しいページでフェードインします。私が問題を抱えているのは、「mailto:someone@gmail.com」のようなリンクをクリックすると、電子メールプログラムがロードされますが、コンテンツがフェードインせずにサイトがフェードアウトすることです。私が望むのは、特定のリンクをJSに追加できるクラスにして、それらがクリックされたときにフェードJSがロードされないようにすることです。これにより、リンクはJSなしでそのまま機能します。私はそれを次のようなif/elseステートメントでラップできると思いました:

if (.thisclass).clicked
 {not load the below JS}
else
 { here is my original JS}

これが私のコードです:

     //  Menu Animation
    $(function() {
    $("#menu").css("display", "none");

    $("#menu").fadeIn(500);

    $("a").click(function(event){
        event.preventDefault();
        linkLocation = this.href;
        $("#menu").delay(400).fadeOut(500, redirectPage);      
    });

    function redirectPage() {
        window.location = linkLocation;
    }
});
   $(function (){
       $("#menu").addClass("visible");

//  mainFade Animation 
});
    $(function() {
    $("#mainFade").css("display", "none");

    $("#mainFade").delay(400).fadeIn(500);

    $("a").click(function(event){
        event.preventDefault();
        linkLocation = this.href;
        $("#mainFade").fadeOut(500, redirectPage);      
    });

    function redirectPage() {
        window.location = linkLocation;
    }
});
   $(function (){
       $("#mainFade").addClass("visible");
});

//  Slogan Animation 

    $(function() {
    $("#line1").css("display", "none");

    $("#line1").delay(800).fadeIn(500);


});
$(function() {
    $("#line2").css("display", "none");

    $("#line2").delay(1400).fadeIn(500);


});
$(function() {
    $("#line3").css("display", "none");

    $("#line3").delay(1600).fadeIn(500);


});

$(function() {
    $("#demo").css("display", "none");

    $("#demo").delay(2100).fadeIn(500);


});

参照用のサイトへのリンクは次のとおりです。連絡先ページにはいくつかのMailtoリンクがあります。

サイト

4

1 に答える 1

0

両方の$("a").click(function(event){関数をに変更できます$("a").not('.email-class').click(function(event){email-classこれにより、クラスがないリンクでアニメーションが起動されます。

于 2013-01-16T21:10:59.040 に答える