私はjQueryにかなり慣れていないので、次のjQueryコードのブロックにいくつかのポインターが必要です。より良いコードを書くことに興味があります。
基本的に、コードは2つのメニュー項目のいずれかをクリックするとコンテンツを左からスライドインし、さらにクリックするとコンテンツをスライドアウトします。私はそれを2つの関数ではなく1つのコードブロックに結合しようとしていると思います。
$('#menu-item-91').click(function(e) {
e.preventDefault();
//console.log("Clicked");
//$('.about').css('display','inherit').slideDown(3000);
var sliding = $('.sliding');
var sliding1 = $('.sliding1');
if( sliding.css('display') == "none" && sliding1.css('display') == "none" ) { //show it
sliding.fadeIn(0);
sliding.animate({"left": 0},800);
}else if ( sliding.css('display') == "none" && sliding1.css('display') == "block" ) {
sliding1.animate({"left": -300},500 );
sliding1.delay(500).fadeOut(0);
sliding.fadeIn(0);
sliding.animate({"left": 0},800);
} else {
sliding.animate({"left": -300},500 );
sliding.delay(500).fadeOut(0);
}
});
$('#menu-item-17').click(function(e) {
e.preventDefault();
//console.log("Clicked");
//$('.about').css('display','inherit').slideDown(3000);
var sliding = $('.sliding1');
var sliding1 = $('.sliding');
if( sliding.css('display') == "none" && sliding1.css('display') == "none" ) { //show it
sliding.fadeIn(0);
sliding.animate({"left": 0},800);
}else if ( sliding.css('display') == "none" && sliding1.css('display') == "block" ) {
sliding1.animate({"left": -300},500 );
sliding1.delay(500).fadeOut(0);
sliding.fadeIn(0);
sliding.animate({"left": 0},800);
} else {
sliding.animate({"left": -300},500 );
sliding.delay(500).fadeOut(0);
}
});
それでおしまい!これは私の最初の投稿なので、ルールを破っていないことを願っています。誰かが私をより良くするのを手伝ってくれるでしょう!
トムよろしく
編集
みんなありがとう!いくつかの回答に関連する詳細を少し見逃したと思うので、まだ回答にマークを付けたくありませんでした。
2つのクラス.slidingと.sliding1は、別々のdivに追加されます。1つはportfolioと呼ばれ、もう1つはaboutと呼ばれます。
つまり、aboutメニュー項目をクリックするとabout divがスライドインし、ポートフォリオメニュー項目をクリックするとaboutがスライドアウトし、ポートフォリオがスライドインします。ただし、項目が表示されていない場合は、クリックするとスライドインします。
これで問題が明確になることを願っています。いずれかのメニュー項目がクリックされたときに、一部の回答が同じコンテンツにスライドするだけです。
ありがとう!