たくさんのアンカーリンクがあり、JavaScriptを使用してさまざまなdivをフェードインしてページを模倣しています。
<script type="text/javascript">
$(document).ready(function() {
showHomePage();
$('.homebutton').click(function() {
displayNone();
showWindow("homepage");
} );
$('.aboutbutton').click(function() {
displayNone();
showWindow("aboutpage");
} );
$('.gallerybutton').click(function() {
displayNone();
showWindow("gallerypage");
} );
$('.musicbutton').click(function() {
displayNone();
showWindow("musicpage");
} );
function displayNone() {
$('.pagecontainer>div').fadeOut(0);
}
function showHomePage() {
$('.pagecontainer').fadeIn();
$('#homepage').fadeIn();
}
function showWindow(name) {
$('#' + name).fadeIn();
}
});
<body>
....
....
<a href="#homepage" class="homebutton">Home</a>
<a href="#aboutpage" class="aboutbutton">About</a>
<a href="#gallerypage" class="gallerybutton">Gallery</a>
<a href="#musicpage" class="musicbutton">Music</a>
....
....
<div id="homepage">Home page</div>
<div id="aboutpage">About page</div>
<div id="gallerypage">Gallery page</div>
<div id="musicpage">Music page</div>
....
</body>
最初はすべてのページが非表示に設定され(alpha = 0)、リンクをクリックすると、現在表示されているページがdisplayNone()で非表示に設定され、対応するページがフェードインします。これはすべて問題なく機能します。
しかし、私はこのコードを短くしたいと思います。私が50ページと言っているかどうかわかるように、ほぼ同じ行を50回記述しなければならないため、javascriptの部分は非常に乱雑になります。私のすべてのリンクには「_page」に対応するクラス「_button」があるので、1つの関数だけを必要とするこれへのショートカットがあるべきだと思いますか?何かのようなもの:
- [クラス名]をクリックした場合、クラス名の「ボタン」部分を削除してください
- 次に、名前の最後に「ページ」を追加します
- たとえば、「aboutbutton」をクリックした場合は、名前を「about」に変更してから「page」を追加すると、「aboutpage」になります。
- 次に、そのdivを表示します
しかし、これをどのように書くかはわかりません。ご協力いただきありがとうございます。