Hiện tại cuối năm 2015 và tình hình đã thay đổi đôi chút. Trước hết, nhận xét của McBrainy về cách viết hoa ở trên là quan trọng. Tiền tố webkit
hiện là Webkit
, nhưng may mắn chỉ được Safari sử dụng tại thời điểm này. Cả Chrome và Firefox đều hỗ trợ el.style.transform
mà không có tiền tố ngay bây giờ và tôi nghĩ rằng IE cũng vậy. Dưới đây là một giải pháp hiện đại hơn một chút cho nhiệm vụ trong tầm tay. Nó kiểm tra đầu tiên để xem nếu chúng ta thậm chí không cần đến tiền tố sở hữu chuyển đổi của chúng tôi:
var transformProp = (function(){
var testEl = document.createElement('div');
if(testEl.style.transform == null) {
var vendors = ['Webkit', 'Moz', 'ms'];
for(var vendor in vendors) {
if(testEl.style[ vendors[vendor] + 'Transform' ] !== undefined) {
return vendors[vendor] + 'Transform';
}
}
}
return 'transform';
})();
Sau đó, chúng tôi chỉ có thể sử dụng một cuộc gọi một lót đơn giản để cập nhật các transform
tài sản trên một yếu tố:
myElement.style[transformProp] = 'translate3d(0,' + dynamicY + 'px,0)';
Đảm bảo bạn viết hoa tên thuộc tính ('Biến đổi' thay vì' biến đổi'). Tôi phát hiện ra điều này một cách khó khăn ... –