基本的に、ページ間でフェードイン/フェードアウトを行うためのカスタム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リンクがあります。