2013-08-28 39 views
5

Tôi có hai số div được định vị absolutly và tôi định vị chúng tương đối với nhau. Khi width của một thay đổi, sau đó tôi tính toán lại và đặt vị trí. Trong khi tôi sử dụng chuyển tiếp css3 trên thuộc tính 'width', khi tôi cố gắng nhận được 'width' của hoạt ảnh, nó mang lại cho tôi giá trị hiện tại trên dom. Nhưng tôi muốn có được giá trị đích của quá trình chuyển đổi để thiết lập vị trí chính xác khi bắt đầu hiệu ứng chuyển tiếp. Điều này có thể nhận được giá trị mục tiêu thông qua javascript hoặc các cách khác không?Có thể nhận giá trị thuộc tính css đích trong quá trình chuyển đổi css3 trong Javascript không?

EDIT

Dưới đây là một jsfiddle chứng tỏ vấn đề của tôi. Nó cảnh báo '100px' nhưng tôi cần phải có '300px'.

http://jsfiddle.net/Mdbgs/

Cảm ơn.

+0

bạn có thể chỉ cho chúng ta mã của bạn? có lẽ bạn nên xem xét việc tạo một mẫu trên jsfiddle để làm nổi bật vấn đề để chúng tôi có thể hiểu được vấn đề của bạn và cố gắng giúp bạn với nó. – trrrrrrm

+0

Làm thế nào để bạn thiết lập chiều rộng? Có phải là "tự động" và nó tự động mở rộng/thu nhỏ? –

+0

hãy để tôi thử tạo một fiddle –

Trả lời

5

Đó là bởi vì .css('width') đang kêu gọi getComputedStyle trên các yếu tố, mà trả về giá trị đang chuyển đổi. Nếu bạn đã trực tiếp truy cập vào phong cách, bạn sẽ nhận được những gì bạn vừa đã thiết lập:

document.getElementById('transition_div').style.width 
$('#transition_div').prop('style').width 
$('#transition_div')[0].style.width 

(updated fiddle)

+0

Bạn là người đàn ông tuyệt vời, đó là những gì tôi đã hỏi về. Cảm ơn bạn đã trả lời. –

+1

là nó có thể bằng cách nào đó có được giá trị của tài sản css tính? Ý tôi là khi không được chỉ định trong các kiểu: http://stackoverflow.com/questions/18975412/is-it-possible-to-get-the-target-calculated-css-property-value-during-a-css3-tra –

2

Bạn có thể sử dụng các sự kiện transitionend: (see for equivalent prefixed vendor)

$('#transition_div').css('width', 300).on("transitionend", function() { 
    alert($(this).css('width')); 
}); 

DEMO

+0

Tôi không biết về sự kiện đó, thak bạn trả lời. Nhưng actaully tôi cần có được giá trị khi bắt đầu quá trình chuyển đổi. Có cách nào hợp pháp hoặc bất hợp pháp để thực hiện việc này không? –

+0

Vì vậy, hãy xem nhận xét của @JonasGrumann, vì tôi cũng không hiểu vấn đề của bạn. Bởi vì, nếu bạn animate DIV với một giá trị cụ thể, thì bạn biết giá trị. –

+0

Tôi có cùng một vấn đề và tôi có thể đã chứng minh theo cùng một cách. Điều gì xảy ra với tôi là trong đoạn mã thực sự, phần đang thực hiện hoạt ảnh và phần đang kiểm tra ở những nơi hoàn toàn khác. Phần mà tôi cần đọc giá trị thực sự là trong các bài kiểm tra của tôi. – terrinecold