このコードはもともと、ページの読み込み時にスムーズにアンカーにスクロールするために使用されていました。同じ関数のjquery、onclick、およびonloadイベント
リスナーをクリックして同じページのアンカーにスクロールしても動作するようにリスナーを追加しようとしましたが、止まっています。ページのナビゲーションのための
// <!--smooth scroll to anchors-->
(function(jQuery){
var jump=function(e){
if (e){
e.preventDefault(); //prevent the "normal" behavior which would be a "hard" jump
var mytarget = jQuery(this).attr("href"); //get the target
}else{
var mytarget = location.hash; //sets the target to the anchor part of a URL
}
jQuery('html,body').animate( //perform animated scrolling
{
scrollTop: jQuery(mytarget).offset().top - 100 //get top-position of target-element and set it as scroll target and move down 100px for fixed nav
}, 1000,function(){ //scrolldelay: 2 seconds
location.hash = mytarget; //attach the hash (#jumptarget) to the pageurl
});
}
jQuery('html, body').hide()
// on load
jQuery(document).ready(function(){
jQuery('a[href^="#"]').bind("click", jump);
if (location.hash){
setTimeout(function(){
jQuery('html, body').scrollTop(0).show()
jump()
}, 0);
}else{
jQuery('html, body').show()
}
});
// on click
var inpage-nav =document.querySelectorAll('.in-page-nav');
for(var i=0;i<cell.length;i++){
inpage-nav[i].addEventListener('click',jump);
}
})(jQuery)
// <!--End smooth scroll-->
HTML:
<div class="just-a-nav">
<ul>
<li class="filter"><a class="in-page-nav" href="#item1">Item 1</a></li>
<li class="filter"><a class="in-page-nav" href="#item2">Item 2</a></li>
<li class="filter"><a class="in-page-nav" href="#item3">Item 3</a></li>
</ul>
</div>
_Trying LISTENER_を追加するためにここに私のフィドルはありますか? –
あなたのHTMLは何ですか?クラス「ページ内ナビゲーション」を持つHTML部品を表示できますか? –
@RezaMamun元の質問に追加されました。 – justsomeone