2013-01-09 47 views
1

我試圖檢測不支持位置的設備:固定。編輯:我已經修復了代碼,因此它檢測的是功能而不是瀏覽器/操作系統檢測。瀏覽器檢測使用javascript刷新失敗

我覺得當我第一次輸入這些信息時,我感到困惑。當我刷新頁面時,我的問題正在起作用。高度計算錯誤,這是我所知道的完全不同的問題,但我仍在尋求幫助。

更新檢測,下面的腳本:

function fixed() { 
     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; 
    } 


    //TEST FOR MOBILE, SET TOP IMAGE TO RELATIVE 
    if(fixed()) { 
     image_height = jQuery("#outer_homepage_image").height() - 45; 
     jQuery("#content").css("top",image_height); 

     jQuery(window).resize(function() { 
      image_height = jQuery("#outer_homepage_image").height() - 45; 
      alert(image_height); 
      jQuery("#content").css("top",image_height); 
     }); 
    } else { 
     jQuery("#outer_homepage_image").css("position","relative"); 
    } 
+1

你知道嗎,你只需要編寫'jQuery'解決它通過將代碼包裝在'(function($){....})(jQuery);'中,無論是否使用了noConflict,都可以使用'$' – ThiefMaster

+0

兩個獨立的if/else語句? – Madbreaks

+0

我沒有,並感謝提示@ThiefMaster另外我修復了我的代碼中的double if語句。 –

回答

0

感謝所有支持你們。我用jQuery(窗口).load(函數(){

現在的作品,因爲一切被加載,所以我可以計算出合適的高度。

4

這是一個非常和考慮不周的事情在做。

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) { 

例如,iOS設備已經完全支持位置:固定的,因爲正確的iOS 4,我們現在就6.對於Android的&黑莓,我不知道,但會犯錯的「支持」的一面。

您需要測試功能,而不是用戶代理。正如我所說的,你可以有一個不支持它的iOS設備,另一個可以。事實上,這些日子大多數人都在做

這裏是一個有用的鏈接,導致你的道德,虔誠的選擇:http://kangax.github.com/cft/#IS_POSITION_FIXED_SUPPORTED