Đây phải là một câu hỏi khá cơ bản, nhưng tôi đã ném hầu hết buổi sáng của tôi vào nó, và vào thời điểm này tôi gần như ném vào khăn. Tôi thậm chí còn không phải là một chút foo js - nhưng tôi tìm thấy một đoạn độc đáo nhận xét mã mà tôi hy vọng sẽ sử dụng để animate neo liên kết đó là:Kế toán cho một tiêu đề cố định với animate.scrolltop và (target) .offset(). Top;
$(document).ready(function() {
$('a[href*=#]').bind('click', function(e) {
e.preventDefault(); //prevent the "normal" behaviour which would be a "hard" jump
var target = $(this).attr("href"); //Get the target
var scrollToPosition = $(target).offset().top;
// perform animated scrolling by getting top-position of target-element and set it as scroll target
$('html, body').stop().animate({ scrollTop: scrollToPosition}, 600, function() {
location.hash = target; //attach the hash (#jumptarget) to the pageurl
});
return false;
});
});
Tôi đang cố gắng để làm cho nó 30px đất trên đỉnh bù đắp() -. tôi cố gắng
$('html, body').stop().animate({ scrollTop: scrollToPosition -30}, 600,
mà hầu như làm việc - nó đi đến đúng địa chỉ nhưng sau đó bị trả lại.
Tôi cũng đã thử
scrollTop: $(target).offset().top - 20 },
Tôi cũng đã thử
scrollTop: $(hash).offset().top + $('#access').outerHeight()
Mà dường như không thay đổi bất cứ điều gì.
Có vẻ như câu trả lời có thể ở đây: JQuery page scroll issue with fixed header nhưng tôi hoàn toàn không thể hiểu được.
Tôi biết điều này tương tự như các câu hỏi khác - nhưng tôi đã trải qua những gì tôi có thể tìm và tôi mù chữ đủ để tôi không thể sao chép/dán vào bất kỳ nội dung nào khắc phục sự cố.
Tôi vô cùng biết ơn vì giải pháp.
Rất cám ơn,
Martin
PS
này đoạn khác của mã tôi thấy không làm việc nhưng nó tước hashtag ra, mà làm cho nó hầu như vô dụng.
$(function(){
$('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) {
var targetOffset = $target.offset().top;
$('html,body').animate({scrollTop: targetOffset - 30}, 1000);
return false;
}
}
});
});
Cảm ơn bạn rất nhiều Steve. Tôi thề tôi sẽ học đủ để hiểu những gì tôi đang sao chép, hy vọng trong năm nay, nhưng điều này vừa cứu tôi không bị đau đầu. Chúc mừng -m – Martin
Câu hỏi nhanh: Mã hoạt động hoàn hảo, nhưng hàm băm được thêm vào url sẽ xuất hiện dưới dạng "#undefined" - bất kỳ ý tưởng nào? – Martin
Không phải lo lắng. Chỉ cần giữ nó, nhận được một số hướng dẫn trực tuyến tốt một cách thường xuyên và bạn sẽ hấp thụ kiến thức bạn đang sau! Defo kiểm tra các trang web tutsplus ([Webdesigntuts] (http://webdesign.tutsplus.com/), [Nettuts] (http://net.tutsplus.com/)) và [Team Treehouse] (http: // teamtreehouse) .com /) thiết kế web/học tập phát triển từ Carsonified, tất cả các tài nguyên miễn phí tuyệt vời. –