Có một chút vấn đề với việc nhận được sự phù hợp jquery của tôi để làm những gì tôi muốn.accordion jQuery, di chuyển đầu tab đã nhấp lên trên cùng, không hoạt động nếu tab được mở rộng ở trên tab đang được nhấp?
Tôi luôn muốn tab đang được nhấp để cuộn đến số lượng pixel cố định từ đầu trang và tôi đã làm cho nó hoạt động. Nhưng bất cứ khi nào tab đang hoạt động ở trên tab đang được nhấp và nếu trang đã được cuộn xuống một chút, phần trên cùng và một phần nội dung của tab được nhấp được cuộn lên trên đầu trang.
Đây là những gì tôi đã nhận:
$(function() {
$("#accordion").accordion({
autoHeight: false,
collapsible: true,
heightStyle: "content",
active: 0,
animate: 300
});
$('#accordion h3').bind('click',function(){
theOffset = $(this).offset();
$('body,html').animate({
scrollTop: theOffset.top - 100
});
});
});
Dưới đây là một fiddle để minh họa cho vấn đề của tôi,
Ví dụ, có "phần 2" mở rộng, di chuyển xuống và nhấp vào "phần 3" tab và nó tất cả các cuộn ra khỏi trang, cách khác xung quanh nó hoạt động mặc dù.
Và nếu đóng tab hoạt động trước khi mở một tab mới, nó cũng hoạt động tốt vì vậy tôi giả định điều này có liên quan đến chiều cao của tab thu gọn làm lộn xộn cuộn lên chức năng hàng đầu !?
Hy vọng ai đó có thể giúp đỡ, tôi có thể tiếp cận cách này sai. Tôi thực sự không biết những gì tôi đang thực sự làm như kỹ năng jquery của tôi được giới hạn trong một sự hiểu biết cơ bản cắt n 'dán! ^^
Cảm ơn trước và tất cả trợ giúp và khu vực con trỏ được chào đón nhiều hơn! :)
Chúc mừng
CÓ! : D Cảm ơn rất nhiều, tôi đã cố gắng trì hoãn sự kiện cuộn thực tế nhưng không may mắn, nhưng nó hoạt động! Xuất sắc! – Andreas
Hoạt động tốt! Câu hỏi duy nhất của tôi là tại sao bạn làm 'var self = this;'? Tôi đã cố gắng làm điều đó với 'var theOffset = $ (this) .offset();' và nó không hoạt động. Bất kỳ ý tưởng tại sao? – Technotronic
@Technotronic - Bởi vì giá trị của 'this' bên trong gọi lại setTimeout không phải là những gì nó ở bên ngoài. – techfoobar