Vì không ai thực sự đã trả lời câu hỏi này trước khi tôi sẽ trả lời với khám phá của tôi cho những người cần nó.
Tất cả bạn phải làm là liên kết anchor bình thường như thế này
<a href="#bottom">scroll to bottom</a>
<p id="bottom">bottom</p>
sau đó thêm mã JavaScript này và nếu bạn cần thay đổi bất cứ điều gì, hãy nhìn vào những ý kiến javascript
<script>
$(function() {
function filterPath(string) {
return string
.replace(/^\//,'')
.replace(/(index|default).[a-zA-Z]{3,4}$/,'')
.replace(/\/$/,'');
}
var locationPath = filterPath(location.pathname);
var scrollElem = scrollableElement('html', 'body');
// Any links with hash tags in them (can't do ^= because of fully qualified URL potential)
$('a[href*=#]').each(function() {
// Ensure it's a same-page link
var thisPath = filterPath(this.pathname) || locationPath;
if ( locationPath == thisPath
&& (location.hostname == this.hostname || !this.hostname)
&& this.hash.replace(/#/,'')) {
// Ensure target exists
var $target = $(this.hash), target = this.hash;
if (target) {
// Find location of target
var targetOffset = $target.offset().top;
$(this).click(function(event) {
// Prevent jump-down
event.preventDefault();
// Animate to target
$(scrollElem).animate({scrollTop: targetOffset}, 400, function() {
// Set hash in URL after animation successful
location.hash = target;
});
});
}
}
});
// Use the first element that is "scrollable" (cross-browser fix?)
function scrollableElement(els) {
for (var i = 0, argLength = arguments.length; i <argLength; i++) {
var el = arguments[i],
$scrollElement = $(el);
if ($scrollElement.scrollTop()> 0) {
return el;
} else {
$scrollElement.scrollTop(1);
var isScrollable = $scrollElement.scrollTop()> 0;
$scrollElement.scrollTop(0);
if (isScrollable) {
return el;
}
}
}
return [];
}
});
</script>
Nguồn
2012-11-01 19:12:02
Im trên di động để mã nhúng và tôi không thể thay đổi nó ... nhưng tôi chắc chắn bạn hiểu ý tôi. –
[jQuery.ScrollTo] (http://flesler.blogspot.com/2007/10/jqueryscrollto.html) –
Tôi sẽ sử dụng điều đó như thế nào? Như một chức năng onclick và chỉ cần đặt một id như thế này onclck = "jQuery.ScrollTo (dưới)" –