欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

android2.3平臺(tái)上web頁(yè)面(html5中使用frame)不能滑動(dòng)、不允許縮放的解決方法

admin
2014年2月8日 17:22 本文熱度 7930

問(wèn)題描述


web頁(yè)面采用html5技術(shù)實(shí)現(xiàn),在系統(tǒng)登錄頁(yè)面中使用frameset、frame來(lái)嵌套另一個(gè)頁(yè)面,結(jié)果當(dāng)android2.3移動(dòng)設(shè)備訪問(wèn)該頁(yè)面時(shí)觸摸屏不能上下滑動(dòng)頁(yè)面。


解決方法


1.首先將該頁(yè)面簡(jiǎn)單化,去掉frame相關(guān)標(biāo)簽,結(jié)果可以滑動(dòng)頁(yè)面,但是根據(jù)系統(tǒng)設(shè)計(jì)需要,frame相關(guān)標(biāo)簽不能去掉;


2.折騰很久未果,最后發(fā)現(xiàn)代碼里有viewport的注釋痕跡,于是嘗試使用html5的viewport,查找viewport的使用方法,并根據(jù)需要適當(dāng)修改其中的一些參數(shù)如下,結(jié)果很令人滿意,問(wèn)題解決了。


<meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />



viewport 語(yǔ)法介紹:




<!– html document –>

<meta name=”viewport”

content=”

height = [pixel_value | device-height] ,

width = [pixel_value | device-width ] ,

initial-scale = float_value ,

minimum-scale = float_value ,

maximum-scale = float_value ,

user-scalable = [yes | no] ,

target-densitydpi = [dpi_value | device-dpi | high-dpi | medium-dpi | low-dpi]


/>


target-densitydpi


—-一個(gè)屏幕像素密度是由屏幕分辨率決定的,通常定義為每英寸點(diǎn)的數(shù)量(dpi)。Android支持三種屏幕像素密度:低像素密度,中像素密度,高像素密度。一個(gè)低像素密度的屏幕每英寸上的像素點(diǎn)更少,而一個(gè)高像素密度的屏幕每英寸上的像素點(diǎn)更多。Android Browser和WebView默認(rèn)屏幕為中像素密度。


什么是Viewport



手機(jī)瀏覽器是把頁(yè)面放在一個(gè)虛擬的“窗口”(viewport)中,通常這個(gè)虛擬的“窗口”(viewport)比屏幕寬,這樣就不用把每個(gè)網(wǎng)頁(yè)擠到很小的窗口中(這樣會(huì)破壞沒(méi)有針對(duì)手機(jī)瀏覽器優(yōu)化的網(wǎng)頁(yè)的布局),用戶可以通過(guò)平移和縮放來(lái)看網(wǎng)頁(yè)的不同部分。移動(dòng)版的 Safari 瀏覽器最新引進(jìn)了 viewport 這個(gè) meta tag,讓網(wǎng)頁(yè)開(kāi)發(fā)者來(lái)控制 viewport 的大小和縮放,其他手機(jī)瀏覽器也基本支持。


關(guān)于viewport的一些問(wèn)題



viewport并非只是ios上的獨(dú)有屬性,在android、winphone上同樣也有viewport。它們要解決的問(wèn)題是相同的,即無(wú)視設(shè)備的真實(shí)分辨率,直接通過(guò)dpi,在物理尺寸和瀏覽器之間重設(shè)分辨率,這個(gè)分辨率和設(shè)備的分辨率無(wú)關(guān)。比如,你拿個(gè)3.5寸-320 * 480的iphone3 gs、3.5寸-640 * 960的iphone4或者9.7寸-1024*768的ipad2,雖然設(shè)備的分辨率不同,物理尺寸也不同,但你可以通過(guò)設(shè)置viewport讓它們?cè)跒g覽器里有相同的分辨率。比如說(shuō),你的網(wǎng)站是800px寬,你可以通過(guò)設(shè)置viewport的width=800,來(lái)讓你的網(wǎng)站在這三個(gè)不同的設(shè)備上都剛好滿屏顯示你的網(wǎng)站。



以上的知識(shí),相信每個(gè)對(duì)viewport稍有了解的同學(xué)應(yīng)該都已經(jīng)了解了。這不是我今天想說(shuō)的重點(diǎn)。我想說(shuō)明的是viewport在ios和android上的一些差異表現(xiàn)。



網(wǎng)上一搜關(guān)于viewport的知識(shí),基本上全都是如下信息:


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


這段代碼的意思是,讓viewport的寬度等于物理設(shè)備上的真實(shí)分辨率,不允許用戶縮放。一都主流的web app都是這么設(shè)置的,它的作用其實(shí)是故意舍棄viewport,不縮放頁(yè)面,這樣dpi肯定和設(shè)備上的真實(shí)分辨率是一樣的,不做任何縮放,網(wǎng)頁(yè)會(huì)因此顯得更高細(xì)膩。玩ps的同學(xué)應(yīng)該都知道,當(dāng)你將一張1000 * 1000的圖片直接縮放至500 * 500分變成什么樣,對(duì)吧?圖片的失真一定逃不掉。




但我要做的一個(gè)應(yīng)用卻恰恰相反,需要利用viewport,利用縮放。不論真實(shí)分辨率是多少,無(wú)論物理尺寸是多少,我都希望在瀏覽器里,能有統(tǒng)一的分辨率,同時(shí)也不允許用戶縮放。我用來(lái)測(cè)試的設(shè)備有:iphone4、ipad2、htc的g11、不知道什么廠商的aquos phone(android系統(tǒng))、華碩的android pad、dell的winphone然后我一路遇到了如下問(wèn)題:




1)如果不顯示地設(shè)置viewport,那么width的默認(rèn)為980。如果頁(yè)面的所有元素寬度都小于980,此時(shí)width為980,如果頁(yè)面最寬的位置超過(guò)980,那么width等于最大寬度。總之,默認(rèn)能將整個(gè)頁(yè)面從左到右顯示出來(lái)。如果設(shè)置了viewport,比如,只單純地設(shè)置了user-scalable=no,例如<meta name="viewport" content="user-scalable=no" />,那么ios下width還是按980顯示(即默認(rèn)就會(huì)通過(guò)dpi縮放),但android和winphone下卻不會(huì)再縮放了,瀏覽器分辨率和真實(shí)設(shè)置分辨率一致。




2)對(duì)于ios設(shè)備,設(shè)置width可以生效,但對(duì)于android,設(shè)置width并不會(huì)生效。ios設(shè)備,縮放的比率即dpi是通過(guò)你設(shè)置的width和設(shè)置真實(shí)分辨率自動(dòng)計(jì)算的,而android下你設(shè)置width無(wú)效,你能設(shè)置的是一個(gè)特殊的字段target-densitydpi,關(guān)于target-densitydpi可以參考一下這篇文章:http://hi.baidu.com/j_fo/blog/item/748361279ebccd18908f9d7d.html。也就是說(shuō),有三個(gè)變量:瀏覽器width、設(shè)備真實(shí)width、dpi。 我們簡(jiǎn)單地用個(gè)公式來(lái)表達(dá)它們之間的關(guān)系吧(并非真實(shí)關(guān)系,簡(jiǎn)單說(shuō)明用) 設(shè)備真實(shí)width * dpi = 瀏覽器width,這里的三個(gè)變量,設(shè)備真實(shí)width是個(gè)我們不能操作的已知值,另外兩個(gè)變量我們可以設(shè)置一個(gè)來(lái)影響另一個(gè),在ios中,我們能改的是瀏覽器width,dpi自動(dòng)生成,而在android中,我們能改的是dpi,瀏覽器width自動(dòng)生成。對(duì)于android,無(wú)論我們?nèi)绾卧O(shè)置width,也不會(huì)對(duì)瀏覽器width產(chǎn)生影響。



ps:這里我另外再說(shuō)一個(gè)奇怪的問(wèn)題:在htc的g11里(htc的手機(jī)我只有這一個(gè),別的沒(méi)有測(cè)),如果設(shè)置了dpi而不顯示地設(shè)置width,則user-scalable=no不生效,即是說(shuō):<meta name="viewport" content="target-densitydpi=300,user-scalable=no" />,無(wú)法阻止用戶縮放屏幕。我們需要顯示地設(shè)置一下width值,僅管這個(gè)值對(duì)android下的瀏覽器分辨屏并不產(chǎn)生任何影響(對(duì)ios還是會(huì)產(chǎn)生影響的),我們?nèi)匀灰O(shè)置它,而且這個(gè)值一定要大于320,如果小于等于320,也無(wú)法使user-scalable=no生效。這個(gè)問(wèn)題只在htc的g11手機(jī)上出現(xiàn),在aquos phone沒(méi)有這個(gè)問(wèn)題。兼容android真是件頭痛的事 @_@,未來(lái)還不知道有多少坑呢。而在winphone上,結(jié)果就更奇怪了:我給viewport的width設(shè)一個(gè)大于480的值,user-scalable=no就失效了,而設(shè)一個(gè)小于480的值,user-scalable=no能生效。但無(wú)論我給viewport的width設(shè)多少值,對(duì)winphone真正顯示的width卻并不產(chǎn)生我預(yù)期的影響,通過(guò)target-densitydpi也沒(méi)有影響。設(shè)置width,如果小于480的話,屏幕會(huì)縮放,但縮小的比例卻和我預(yù)期完全不一樣,我不知道它是按照什么規(guī)律縮放的。不知道這是winphone的問(wèn)題,還是dell實(shí)現(xiàn)的問(wèn)題。




3)這一條和上一條應(yīng)該是直接相關(guān)的:ios設(shè)備在橫豎屏?xí)r,會(huì)自動(dòng)調(diào)整dpi,無(wú)論橫屏還是豎屏,都能保證瀏覽器width等于viewport中設(shè)置的值,所以橫豎屏的時(shí)候,頁(yè)面里顯示的內(nèi)容的大小是會(huì)自動(dòng)縮放產(chǎn)生變化的。而android手機(jī)在橫豎屏的時(shí)候,不會(huì)改變dpi,在橫豎屏的時(shí)候,網(wǎng)頁(yè)不會(huì)產(chǎn)生縮放。也正因此,ios可以保證橫豎屏頁(yè)面都不會(huì)產(chǎn)生滾動(dòng)條,滿屏顯示,而android卻無(wú)法保證這一點(diǎn),橫著滿屏則豎著無(wú)法滿屏,反之亦然。




4)對(duì)于ios設(shè)備,如果width顯示定義了,而頁(yè)面最寬的位置超過(guò)width的話,width無(wú)效,仍按最寬的寬度來(lái)顯示(不會(huì)有滾動(dòng)條)。但此時(shí)會(huì)出現(xiàn)一個(gè)很奇怪的問(wèn)題,當(dāng)你將手機(jī)橫豎屏切換幾次之后,會(huì)發(fā)現(xiàn)你的頁(yè)面自動(dòng)放大了,出現(xiàn)了滾動(dòng)條,但其實(shí)放大后的寬度其實(shí)和你設(shè)的width也并沒(méi)有關(guān)系。為了防止這種情況出現(xiàn),你需要將width的寬度設(shè)置得比頁(yè)面最寬的地方更大,或者相同。


該文章在 2014/2/8 17:22:23 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved