2013-01-25 15 views
5

Cách cuộn đến div (ví dụ: #about, #contact) sau khi nhấp vào Giới thiệu hoặc Liên hệ trong trình đơn của tôi?Cách cuộn đến div sau khi nhấp vào Giới thiệu hoặc Liên hệ trong trình đơn của tôi?

<div class="masthead"> 
    <ul class="nav nav-pills pull-right"> 
     <li class="active"><a href="#">Home</a></li> 
     <li><a href="#">About</a></li> 
     <li><a href="#">Contact</a></li> 
    </ul> 
    <h3 class="muted">Name site</h3> 
</div> 
+0

Nhìn vào http://stackoverflow.com/questions/5284814/jquery-scroll-to- div và http://stackoverflow.com/questions/3432656/scroll-to-a-div-using-jquery – Yoggi

+0

http: //stackoverflow.com/questions/14412157/how-to-scroll-down-the-page-to-view-a-div-in-a-link-clicked/14412200#14412200 –

Trả lời

8

html của bạn:

<div class="masthead"> 
    <ul class="nav nav-pills pull-right"> 
     <li class="active"><a href="#">Home</a></li> 
     <li><a href="#about">About</a></li> 
     <li><a href="#contact">Contact</a></li> 
    </ul> 
    <h3 class="muted">Name site</h3> 
</div> 
<div id="about">about</div> 
<div id="contact">contact</div> 

javascript của bạn:

$('ul.nav').find('a').click(function(){ 
    var $href = $(this).attr('href'); 
    var $anchor = $('#'+$href).offset(); 
    window.scrollTo($anchor.left,$anchor.top); 
    return false; 
}); 

Nếu bạn muốn sử dụng Animate, thay thế

window.scrollTo($anchor.left,$anchor.top); 

bởi

$('body').animate({ scrollTop: $anchor.top }); 
+0

Cách thêm animate() vào mã này? – vavelde

+1

Tôi vừa chỉnh sửa bài đăng với animate – JohnJohnGa

+0

Tôi gặp lỗi trong bảng điều khiển JS ngay khi tôi nhấp vào thẻ neo- Lỗi: Lỗi cú pháp, biểu thức không được công nhận: ## details – plutonium1991

4

Nó là dễ dàng hơn bạn nghĩ.

<div class="masthead"> 
    <ul class="nav nav-pills pull-right"> 
     <li class="active"><a href="#">Home</a></li> 
     <li><a href="#About">About</a></li> 
     <li><a href="#Contact">Contact</a></li> 
    </ul> 
    <h3 class="muted">Name site</h3> 
    </div> 


<div id="About">Here's my about</div> 

... 

<div id="Contact">Here's my contact</div> 

Bằng cách sử dụng hàm băm, nó sẽ tự động cuộn đến một phần tử có id đó (hoặc neo với thuộc tính name). Nếu bạn muốn nó cuộn trơn tru, bạn có thể nâng cao hiệu ứng cuộn với thư viện javascript, như jquery. Xem câu hỏi này: How to scroll HTML page to given anchor using jQuery or Javascript?

+0

Tôi đã thử nó. Điều này không hiệu quả với tôi. Có cái gì khác hơn là cung cấp href = "# id" và có divs với các id. –

+0

@SaurabhTiwari ID phải là duy nhất. Và phần tử phải tồn tại trên trang tại thời điểm tải (nếu bạn muốn tự động cuộn khi tải) hoặc khi bạn nhấp vào liên kết. –

+0

vâng, tôi có mọi thứ tại chỗ. Mặc dù tôi đã đề cập đến việc tôi đang sử dụng Angular và định tuyến trong ứng dụng của mình. Có một cái nhìn [ở đây] (https://stackoverflow.com/questions/44307824/unable-to-scroll-to-a-div-element-using-hash-in-angular-app) nếu bạn có thể. –

Các vấn đề liên quan