精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

移動應用中全屏模式要點研究

譯文
移動開發
移動應用中的用戶體驗是最重要的,在本文中,將給讀者講解在日新月異的對移動應用支持的相當優秀的瀏覽器中,如何實現豐富多彩的全屏效果。本文適合的閱讀對象為有一定移動HTML 5開發基礎的讀者。

移動應用中的用戶體驗是最重要的,在本文中,將給讀者講解在日新月異的對移動應用支持的相當優秀的瀏覽器中,如何實現豐富多彩的全屏效果。本文適合的閱讀對象為有一定移動HTML 5開發基礎的讀者。

目前,我們已經能夠實現多姿多彩的網站或網頁的全屏效果,并且已經有不少實現的方法。全屏效果的移動應用,給用戶更寬廣的界面視野,因為手機的屏幕一般都比較小,可以讓用戶十分方便地操作,特別在一些移動游戲中尤其如此。幸好現在各大移動瀏覽器都支持“安裝式”的web應用,其中大多用到了全屏效果。

下面我們來看下實現web應用全屏效果有什么方法:

隱藏地址欄

讀者能想到最簡單的方法,就是自動隱藏瀏覽器的地址欄,可以使用一段簡單的Javascript代碼:

  1. <script type="text/javascript"
  2.     addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); 
  3.     function hideURLbar(){ 
  4.               window.scrollTo(0,1); 
  5.     } 
  6. script> 

這個方法無疑是最簡單的,在頁面打開的時候來瀏覽器的地址欄被自動隱藏了。但可惜的是,這樣的方法并不是最標準的并且瀏覽器對其支持不大好。你可能不得不處理一些奇怪的問題和現象。比如當用戶在頁面需要來回導航的時候,偶然地址欄還是會在頁面中恢復其位置。所以有的時候,用戶對此感到惱怒。而且要注意只有當頁面內容的高度超過屏幕瀏覽器的高度的時候,才會自動隱藏地址欄,否則不會自動隱藏,如果內容比較少的時候,可以在滾動之前程序動態設置一下body的高度,增加如下代碼

  1.      . if(document.documentElement.scrollHeight <= document.documentElement.clientHeight) { 
  2.     bodyTag = document.getElementsByTagName('body')[0]; 
  3.     bodyTag.style.height = document.documentElement.clientWidth / screen.width * screen.height + 'px'
  4. •    

利用移動瀏覽器的全屏API特性

現在的移動瀏覽器中,大多支持全屏API,而且全屏API是HTML 5規范中的標準。但遺憾的是iOS不支持全屏API(IE 11才開始支持全屏API)。我們下面討論的是支持全屏API的Chrome for Android和FireFox。

在使用全屏API中,重點關注以下幾個API:

•     element.requestFullscreen()

 以全屏方式顯示元素(目前Chrome和Firefox都支持)

•    document.cancelFullscreen()

取消全屏模式(目前Chrome和Firefox都支持)

•    document.fullscreenElement

如果當前任何一個元素以全屏模式顯示,則返回true

要注意當應用在全屏模式下的時候,用戶不能使用原來瀏覽器的控件了,這將稍微改變用戶的體驗。他們不能使用前進和導航按鈕;他們唯一能用的按鈕就是刷新按鈕。因此開發者必須應對這種情況。可以在全屏模式下,使用CSS選擇器去改變樣式。下面看下如何用代碼實現全屏模式:

  1. <button id="goFS">Go fullscreen<button> 
  2. <script> 
  3.    var goFS = document.getElementById("goFS"); 
  4.    goFS.addEventListener("click", function() { 
  5.       document.body.requestFullScreen(); 
  6.    }, false); 
  7. </script> 

以上是全屏模式最簡單的用法了。Mozilla發布了一個很有用的腳本能很好地實現全屏模式,摘要相關代碼如下:

  1.  function toggleFullScreen() { 
  2. var doc = window.document; 
  3. var docEl = doc.documentElement; 
  4.  
  5. var requestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen; 
  6. var cancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen; 
  7.  
  8. if(!doc.fullscreenElement && !doc.mozFullScreenElement && !doc.webkitFullscreenElement) { 
  9.   requestFullScreen.call(docEl); 
  10. else { 
  11.   cancelFullScreen.call(doc); 

這段代碼的核心其實就是加上判斷不同的瀏覽器的類型而已。當然,如果開發者覺得使用起來依然不方便,可以嘗試使用 Screenfull.js這個小巧的和全屏相關的Javascript類庫,也是挺好用的。

如何啟動全屏API的應用

要在啟動一個頁面的時候,自動進入全屏模式是不可能的。其原因可能在于瀏覽器廠商可能也意識到不經過用戶允許而自動進入全屏模式,是十分不厚道的事情。因此,用戶如果要進入全屏模式,都必須由用戶主動確認。目前各主流的移動瀏覽器,都支持使用標簽和腳本等,實現啟動全屏API,分別介紹下:

iOS

在iPhone中,用戶可以將Web應用安裝到home主屏中去,并且讓它們以全屏方式啟動,代碼為;

  1. <meta name="apple-mobile-web-app-capable" content="yes"

如果content設置為yes,則表示啟動全屏模式,否則默認為否。

Chrome for Android

Chrome團隊最近實現了和iOS類似的機制,當用戶增加應用到主屏時,實現全屏模式,代碼為:

  1. <meta name="mobile-web-app-capable" content="yes"

Firefox OS

=在Firefox OS手機系統中,實現的機制稍微復雜。Firefox OS需要開發者編寫部署的文件,然后Firefox OS在應用部署的時候會進行自動解析并安裝為全屏應用,代碼片段:

  1.   "name""My App"
  2.   "description""My elevator pitch goes here"
  3.   "launch_path""/"
  4.   "icons": { 
  5.     "128""/img/icon-128.png" 
  6.   }, 
  7.   "fullscreen"true 

詳細的用法參考:https://developer.mozilla.org/en-US/Apps/Developing/Manifest#fullscreen

全屏API使用的技巧

如果想將body部分進行全屏化,則在基于Webkit或者blink引擎的瀏覽器中,會發現body部分會縮小到只能包含內容的區域,周圍會有黑色的縫隙(但Mozilla的Gecko不會有這個問題)。如下圖所示:

可以使用如下的方法去進行修復:

  1. document.documentElement.requestFullScreen(); 

其效果如下圖:

如何讓視頻變為全屏

下面講解如何將視頻進行全屏顯示,代碼如下:

  1. <video id=videoElement></video> 
  2. <button id="goFS">Go Fullscreen</button> 
  3. <script> 
  4.    var goFS = document.getElementById("goFS"); 
  5.    goFS.addEventListener("click", function() { 
  6.       var videoElement = document.getElementById("videoElement"); 
  7.       videoElement.requestFullScreen(); 
  8.    }, false); 
  9. </script> 

上面的方法并不是***的,***的方法是將視頻控件放在某個div中,并且為視頻控件設置屬性,這樣用戶才能很方便地使用視頻控件,代碼如下:

  1.  <div id="container"
  2.   <video><video> 
  3.   <div> 
  4.     <button>Play<button> 
  5.     <button>Stop<button> 
  6.     <button id="goFS">Go fullscreen<button> 
  7.   <div> 
  8. <div> 
  9. <script> 
  10.    var goFS = document.getElementById("goFS"); 
  11.    goFS.addEventListener("click", function() { 
  12.       var container = document.getElementById("container"); 
  13.       container.requestFullScreen(); 
  14.    }, false); 
  15. <script> 

甚至我們可以加點CSS控制樣式,如:

  1.  <style> 
  2. #goFS:full-screen #goFS { 
  3.   display: none; 
  4. #goFS:-webkit-full-screen #goFS { 
  5.   display: none; 
  6. #goFS:-moz-full-screen #goFS { 
  7.   display: none; 
  8. <style> 

全屏應用的設計注意事項

要注意的是,在iOS或者FireFox OS中的設備中是沒有物理的后退或刷新功能鍵的,因此必須確保用戶能在全屏模式下不會影響用戶的體驗,其中可以通過全屏相關的API去判斷用戶是否處于全屏模式中。

在iOS中的判斷方法如下:

  1.   if(window.navigator.standalone == true) { 
  2.         //應用已經安裝而且為全屏模式 

但在Chrome for Android中,document.fullscreenElement會返回null并且也不象Ios那樣能有window.navigator.standalone屬性,則可以使用如下的CSS代碼去顯示只有在全屏模式下才能顯示的元素。

  1.  selector:-webkit-full-screen { 
  2.   display: block; // 只在全屏模式下顯示 
  1. selector { 
  2.   display: none; // 不在全屏模式下隱藏元素 

而在Firefox OS中,用法基本是相同的,只是部分CSS代碼的拼寫有點不同,即:

  1. selector:-moz-full-screen { 
  2.   display: block; // hides the element when not in fullscreen mode 
  3.  
  4. selector { 
  5.   display: none; // hides the element when not in fullscreen mode 

讓用戶在全屏模式下操作要注意的

盡管全屏模式有這樣那樣的好處,但事實上各瀏覽器廠商也想了很多辦法能讓用戶隨時跳出全屏應用,因此是不可能實現同時在多個頁面中使用全屏的,因為:

1) 一旦使用window.location去改變url連接則會退出全屏模式

2) 用戶一旦點了外部鏈接,則會退出全屏模式

3) 使用navigator.pushState也會退出全屏模式

那么你可以考慮以下的兩個方法盡可能實現全屏模式:

1) 使用可安裝的web app去實現全屏效果

2) 盡可能使用#錨點的語法去在頁面間導航

讓用戶有選擇全屏方式的權利

千萬不要過分濫用全屏方式,而且盡量避免用戶一開始進入應用就馬上切換到全屏,模式。每當需要用到全屏方式前,應該要提醒用戶。當然瀏覽器也會

提醒用戶,比如在Firefox OS中,提醒的方式如下圖:

適當提醒用戶安裝你的應用

如果想通過安裝app的機制去提供全屏模式體驗,則必須考慮以下幾點:

•    在頁頭或頁腳使用足夠的信息提醒用戶可以安裝這個app

•    如果用戶取消了安裝提示,則不要再顯示,否則用戶會感到厭倦

•    用戶在***次訪問的時候,除非是特別喜愛你的應用提供的服務,否則是不會馬上安裝應用的。應該考慮在用戶使用足夠長的時間后才提示用戶是否安裝應用

•    如果發現你的用戶經常有規律地訪問你的應用,但并不安裝,則很大可能他們以后也不大愿意安裝了,這個時候不要老給出提示信息以打擾用戶。

小結

本文小結了目前主流移動瀏覽器中對全屏模式的主要支持情況,介紹了如何用多種方法支持移動應用的全屏模式,以及其中HTML 5中全屏模式主要API的使用。在移動應用中使用全屏API有利有弊,利在于可以讓用戶在使用移動應用的時候,有更足夠的視野空間操作,但弊端在于如果不給予用戶足夠提示的話,則有可能讓用戶在操作上感到迷茫,因此開發者必須十分留意。

責任編輯:張葉青 來源: 51CTO
相關推薦

2015-04-21 13:50:53

電信運營商移動互聯網應用開發

2012-01-03 19:09:42

移動應用

2014-08-21 13:43:26

移動互聯網租車應用研究報告

2013-01-06 16:03:18

Facebook移動廣告

2009-07-16 16:09:51

Swing全屏幕模式

2016-08-02 14:29:49

移動支付移動通訊移動金融

2010-07-29 14:58:49

Flex全屏模式

2011-05-02 11:32:24

Android應用商店

2011-03-23 08:34:43

設計應用

2011-04-21 09:46:41

設計模式

2011-06-02 18:02:50

iPhone MVC

2013-09-04 11:26:41

移動應用界面設計

2012-03-07 10:07:19

云計算云應用

2011-07-11 16:25:25

控制臺

2009-12-30 14:22:12

Silverlight

2012-03-09 14:19:12

企業移動應

2011-12-15 21:24:46

應用

2023-12-14 12:42:42

2015-05-21 18:14:44

2011-05-20 10:11:19

點贊
收藏

51CTO技術棧公眾號

欧美1区2区3| 欧美熟妇另类久久久久久不卡| 人人妻人人澡人人爽久久av| 国产一区久久| 国产午夜精品久久久| 激情五月亚洲色图| 91福利国产在线观看菠萝蜜| 雨宫琴音一区二区在线| 亚洲精品久久久久中文字幕欢迎你 | 亚洲视频在线观看免费视频| 欧美区国产区| 在线观看国产精品91| 亚欧美一区二区三区| 色偷偷偷在线视频播放| ...中文天堂在线一区| 国产伦精品一区二区| 小泽玛利亚一区二区三区视频| 综合一区在线| 亚洲美女偷拍久久| 久久99久久99精品蜜柚传媒| 92久久精品一区二区| 日韩图片一区| 久久成人精品一区二区三区| 在线观看高清免费视频| 国产蜜臀一区二区打屁股调教| 久久久久久久久久久久久夜| 成人免费91在线看| 亚洲一区二区视频在线播放| 国产精品嫩草99av在线| 欧美乱妇40p| 国产一二三av| 蜜桃一区二区| 日韩av一卡二卡| 中国特级黄色片| 综合久久2019| 中文字幕av一区二区三区免费看| 精品一区二区日本| 亚洲av无码一区二区三区dv| 男人操女人的视频在线观看欧美| 欧美中文在线字幕| 日产精品久久久久| 国产精品18hdxxxⅹ在线| 欧美日韩一级二级三级| 欧美极品欧美精品欧美图片| 岛国av在线网站| 91蜜桃网址入口| av在线不卡观看| 国产乱码精品一区二区| 日本视频中文字幕一区二区三区| 18久久久久久| 亚洲天堂日韩av| 在线播放亚洲| 久久青草精品视频免费观看| 九九热精品在线观看| 午夜欧美理论片| 美女国内精品自产拍在线播放| 日本r级电影在线观看| 草民电影神马电影一区二区| 欧美中文字幕亚洲一区二区va在线| 欧美牲交a欧美牲交aⅴ免费真| 九色porny视频在线观看| 香港成人在线视频| 欧美二区三区在线| 伊人久久中文字幕| 日韩电影一二三区| 国产精品嫩草影院一区二区| 中文人妻熟女乱又乱精品| 久久综合激情| 国产在线拍揄自揄视频不卡99 | 欧美性猛片xxxxx免费中国 | 欧美精品自拍偷拍动漫精品| 无颜之月在线看| 51xtv成人影院| 亚洲国产成人tv| 国产二区视频在线播放| 欧美美女日韩| 欧美日韩一二三区| 女王人厕视频2ⅴk| 大型av综合网站| 亚洲老司机av| 成人免费视频入口| 欧美日本一区| 欧美在线一级视频| 自拍偷拍色综合| 国产精品亚洲人在线观看| 国产精品免费一区二区三区四区| 天堂av中文字幕| 国产三级精品视频| 在线亚洲美日韩| av伦理在线| 欧美自拍偷拍一区| 中文字幕亚洲日本| 蜜臀av免费一区二区三区| 中文字幕亚洲欧美日韩在线不卡 | 国产精品一区二区三区av | aaa日本高清在线播放免费观看| 国产精品久久99| 女人帮男人橹视频播放| 精品欧美一区二区三区在线观看| 欧美丰满美乳xxx高潮www| 美女露出粉嫩尿囗让男人桶| 一区二区三区四区在线看 | 美女av在线免费看| 欧美日韩日本视频| 男人操女人免费软件| 国产原创一区| 亚洲国语精品自产拍在线观看| 永久免费毛片在线观看| 好吊日精品视频| 国产精品一区=区| 秋霞av鲁丝片一区二区| 国产精品人人做人人爽人人添| 无码 制服 丝袜 国产 另类| 国产欧美自拍| 国产视频亚洲视频| 久久久久久久久久网站| 日本网站在线观看一区二区三区| 国产精品久久久久久久久婷婷| 色网站免费在线观看| 亚洲精品午夜久久久| 热久久精品免费视频| 成人香蕉社区| 欧美另类高清videos| 中文字幕视频在线播放| 99re成人精品视频| bt天堂新版中文在线地址| 毛片在线看片| 一本大道久久a久久综合| 国产香蕉精品视频| 亚洲午夜精品一区 二区 三区| 国产91九色视频| 人妻少妇精品无码专区| 亚洲免费观看高清完整版在线观看熊| 日本999视频| 性人久久久久| 97人人爽人人喊人人模波多| 不卡视频在线播放| 国产精品久久777777| 99视频在线视频| 日本精品久久| 亚洲视频电影图片偷拍一区| 国产性猛交╳xxx乱大交| 成人性生交大片免费| 老司机激情视频| 国产精品1区| 日韩一区二区欧美| 久久久久久av无码免费网站| 欧美三级乱码| 亚洲japanese制服美女| 免费黄色网页在线观看| 欧美美女bb生活片| 18啪啪污污免费网站| 日韩av一区二区三区四区| 欧美日韩精品一区| 韩国美女久久| 国产亚洲欧美aaaa| www.99re7| 国产美女一区二区| 精品一区二区三区毛片| 亚洲精品大片| 欧美xxxx做受欧美| 亚洲男人天堂久久| 亚洲宅男天堂在线观看无病毒| 肉丝美足丝袜一区二区三区四| 亚洲中无吗在线| 成人三级在线| 精精国产xxxx视频在线野外| 日韩精品视频免费在线观看| 美女又爽又黄免费视频| 久久久精品免费网站| 成人中文字幕av| 久久中文字幕av一区二区不卡| 成人羞羞国产免费| 日本三级韩国三级欧美三级| 亚洲国产精品va在线观看黑人| 久久久久久久久久久久久久av| 久久久久久毛片| caoporn超碰97| 亚洲有吗中文字幕| 国产在线资源一区| 成人在线视频播放| 久久久精品国产亚洲| 好吊视频一区二区三区| 天天色图综合网| 91麻豆制片厂| 国产suv精品一区二区三区| 成人免费在线网| 欧美一区二区性| 成人激情直播| 日本肉肉一区| 久久久影视精品| 在线a免费看| 亚洲精品国偷自产在线99热 | 日韩精品久久久久久| 特级黄色录像片| 亚洲第一论坛sis| 91亚洲国产精品| 色老太综合网| 欧美国产日产韩国视频| 国产69精品久久app免费版| 五月综合激情网| 国产精品无码无卡无需播放器| 国产福利精品一区二区| 日韩无套无码精品| 欧美视频导航| 亚洲一区二区三区加勒比| 日本中文字幕在线一区| 91精品天堂| 91精品韩国| 国内精久久久久久久久久人| 日韩黄色影院| 国产亚洲xxx| 免费a视频在线观看| 在线成人免费观看| 日韩一级片中文字幕| 亚洲线精品一区二区三区| 免费黄色激情视频| 国产欧美日韩在线视频| 黄色性视频网站| 精品一区二区三区免费播放| 国产淫片免费看| 欧美在线三级| 尤物国产精品| 国产成人1区| 国产伦精品一区二区三区照片| 99在线视频影院| 久久99久国产精品黄毛片入口| 国产在线视频资源| 精品欧美乱码久久久久久| 一本色道久久综合亚洲| 欧美性猛交视频| 欧美人妻精品一区二区三区| 亚洲婷婷在线视频| 欧美特黄一区二区三区| 成人一区二区三区中文字幕| 极品人妻一区二区| 激情综合色丁香一区二区| 少妇高清精品毛片在线视频| 欧美午夜影院| 黄色网zhan| 日本a口亚洲| 亚洲国产欧美一区二区三区不卡| 窝窝社区一区二区| 国产超碰91| 国产精品国产| 国产精品毛片va一区二区三区| avtt久久| 国产+人+亚洲| 成人福利片网站| 俺去亚洲欧洲欧美日韩| 你懂的在线网址| 日韩毛片中文字幕| 色丁香婷婷综合久久| 亚洲精品动漫久久久久| 天天干,夜夜爽| 亚洲成色999久久网站| 神马午夜电影一区二区三区在线观看 | 激情久久久久久久久久久久久久久久| 久久精品视频91| 久久综合亚州| 热久久精品免费视频| 一区二区三区四区五区在线 | 91白丝在线| 欧美精品电影在线| 福利成人导航| 欧美一区二区大胆人体摄影专业网站| 国产激情在线播放| 992tv在线成人免费观看| 国产免费不卡| 国产精品6699| 久久麻豆视频| 成人免费看片网址| 国产成人澳门| 麻豆一区区三区四区产品精品蜜桃| 久久不见久久见中文字幕免费 | 日韩大胆视频| 亚洲色图欧美制服丝袜另类第一页| 成人jjav| 美乳少妇欧美精品| 欧美aaa免费| 国产精品福利在线观看| 男人天堂久久| 4444kk亚洲人成电影在线| 啪啪国产精品| 水蜜桃一区二区三区| 欧美hd在线| 国产免费黄色一级片| 香蕉久久夜色精品| 簧片在线免费看| 国产自产高清不卡| 日本美女视频网站| 久久久一区二区三区| 毛片视频免费播放| 亚洲综合一二三区| 天天综合网久久综合网| 在线观看亚洲专区| 黑人操亚洲女人| 亚洲人成亚洲人成在线观看| 在线免费观看黄| 91精品国产色综合久久不卡98口 | 成人免费观看在线| 美女网站久久| 波多野结衣免费观看| 99久久免费国产| 中文字幕第69页| 国产精品乱码久久久久久| 日韩精品成人在线| 欧美日韩国产高清一区| 精品国产99久久久久久宅男i| 亚洲欧美日本另类| 亚洲婷婷噜噜| 欧美一区二区影院| heyzo欧美激情| 亚洲高清视频在线观看| 欧美日韩国产免费观看| 天天色综合天天色| 99久久久国产精品| 黑人と日本人の交わりビデオ| 黑人巨大精品欧美一区二区免费| 亚洲天堂999| 亚洲精品国产免费| 色女人在线视频| 国产精品久久中文| 国产亚洲一卡2卡3卡4卡新区| 国产1区2区3区中文字幕| 蜜臀精品一区二区三区在线观看| 成人精品在线观看视频| 亚洲精品免费电影| 中文在线最新版天堂| 国产亚洲精品久久| 黄色视屏在线免费观看| 91精品免费| 欧美 日韩 国产 一区| 亚洲狼人综合干| 国产成人精品一区二区三区网站观看| 99国产精品免费| 色婷婷久久久久swag精品| 亚洲三级黄色片| 久久久久久久久久久91| 99re8精品视频在线观看| 亚洲欧美精品| 日韩av在线免费观看不卡| 亚洲中文字幕一区| 欧美日韩亚洲国产一区| 亚洲成人第一区| 最好看的2019年中文视频| 欧美艳星kaydenkross| 精品久久久久久中文字幕动漫 | 中文字幕av一区| 国产电影一区二区三区爱妃记| 久久久久久精| 亚洲黄色成人| 中文字幕天堂网| 亚洲成在人线在线播放| 午夜国产在线视频| 久久久久这里只有精品| 日韩欧美中文字幕一区二区三区| 国产内射老熟女aaaa| 国产一区不卡在线| 天天操天天摸天天舔| 在线不卡的av| 成人免费看片| 国产一区二区中文字幕免费看| 亚洲三级色网| 老熟妇精品一区二区三区| 欧美丝袜第一区| 久久久久久青草| 青青a在线精品免费观看| 日本一二区不卡| 伊人影院综合在线| 亚洲一区二区五区| 欧美少妇bbw| 欧美在线一区二区视频| 欧美疯狂party性派对| 久久久久xxxx| 偷拍与自拍一区| 你懂的视频在线观看| 国产精品黄页免费高清在线观看| 婷婷激情综合| 稀缺呦国内精品呦| 在线观看亚洲精品视频| 免费网站免费进入在线| 亚洲中国色老太| 小嫩嫩精品导航| 男女全黄做爰文章| 日韩午夜激情视频| 国产免费拔擦拔擦8x在线播放| 久久伊人一区| 国产伦精品一区二区三区免费| 久久精品久久精品久久| 亚洲精品电影网在线观看| 精品国模一区二区三区| 一区二区三区四区五区精品| 不卡一卡二卡三乱码免费网站| 最近免费中文字幕大全免费版视频| 亚洲欧美一区二区三区久久| 亚洲日本中文| 无码人妻丰满熟妇区96| 亚洲色图欧美在线| 天天躁日日躁狠狠躁伊人|