cuốn sách gpt4 ai đã làm

Khởi động lại/đặt lại và phát lại CSS chuyển tiếp?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 22:58:21 26 4
mua khóa gpt4 Nike

Tôi cần phát lại quá trình chuyển đổi css bằng javascript. Khi tôi đặt lại kiểu css của div và áp dụng chuyển đổi mới, không có gì xảy ra...

Tôi nghĩ cả hai mã đều được thực thi trong cùng một khung thực thi và với việc tối ưu hóa, nó không thay đổi gì cả...

Ví dụ:https://jsfiddle.net/f0s8a8jp/2/

test.css({transition: 'none', Height: '0px'});
test.css({transition: 'height 1s tuyến tính', Height: '100px'});

Giải pháp duy nhất tôi tìm thấy cho đến nay (không rõ ràng lắm đối với tôi) là sử dụng setTimeout giữa đặt lại thuộc tính và áp dụng chuyển đổi mới:https://jsfiddle.net/f0s8a8jp/3/

Ý tưởng tốt hơn được chào đón? !

câu trả lời hay nhất

Quá trình chuyển đổi sẽ được áp dụng cho các kích thước được tính toán của phần tử. Đặt thuộc tính CSS không đánh giá nó. Do đó, việc thiết lập và trả về một thuộc tính cũng giống như giữ nguyên thuộc tính đó. Nó được tính khi trình duyệt cần chỉnh lại các phần tử.

setTimeout Thời gian cuối cùng sẽ được chuyển giao cho trình duyệt trong khi tính toán chỉnh lại dòng. Bạn có thể sử dụng requestAnimationFrame Đạt được hiệu quả tương tự mà không nhấp nháy.

Một thủ thuật khác là buộc trình duyệt chỉnh lại luồng ngay sau khi thay đổi thuộc tính CSS, ví dụ: sử dụng. test[0].offsetWidth;. Sau đó thực hiện chuyển đổi một cách chính xác:https://jsfiddle.net/f0s8a8jp/9/

Bạn có thể tìm thấy một cuộc thảo luận sâu hơn về chỉnh lại dòng (và sơn lại) ở đây:http://www.phpied.com/rendering-repaint-reflowrelayout-restyle/

Khởi động lại/đặt lại và phát lại CSS chuyển tiếp? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/37439605/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress