2012-02-05 30 views
6

Mã ở đây: jsfiddle DemoLàm thế nào để có được chiều cao div sau khi thanh trượt hành động xuống hoặc trượt lên?

Tôi muốn để có được chiều cao div#content khi nó kết thúc hoạt động của slider down/up.

Ví dụ, trong bản demo, tôi gõ một số từ ngữ, họ làm cho chiều cao div là 36px, vì vậy nếu tôi bấm slider down, tôi cần có được giá trị 36, và nếu tôi nhấp slider up, tôi cần trả về giá trị 0. Cảm ơn.

Trả lời

4

Sau đó, nhưng nó trong hàm callback của slideDown hoặc slideUp, ví dụ như:

$('#content').slideDown('slow', function(){ 
     var height = $(this).height(); 
    }); 

Demo

ý rằng nó sẽ cung cấp cho bạn với cùng chiều cao 38 trong hai trường hợp các slideDownslideUp, bởi vì hai chức năng không thay đổi thuộc tính chiều cao của div, nhưng chỉ có display proprty từ none đến block, vì vậy thuộc tính chiều cao của div #content giống nhau sau khi trượt xuống dưới chiều cao trước đó.

+0

hey, cảm ơn bạn đã được trợ giúp, nhưng 'slideup' không hoạt động, giá trị phải bằng 0, nhưng bây giờ vẫn còn' 36' – Giberno

+0

@Giberno, Nó đang hoạt động trong trang ví dụ tôi đăng trong câu trả lời của mình. –

1

Tôi biết rằng đây là một chuỗi cũ, nhưng nó xuất hiện đầu tiên khi tôi tìm kiếm điều này vì vậy tôi cho rằng những người khác cũng sẽ đến đây.

Sử dụng gọi lại là những gì tôi làm nếu tôi cần giá trị sau khi hoạt ảnh hoàn tất, nhưng trong trường hợp sử dụng của tôi, tôi cần chiều cao trước hoạt ảnh để tôi có thể mở rộng phần tử khác với cùng độ cao. Đối với điều này, tôi đã làm như sau:

//Get height (start and end) 
var startHeight = $el.height(); 
$el.show(); 
var endHeight = $el.height(); 
$el.hide(); 

/**Do something useful with the height here**/ 
$el2.animate({height: endHeight}); 

//Slide the element down 
$el.slideDown(); 

Vì JavaScript là đơn luồng, chương trình/ẩn không bao giờ được hiển thị.

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