現在のコンテンツを ajax 応答に置き換える ajax 呼び出しを介してページをロードする Web サイトをセットアップしようとしています。人々がページをブックマークできるように、URL の最後に # とページ名を付けています。
- www.examplesite.com#home
- www.examplesite.com#examples
- www.examplesite.com#examples/example1
- www.examplesite.com#examples/example2
私は jQuery を初めて使用し、JavaScript の程度はそれほど高くありませんが、サブフォルダーに保存されているページに移動すると、別のページアニメーションを取得しようとしています。fadeIn() は、ページとサブフォルダー内のページの両方で正常に動作しますが、.slideDown() または .animate() をまったく動作させることができません。これが私のコードからの抜粋です:
<script>
//All pages are stored in a folder called 'pages' or a subfolder of 'pages'
$(document).ready(function(){
var myUrl = $(location).attr('href');
var noPage = myUrl.indexOf('#');
if(noPage == -1) {
location.hash = 'home';
}
window.onhashchange = function() {
pageChange();
}
function pageChange() {
var myUrl = $(location).attr('href');
var page = myUrl.substring(myUrl.indexOf('#') + 1, myUrl.length);
$.get('pages/' + page + '.html', function(pageHtml) {
if (page.indexOf('/') != -1) {
$('.main').hide().html(pageHtml).slideDown(400);
} else {
$('.main').hide().html(pageHtml).fadeIn(400);
}
});
};
pageChange();
});
</script>
私が完全に間違った方向からこれに取り組んでいて、それが機能しない理由である場合は、どのように機能するかの例を示して、自由に正しい方向に向けてください.