2013-03-18 57 views
0

我有一個表單根據窗口大小做出響應地收縮。但是,我們需要它永久保持較小的移動和其他未知瀏覽器。基於移動或其他未知瀏覽器的條件

這是僞代碼。 jQuery是罰款,也和我使用v.1.8

if (is_desktop) 
    is_narrow = false; 
else 
    // applies to mobile and unknown browsers 
    is_narrow = true; 

$("#form").toggleClass('narrow', is_narrow); 

大部分的解決方案對未知的瀏覽器在那裏失敗。例如,他們只檢測瀏覽器是否是移動的,並且假設它是桌面的。除非被證明是桌面瀏覽器,否則我需要假設移動設備。

P.S.,我也使用PHP,如果你想提供一個解決方案,而不是。

+2

爲什麼不堅持使用響應式設計呢? http://stackoverflow.com/questions/6370690/media-queries-how-to-target-desktop-tablet-and-mobile – Tchoupi 2013-03-18 20:04:33

+0

問題是,我們有一個小部件在別人的網站上。而我們需要移動設備上的縮小屏幕來縮小屏幕。 由於窗口的分辨率報告爲大於實際的屏幕尺寸,我們必須用其他方法檢測它。 – redolent 2013-03-18 20:07:16

+0

使用基於頁面尺寸的媒體查詢怎麼樣? – 2013-03-18 20:09:30

回答

-1

您可以使用查詢介質在CSS上做一些工作。 關於HTML,您可以插入帶有隱藏/可見類屬性的兩個表單選項,這些屬性與用於桌面/移動設備的某些查詢媒體相關。

+1

這是一個非常差的答案。包括鏈接,支持你的答案的例子,並且請,這不需要很長時間來拼寫'你'! – Tchoupi 2013-03-18 20:28:32

+0

只是供參考,這裏的貢獻是相當高的標準,而不符合他們的答案往往被低估或刪除。請閱讀http://stackoverflow.com/questions/how-to-answer,瞭解社區在答案的內容和風格方面的用處。 – toxotes 2013-03-18 20:36:31

0

嘗試使用Media Queries

/* Smartphones (portrait and landscape) ----------- */ 
@media only screen 
and (min-device-width : 320px) 
and (max-device-width : 480px) { 
/* Styles */ 
} 

/* Smartphones (landscape) ----------- */ 
@media only screen 
and (min-width : 321px) { 
/* Styles */ 
} 

/* Smartphones (portrait) ----------- */ 
@media only screen 
and (max-width : 320px) { 
/* Styles */ 
} 

/* iPads (portrait and landscape) ----------- */ 
@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) { 
/* Styles */ 
} 

/* iPads (landscape) ----------- */ 
@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) 
and (orientation : landscape) { 
/* Styles */ 
} 

/* iPads (portrait) ----------- */ 
@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) 
and (orientation : portrait) { 
/* Styles */ 
} 

/* Desktops and laptops ----------- */ 
@media only screen 
and (min-width : 1224px) { 
/* Styles */ 
} 

/* Large screens ----------- */ 
@media only screen 
and (min-width : 1824px) { 
/* Styles */ 
} 

/* iPhone 4 ----------- */ 
@media 
only screen and (-webkit-min-device-pixel-ratio : 1.5), 
only screen and (min-device-pixel-ratio : 1.5) { 
/* Styles */ 
} 

使用此功能,以確定用戶在移動

function is_mobile() { 
     var agents = ['android', 'webos', 'iphone', 'ipad', 'blackberry']; 
     for(i in agents) { 
      if(navigator.userAgent.match('/'+agents[i]+'/i')) { 
       return true; 
      } 
     } 
     return false; 
    } 

if (is_mobile) 
    is_narrow = true; 
else 
    // applies to mobile and unknown browsers 
    is_narrow = false; 

$("#form").toggleClass('narrow', is_narrow); 

編輯:

您可以嘗試使用此function

if(jQuery.browser.mobile) 
{ 
    console.log('You are using a mobile device!'); 
} 
else 
{ 
    console.log('You are not using a mobile device!'); 
} 
+0

但是如果我們不確定他們是否在移動設備上呢?我們如何在展示狹義形式方面犯錯? – redolent 2013-03-18 20:12:56

+0

查看已更新回答 – 2013-03-18 20:18:16

+0

不幸的是,您已將邏輯從'is_desktop'更改爲'is_mobile'。我基本上想檢查桌面瀏覽器,並假設世界其他地方是移動的。 – redolent 2013-03-18 22:24:27