Tôi đang tạo trang một trang với thanh điều hướng định vị cố định, cuộn trơn tru đến các phần tử khác nhau thông qua liên kết anchor. Hành vi mặc định để cuộn đến một phần tử là căn chỉnh nó với đầu cửa sổ trình duyệt. Thay vào đó, tôi muốn căn chỉnh phần tử ở giữa màn hình.jQuery - Di chuyển phần tử vào giữa màn hình thay vì lên trên cùng với liên kết anchor
tôi sử dụng đánh dấu này để điều hướng:
<nav class="main-nav">
<a href="#top">Top</a>
<a href="#section-1">Section 1</a>
<a href="#section-2">Section 2</a>
<a href="#section-3">Section 3</a>
<a href="#section-4">Section 4</a>
<a href="#section-5">Section 5</a>
</nav>
tôi sử dụng kswedberg's jQuery Smooth Scroll plugin làm mịn cuộn. Tôi bắt đầu nó như thế này:
$('.main-nav a').smoothScroll({
offset: 0,
speed: 700
});
tôi muốn thiết lập bù đắp được ((window).height/2) - (element height/2)
để nó theo chiều dọc làm trung tâm, nhưng tôi cần sự giúp đỡ để tìm ra cách để thực hiện nó đúng cách.
tôi cần nó để:
- Lấy chiều cao của cửa sổ và chia bởi hai
- Lấy chiều cao của nguyên tố này và chia bởi hai
- Trừ cựu từ sau
- Nếu có thể, căn chỉnh nó lên trên cùng theo mặc định nếu phần tử cao hơn cửa sổ
Vì có rất nhiều hoặc liên kết Tôi giả sử tôi hoặc cần phải kiểm tra chiều cao của phần tử liên kết anchor đã được nhấp vào liên kết, hoặc khởi tạo smoothScroll cho mỗi liên kết anchor.
Có ai biết cách thực hiện việc này không?
Tôi không quen thuộc với plugin, nhưng thuộc tính 'offset' trông đầy hứa hẹn .. –
Tôi định sử dụng thuộc tính' offset', nhưng tôi cần trợ giúp để tính giá trị động của nó. Đó là những gì tôi hỏi. –
Không có gì gây phiền nhiễu hơn các trang buộc phải di chuyển mượt mà trên điều hướng mặc dù tôi đã tắt tính năng này trong trình duyệt của mình. –