Mã này hoạt động hoàn toàn tốt. Chỉ cần thử nghiệm nó trên một hộp Windows ME với IE6, trả về 'null' vì IE6 không hỗ trợ position:fixed;
.
nhân tiện, đây KHÔNG phải là mã của tôi ban đầu. TẤT CẢ các khoản tín dụng truy cập vàoKangax's Githubcó nhiều chức năng ở đó để kiểm tra các tính năng của trình duyệt.
function() {
var container = document.body;
if (document.createElement &&
container && container.appendChild && container.removeChild) {
var el = document.createElement("div");
if (!el.getBoundingClientRect) {
return null;
}
el.innerHTML = "x";
el.style.cssText = "position:fixed;top:100px;";
container.appendChild(el);
var originalHeight = container.style.height, originalScrollTop = container.scrollTop;
container.style.height = "3000px";
container.scrollTop = 500;
var elementTop = el.getBoundingClientRect().top;
container.style.height = originalHeight;
var isSupported = elementTop === 100;
container.removeChild(el);
container.scrollTop = originalScrollTop;
return isSupported;
}
return null;
}
Nếu nó chạy, nó hoạt động, nếu không, bạn sẽ bị vô hiệu.
Đối với yếu tố nào? –
Bạn có ý nghĩa gì đó cho một chân * dính hoặc tương tự? –