Twitter Bootstrap を使用してサイトを構築しています。以下の JavaScript を使用して scrollspy を動作させました。
$('body').scrollspy({ target: '.navbar' })
しかし、スクリプトを追加してスムーズなスクロールを有効にすると、機能しなくなりました。
<script type="text/javascript">
$(document).ready(function() {
// navigation click actions
$('.scroll-link').on('click', function(event){
event.preventDefault();
var sectionID = $(this).attr("data-id");
scrollToID('#' + sectionID, 750);
});
// scroll to top action
$('.scroll-top').on('click', function(event) {
event.preventDefault();
$('html, body').animate({scrollTop:0}, 'slow');
});
// mobile nav toggle
$('.nav-toggle').on('click', function (event) {
event.preventDefault();
$('#bs-example-navbar-collapse-1').toggleClass("open");
});
});
// scroll function
function scrollToID(id, speed){
var offSet = 70;
var targetOffset = $(id).offset().top - offSet;
var mainNav = $('#bs-example-navbar-collapse-1');
$('html,body').animate({scrollTop:targetOffset}, speed);
if (mainNav.hasClass("open")) {
mainNav.css("height", "1px").removeClass("in").addClass("collapse");
mainNav.removeClass("open");
}
}
if (typeof console === "undefined") {
console = {
log: function() { }
};
}
</script>
scrollspy を間違った位置に追加したに違いないと考えています。私はJavaScriptの知識がほとんどありません。誰かが正しい順序/スペース/行に挿入する方法を教えてくれれば、それは素晴らしいことです!
前もって感謝します!