このスクリプトの下部にあるif else文で、ウィンドウの幅に基づいてリフレッシュとサイズ変更に基づいて更新できるresize関数を追加しようとしています。ヒーローの下向き矢印ボタンをクリックした場合を除き、すべてが正しく機能しています。オフセットのトップ値はサイズ変更時に更新されません。代わりにresize関数の更新を正しく実行する方法がわかりません
現在のスクリプト - これはそれを破るために縫い目 - 私が試した
$(function() {
var windowW = $(window).width();
$('a[href*="#"]:not([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) && (windowW > 770)) {
$('html, body').animate({
scrollTop: (target.offset().top) + 2
}, 450);
return false;
} else {
$('html, body').animate({
scrollTop: (target.offset().top) - 86
}, 450);
return false;
}
}
});
});
物事。
$(window).resize(function(e) {
var windowW = $(window).width();
$('a[href*="#"]:not([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) && (windowW > 770)) {
$('html, body').animate({
scrollTop: (target.offset().top) + 2
}, 450);
return false;
} else {
$('html, body').animate({
scrollTop: (target.offset().top) - 86
}, 450);
return false;
}
}
});
});
DEVのLINK http://www.alexcoven.com/dev/element
スクリプト全体を更新する必要がありますか? 'windowW'変数のように見えますか? – Sam0
うん、ちょうどwinowW変数 – alcoven