2013-07-05 59 views
1

經過尋找解決方案後,我只是厭倦了嘗試找到每一根稻草。如何在webView中獲取正確的style.width值?

所以,我的情況是這樣的:

我有一個滾動的div與它在空中漂浮的圖像,我使用scrollLeftoffsetLeftstyle.width動態擴展這個div

現在,雖然這是在iOS和PC工作的偉大,在Android(7" )的scrollLeft值縮小了近50%!然而style.width值不縮小,像其他人。

這將是我的項目的CSS:

.slider-item { 
    margin: 0 13px 0 0; 
    width: 300px; 
    float: left; 
    height: inherit; 
} 

而且我viewport

<meta id="viewport" name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"> 

我的問題:

  • 是否有某處從HTML/JS的角度來看webview的完整指南?因爲大部分時間我偶然發現解決方案,在那裏需要調整android-app - 我想避免這種情況。

  • 我該如何使用JavaScript或正確的style.width分別確定我的設備的適應比例正確的圖像位置?

如果有人能向我解釋這個,我會非常高興!


PS:剛剛發現一個額外的bug:當我向左滾動一些元素到目前爲止,我到達了空白區域;然後點擊空白區域,它實際上打開了一個元素的鏈接,這是目前看不見的!但是我點擊的點將適合實際的位置,元素應該在正常的顯示位置。

我十分贊同這一O_O失去


編輯:我錯了這裏把wronk變量:這是我的滑項,這是不對的,而不是他們的offsetLeftsyle.width


使用@media可能是不可能的,因爲我的window.innerWidth在android上是1280px,在iOS上是1024。兩者都顯示我的slider-items爲300px的offsetWidthwidth屬性 - 但Android scrollLeft顯示爲155px,當我已經滾動了一張完整的圖片時,應該有300px的寬度 - 這就是問題所在。

回答

0

你有沒有試過玩WebView的初始規模?像這樣:webView.setInitialScale(100);

+0

這不是一個JS函數或一個有效的HTML參數 - 對嗎?我在編輯android-app時有點受限,因爲它是由其他人開發的,並不總是可用。但我不認爲webview在某種程度上被縮放 - 它被設計成一個非常簡單和簡單的容器。 – Jook

+0

'setInitialScale'是類'WebView'上的Java方法。您需要訪問應用程序源代碼才能調用它。一般來說,Android不鼓勵用戶指定像素尺寸,因爲根據屏幕分辨率的不同,結果在設備上會有所不同。查看[Android WebView文檔](http://developer.android.com/reference/android/webkit/WebView.html),第**節構建網頁以支持不同的屏幕密度**。有些東西可能與你的問題有關。 –