Có rất nhiều ví dụ về di chuyển mượt mà sử dụng thư viện JS như jQuery, Mootools, Prototype vv
Ví dụ sau đây là trên tinh khiết JavaScript. Nếu bạn không có jQuery/Mootools/Prototype trên trang hoặc bạn không muốn quá tải trang với các thư viện JS nặng, ví dụ sẽ được trợ giúp.
http://jsfiddle.net/rjSfP/
HTML Part:
<div class="first"><button type="button" onclick="smoothScroll(document.getElementById('second'))">Click Me!</button></div>
<div class="second" id="second">Hi</div>
CSS Phần:
.first {
width: 100%;
height: 1000px;
background: #ccc;
}
.second {
width: 100%;
height: 1000px;
background: #999;
}
JS Phần:
window.smoothScroll = function(target) {
var scrollContainer = target;
do { //find scroll container
scrollContainer = scrollContainer.parentNode;
if (!scrollContainer) return;
scrollContainer.scrollTop += 1;
} while (scrollContainer.scrollTop == 0);
var targetY = 0;
do { //find the top of target relatively to the container
if (target == scrollContainer) break;
targetY += target.offsetTop;
} while (target = target.offsetParent);
scroll = function(c, a, b, i) {
i++; if (i > 30) return;
c.scrollTop = a + (b - a)/30 * i;
setTimeout(function(){ scroll(c, a, b, i); }, 20);
}
// start scrolling
scroll(scrollContainer, scrollContainer.scrollTop, targetY, 0);
}
thêm liên kết vào jsfiddle mà không cần bất kỳ mã nào cố gắng, không hiển thị những gì bạn đã thử, ít nhất là tìm kiếm các câu hỏi tương tự trước khi hỏi ...! –
Tôi đã thử một loạt các phương pháp khác nhau, không có phương pháp nào hiệu quả và vì vậy tôi đã loại bỏ chúng. :/ –
điều này sẽ giúp bạn :: http://stackoverflow.com/questions/3432656/scroll-to-a-div-using-jquery –