我想從這裏使用Kangax的腳本:http://kangax.github.com/cft/來檢測那些「正常」實現位置的瀏覽器:與移動瀏覽器相比,這是固定的,因爲我可以使用jQuery來僞裝它移動瀏覽器。檢測位置:使用javascript固定
Kangax的代碼工作正常。但是,當我將它合併到我的頁面時,它不會。我認爲這肯定是一個明顯的錯誤。任何幫助將非常感激!
////Detect whether position:fixed works (mobile browsers). Use JS to position #navwrap if not.
//Kangax's script - begins at "function" on the next line.
function detected() {
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;
};
if (detected()) {
alert ('non-mobile');
}
else {
alert ('mobile');
}
萬一有幫助,原代碼(剝離儘可能多地):
<body>
<h2>Position Fixed Test</h2>
<script>
(function(__global){
// make sure `window` resolves to a global object
var window = this;
var features = { };
features.IS_POSITION_FIXED_SUPPORTED = (features.__IS_POSITION_FIXED_SUPPORTED = 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;
})();
__global.__features = features;
})(this);
(function(){
function detect() {
for (var i=0; i<1; i++) {
var testResult = __features['IS_POSITION_FIXED_SUPPORTED'];
alert (testResult);
i++;
}
};
detect();
})();
</script>
</body>
什麼是錯誤 – shevski 2011-05-10 11:02:03
http://kangax.github.com/cft/上的原始示例可以成功地區分桌面和移動瀏覽器,但我的不是。我想我沒有測試null與isSupported正確? – phil 2011-05-10 12:38:41
你看到什麼,什麼時候 – shevski 2011-05-10 12:45:04