状況:アンカー リンクごとに、アンカー リンクまでスムーズにスクロールしたい。次に、特定のアンカー リンクのオフセットを設定します (たとえば、ナビゲーションのリンクのみで、サイトのアンカー リンクはありません)。そして最後に、メディアクエリを追加したい..オフセット位置は、定義されたブラウザーサイズ (「最大幅: 767px」など) でのみ機能する必要があります。
最初の問題:他の機能 (オフセット配置) が無効になっている場合にのみ、スムーズなスクロールが機能します。両方を一緒に使用しても機能しません。何か助けはありますか? 2 番目の問題:「オフセット ポジショニング」を「ナビゲーション」アンカー リンクのみに減らす方法がわかりません。
// Smooth Scrolling
$(function () {
'use strict';
$('a[href*=#]').click(function () {
if (location.pathname.replace(/^\//, '') === this.pathname.replace(/^\//, '') && location.hostname === this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 300);
return false;
}
}
});
});
// Offset Positioning
function offsetAnchor() {
'use strict';
if (location.hash.length !== 0) {
window.scrollTo(window.scrollX, window.scrollY - 0);
}
}
// Offset Positioning with media query
function offsetAnchor() {
'use strict';
if (matchMedia('only screen and (max-width: 767px)').matches) {
if (location.hash.length !== 0) {
window.scrollTo(window.scrollX, window.scrollY - 220);
}
}
}
// This will capture hash changes while on the page
$(window).on("hashchange", function () {
'use strict';
offsetAnchor();
});
ここや他のサイトを検索してコードを取得しました。自分で書いたわけではありません。早くjavascriptとjqueryの基礎を学びたいです。しかし、皆さんから今すぐ助けを得ることができれば素晴らしいことです。本当にありがとうございました!
ボリス