本申請(qǐng)涉及瀏覽器技術(shù)領(lǐng)域,尤其涉及網(wǎng)頁(yè)顯示方法及裝置。
背景技術(shù):
瀏覽器是電腦、手機(jī)和智能電視上實(shí)現(xiàn)網(wǎng)頁(yè)瀏覽等操作的主要工具。隨著硬件設(shè)備的更新?lián)Q代,瀏覽器越來(lái)越多地工作在高清晰大面積的顯示器上,屏幕的寬高比趨向于多樣化,同時(shí)多屏幕拼接的場(chǎng)景也越來(lái)越多。
當(dāng)屏幕寬度遠(yuǎn)大于網(wǎng)頁(yè)寬度時(shí),對(duì)于目前互聯(lián)網(wǎng)上的絕大部分網(wǎng)頁(yè),如果不放大顯示,其內(nèi)容只覆蓋在在屏幕的局部區(qū)域,留出大面積空白,帶來(lái)很多空間浪費(fèi)。雖然較新式網(wǎng)頁(yè)的設(shè)計(jì)會(huì)根據(jù)瀏覽器寬度和分辨率進(jìn)行適配,但是這種網(wǎng)頁(yè)自動(dòng)適配往往會(huì)使得網(wǎng)頁(yè)顯示無(wú)法達(dá)到最優(yōu)的觀看效果。
目前利用這種由于大面積高分辨率顯示器帶來(lái)的空間留白的技術(shù)主要是分屏顯示,但是目前的分屏顯示技術(shù)中各個(gè)窗口中顯示的內(nèi)容是各自獨(dú)立渲染的不同網(wǎng)頁(yè)。另一方面,相比于電腦和手機(jī),電視瀏覽器操控交互過(guò)程中對(duì)于滾動(dòng)條的拖動(dòng)相對(duì)不便利,通常希望盡量減少用戶對(duì)于滾動(dòng)條的操作,在屏幕上把一張網(wǎng)頁(yè)上的更多內(nèi)容一次性展示出來(lái)。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提供網(wǎng)頁(yè)顯示方法及裝置,以優(yōu)化網(wǎng)頁(yè)顯示效果。
本申請(qǐng)的技術(shù)方案是這樣實(shí)現(xiàn)的:
一種網(wǎng)頁(yè)顯示方法,該方法包括:
根據(jù)瀏覽器的視口寬度和原始網(wǎng)頁(yè)寬度,計(jì)算最佳分列顯示數(shù)量N;
根據(jù)最佳分列顯示數(shù)量N,計(jì)算分列視口的寬度和高度,其中,分列視口的寬度=瀏覽器的視口寬度/最佳分列顯示數(shù)量N,分列視口的高度=瀏覽器的視口高度*最佳分列顯示數(shù)量N;
根據(jù)分列視口的寬度和高度渲染網(wǎng)頁(yè);
將渲染網(wǎng)頁(yè)縱向分割成N段,并將該N段網(wǎng)頁(yè)依次橫向并列顯示在瀏覽器視口中。
所述計(jì)算最佳分列顯示數(shù)量N為:
最佳分列顯示數(shù)量N=瀏覽器的視口寬度/原始網(wǎng)頁(yè)寬度。
所述將渲染網(wǎng)頁(yè)縱向分割成N段之后、將該N段網(wǎng)頁(yè)依次橫向并列顯示在瀏覽器視口中之前進(jìn)一步包括:
對(duì)于任意兩個(gè)相鄰的分段網(wǎng)頁(yè),檢測(cè)該兩個(gè)分段網(wǎng)頁(yè)的分割線是否正位于一個(gè)網(wǎng)頁(yè)元素上,若是,將該分割線向上移動(dòng)d距離到該網(wǎng)頁(yè)元素上方的空白處,同時(shí),將后續(xù)相鄰分段網(wǎng)頁(yè)的分割線都向上移動(dòng)d距離。
所述將該N段網(wǎng)頁(yè)依次橫向并列顯示在瀏覽器視口中之后進(jìn)一步包括:
當(dāng)檢測(cè)到滾動(dòng)條被拖動(dòng)時(shí),根據(jù)拖動(dòng)軌跡,對(duì)各分段網(wǎng)頁(yè)進(jìn)行連續(xù)替換更新或者逐列替換更新。
所述對(duì)各分段網(wǎng)頁(yè)進(jìn)行逐列替換更新包括:
當(dāng)用戶拖動(dòng)滾動(dòng)條或者觸發(fā)與拖動(dòng)滾動(dòng)條等價(jià)的操作時(shí),根據(jù)拖動(dòng)方向和拖動(dòng)距離,將分列視口相對(duì)網(wǎng)頁(yè)內(nèi)容的位置向上或向下移動(dòng),每次移動(dòng)的步長(zhǎng)是瀏覽器視口的高度,觸發(fā)瀏覽器渲染引擎將新的網(wǎng)頁(yè)內(nèi)容渲染顯示到瀏覽器視口中。
所述將該N段網(wǎng)頁(yè)依次橫向并列顯示在瀏覽器視口中之后進(jìn)一步包括:
將操作在瀏覽器窗口上的位置轉(zhuǎn)換為在分列視口中的位置,根據(jù)在分列視口中的位置確定出在對(duì)應(yīng)網(wǎng)頁(yè)元素上的位置,根據(jù)所述在對(duì)應(yīng)網(wǎng)頁(yè)元素上的位置渲染操作。
所述計(jì)算最佳分列顯示數(shù)量N之后進(jìn)一步包括:
當(dāng)瀏覽器的視口寬度發(fā)生變化時(shí),根據(jù)新的瀏覽器視口寬度,重新計(jì)算最佳分列顯示數(shù)量;
或者,當(dāng)屏幕分辨率發(fā)生變化時(shí),計(jì)算新分辨率與原分辨率的比值,將當(dāng)前最佳分列顯示數(shù)量N與該比值相乘,得到新的最佳分列顯示數(shù)量N;
或者,當(dāng)網(wǎng)頁(yè)發(fā)生縮放時(shí),將當(dāng)前最佳分列顯示數(shù)量N除以縮放系數(shù),得到新的最佳分列顯示數(shù)量N。
一種網(wǎng)頁(yè)顯示裝置,包括:
分列顯示數(shù)量計(jì)算單元:根據(jù)瀏覽器的視口寬度和原始網(wǎng)頁(yè)寬度,計(jì)算最佳分列顯示數(shù)量N;
布局渲染適配單元:根據(jù)最佳分列顯示數(shù)量N,計(jì)算分列視口的寬度和高度,其中,分列視口的寬度=瀏覽器的視口寬度/最佳分列顯示數(shù)量N,分列視口的高度=瀏覽器的視口高度*最佳分列顯示數(shù)量N;
瀏覽器渲染引擎:根據(jù)布局渲染適配單元計(jì)算出的分列視口的寬度和高度渲染網(wǎng)頁(yè);將渲染網(wǎng)頁(yè)縱向分割成N段,并將該N段網(wǎng)頁(yè)依次橫向并列顯示在瀏覽器視口中。
所述分列顯示數(shù)量計(jì)算單元計(jì)算最佳分列顯示數(shù)量N為:
最佳分列顯示數(shù)量N=瀏覽器的視口寬度/原始網(wǎng)頁(yè)寬度。
所述布局渲染適配單元進(jìn)一步用于,
對(duì)于任意兩個(gè)相鄰的分段網(wǎng)頁(yè),檢測(cè)該兩個(gè)分段網(wǎng)頁(yè)的分割線是否正位于一個(gè)網(wǎng)頁(yè)元素上,若是,將該分割線向上移動(dòng)d距離到該網(wǎng)頁(yè)元素上方的空白處,同時(shí),將后續(xù)相鄰分段網(wǎng)頁(yè)的分割線都向上移動(dòng)d距離。
所述布局渲染適配單元進(jìn)一步用于,
當(dāng)檢測(cè)到滾動(dòng)條被拖動(dòng)時(shí),根據(jù)拖動(dòng)軌跡,調(diào)用所述瀏覽器渲染引擎對(duì)各分段網(wǎng)頁(yè)進(jìn)行連續(xù)替換更新或者逐列替換更新。
所述調(diào)用所述瀏覽器渲染引擎對(duì)各分段網(wǎng)頁(yè)進(jìn)行逐列替換更新包括:
當(dāng)用戶拖動(dòng)滾動(dòng)條或者觸發(fā)與拖動(dòng)滾動(dòng)條等價(jià)的操作時(shí),根據(jù)拖動(dòng)方向和拖動(dòng)距離,將分列視口相對(duì)網(wǎng)頁(yè)內(nèi)容的位置向上或向下移動(dòng),每次移動(dòng)的步長(zhǎng)是瀏覽器視口的高度,觸發(fā)瀏覽器渲染引擎將新的網(wǎng)頁(yè)內(nèi)容渲染顯示到瀏覽器視口中。
所述布局渲染適配單元進(jìn)一步用于,
將操作在瀏覽器窗口上的位置轉(zhuǎn)換為在分列視口中的位置,根據(jù)在分列視口中的位置確定出在對(duì)應(yīng)網(wǎng)頁(yè)元素上的位置;
所述瀏覽器渲染引擎進(jìn)一步用于,根據(jù)布局渲染適配單元計(jì)算出的所述在對(duì)應(yīng)網(wǎng)頁(yè)元素上的位置渲染操作。
所述分列顯示數(shù)量計(jì)算單元計(jì)算最佳分列顯示數(shù)量N之后進(jìn)一步包括:
當(dāng)瀏覽器的視口寬度發(fā)生變化時(shí),根據(jù)新的瀏覽器視口寬度重新計(jì)算最佳分列顯示數(shù)量;
或者,當(dāng)屏幕分辨率發(fā)生變化時(shí),計(jì)算新分辨率與原分辨率的比值,將當(dāng)前最佳分列顯示數(shù)量N與該比值相乘,得到新的最佳分列顯示數(shù)量N;
或者,當(dāng)網(wǎng)頁(yè)發(fā)生縮放時(shí),將當(dāng)前最佳分列顯示數(shù)量N除以縮放系數(shù),得到新的最佳分列顯示數(shù)量N。
可見(jiàn),本申請(qǐng)能夠根據(jù)瀏覽器的視口寬度,調(diào)整分列顯示數(shù)量,從而充分利用瀏覽器的可用顯示面積,針對(duì)同一網(wǎng)頁(yè),擴(kuò)大顯示區(qū)域同時(shí)又保持原有網(wǎng)頁(yè)的最佳顯示比例,增加一次性顯示內(nèi)容,減少了滾動(dòng)條操作。
附圖說(shuō)明
圖1為本申請(qǐng)一實(shí)施例提供的網(wǎng)頁(yè)顯示方法流程圖;
圖2為本申請(qǐng)另一實(shí)施例提供的網(wǎng)頁(yè)顯示方法流程圖;
圖3為本申請(qǐng)實(shí)施例提供的當(dāng)N=2時(shí),分列視口的寬度和高度的示意圖;
圖4為本申請(qǐng)實(shí)施例提供的當(dāng)N=2時(shí),瀏覽器分列顯示網(wǎng)頁(yè)的示意圖;
圖5為本申請(qǐng)實(shí)施例提供的當(dāng)分割線正位于一個(gè)網(wǎng)頁(yè)元素上時(shí),對(duì)分割線進(jìn)行調(diào)整的示意圖;
圖6為當(dāng)分割線正位于一個(gè)網(wǎng)頁(yè)元素上時(shí),若不調(diào)整分割線時(shí)的分列網(wǎng)頁(yè)顯示示意圖;
圖7為本申請(qǐng)實(shí)施例提供的當(dāng)分割線正位于一個(gè)網(wǎng)頁(yè)元素上時(shí),調(diào)整分割線后的分列網(wǎng)頁(yè)顯示示意圖;
圖8-1為用戶向下拖動(dòng)滾動(dòng)條前瀏覽器視口的顯示示意圖;
圖8-2為用戶向下拖動(dòng)滾動(dòng)條后,采用本申請(qǐng)實(shí)施例提供的連續(xù)替換更新方式時(shí)瀏覽器視口的顯示示意圖;
圖9-1為用戶向下拖動(dòng)滾動(dòng)條前瀏覽器視口的顯示示意圖;
圖9-2為用戶向下拖動(dòng)滾動(dòng)條后,采用本申請(qǐng)實(shí)施例提供的逐列替換更新方式時(shí)瀏覽器視口的顯示示意圖;
圖10為本申請(qǐng)實(shí)施例提供的網(wǎng)頁(yè)顯示裝置的組成示意圖。
具體實(shí)施方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說(shuō)明。
圖1為本申請(qǐng)一實(shí)施例提供的網(wǎng)頁(yè)顯示方法流程圖,其具體步驟如下:
步驟101:根據(jù)瀏覽器的視口寬度和原始網(wǎng)頁(yè)寬度,計(jì)算最佳分列顯示數(shù)量N。
具體地,最佳分列顯示數(shù)量N=瀏覽器的視口寬度/原始網(wǎng)頁(yè)寬度。
步驟102:根據(jù)最佳分列顯示數(shù)量N,計(jì)算分列視口的寬度和高度,其中,分列視口的寬度=瀏覽器的視口寬度/最佳分列顯示數(shù)量N,分列視口的高度=瀏覽器的視口高度*最佳分列顯示數(shù)量N。
步驟103:根據(jù)分列視口的寬度和高度渲染網(wǎng)頁(yè)。
步驟104:將渲染網(wǎng)頁(yè)縱向分割成N段,并將該N段網(wǎng)頁(yè)依次橫向并列顯示在瀏覽器視口中。
圖2為本申請(qǐng)另一實(shí)施例提供的網(wǎng)頁(yè)顯示方法流程圖,其具體步驟如下:
步驟201:設(shè)備的分列顯示數(shù)量計(jì)算單元檢測(cè)到用戶啟用了瀏覽器多列顯示功能,計(jì)算最佳分列顯示數(shù)量,將計(jì)算得到的最佳分列顯示數(shù)量發(fā)送給布局渲染適配單元。
設(shè)備包括:電腦、電視、移動(dòng)終端(如:手機(jī)等)。
具體地,計(jì)算最佳分列顯示數(shù)量可通過(guò)如下幾種方式:
方式一、若用戶配置了分列顯示數(shù)量,則直接將其作為最佳分列顯示數(shù)量。
方式二、若用戶未配置分列顯示數(shù)量,則根據(jù)預(yù)設(shè)的最佳分列顯示數(shù)量計(jì)算公式計(jì)算得到,例如:
最佳分列顯示數(shù)量N=瀏覽器的視口寬度/原始網(wǎng)頁(yè)寬度。
瀏覽器的視口寬度指的是,瀏覽器上可用于顯示網(wǎng)頁(yè)的那部分界面的總寬度;
原始網(wǎng)頁(yè)寬度指的是,原始網(wǎng)頁(yè)設(shè)計(jì)時(shí)設(shè)定的網(wǎng)頁(yè)寬度,可從網(wǎng)頁(yè)描述文檔中讀取到。
若上述公式的計(jì)算結(jié)果不為整數(shù),則進(jìn)一步進(jìn)行向上取整運(yùn)算,得到整數(shù)N。
步驟202:設(shè)備的布局渲染適配單元根據(jù)最佳分列顯示數(shù)量,計(jì)算分列視口的寬度和高度。
分列視口的寬度=瀏覽器的視口寬度/最佳分列顯示數(shù)量N,
分列視口的高度=瀏覽器的視口高度*最佳分列顯示數(shù)量N。
圖3給出了當(dāng)N=2時(shí),分列視口的寬度和高度的示意圖。
步驟203:設(shè)備的布局渲染適配單元將分列視口的寬度和高度發(fā)送給瀏覽器渲染引擎,瀏覽器渲染引擎根據(jù)分列視口的寬度和高度渲染網(wǎng)頁(yè)。
步驟204:瀏覽器渲染引擎在將網(wǎng)頁(yè)渲染結(jié)果與瀏覽器UI(User Interface,用戶接口)界面進(jìn)行合成時(shí),將網(wǎng)頁(yè)渲染結(jié)果縱向分割成N段,并將該N段網(wǎng)頁(yè)依次橫向并列顯示在瀏覽器視口中。
圖4為N=2時(shí),瀏覽器分列顯示網(wǎng)頁(yè)的示意圖。
其中,對(duì)于任意兩個(gè)相鄰的分段網(wǎng)頁(yè),布局渲染適配單元可進(jìn)一步檢測(cè)該兩個(gè)分段網(wǎng)頁(yè)的分割線是否正位于一個(gè)網(wǎng)頁(yè)元素上(例如:正位于一行文字或者一行圖片上),若是,則確定將該分割線向上移動(dòng)到該網(wǎng)頁(yè)元素上方的空白處所對(duì)應(yīng)的移動(dòng)距離d,將該移動(dòng)距離d發(fā)送給瀏覽器渲染引擎,瀏覽器渲染引擎根據(jù)該移動(dòng)距離d渲染網(wǎng)頁(yè),即,將當(dāng)前分割線及后續(xù)相鄰分段網(wǎng)頁(yè)的分割線都向上移動(dòng)距離d。
圖5給出了當(dāng)分割線正位于一個(gè)網(wǎng)頁(yè)元素上時(shí),對(duì)分割線進(jìn)行調(diào)整的示意圖。如圖5所示,分割線f1正好位于網(wǎng)頁(yè)元素X上,則將分割線f1向上調(diào)整d1到達(dá)空白處,后續(xù)的分割線f2、f3同時(shí)向上調(diào)整d1,但是分割線向上調(diào)整d1后,又正好位于網(wǎng)頁(yè)元素Y上,則將分割線f2再向上調(diào)整d2到達(dá)空白處,同時(shí)分割線f3再向上調(diào)整d2,此時(shí),分割線f1、f2、f3都不位于網(wǎng)頁(yè)元素上,則調(diào)整結(jié)束。
圖6給出了若不調(diào)整分割線時(shí)的分列網(wǎng)頁(yè)顯示示意圖,圖7給出了調(diào)整分割線后的分列網(wǎng)頁(yè)顯示示意圖。
特殊地,若兩個(gè)相鄰的分段網(wǎng)頁(yè)的分割線正處于一個(gè)網(wǎng)頁(yè)元素上,但該網(wǎng)頁(yè)元素的高度超出單列分段網(wǎng)頁(yè)的高度,則無(wú)需調(diào)整該分割線,因?yàn)樵谶@種情況下該網(wǎng)頁(yè)元素?zé)o法在單列分段網(wǎng)頁(yè)上完整顯示。
當(dāng)設(shè)備的布局渲染適配單元檢測(cè)到用戶拖動(dòng)滾動(dòng)條時(shí),根據(jù)用戶的拖動(dòng)軌跡,觸發(fā)瀏覽器渲染單元對(duì)網(wǎng)頁(yè)進(jìn)行連續(xù)替換更新或者逐列替換更新。
具體地,對(duì)網(wǎng)頁(yè)進(jìn)行連續(xù)替換更新指的是,當(dāng)用戶拖動(dòng)滾動(dòng)條或者觸發(fā)與拖動(dòng)滾動(dòng)條等價(jià)的操作時(shí),根據(jù)拖動(dòng)方向和拖動(dòng)距離,分列視口相對(duì)網(wǎng)頁(yè)內(nèi)容的位置向上或向下移動(dòng),觸發(fā)瀏覽器渲染引擎將新的網(wǎng)頁(yè)內(nèi)容渲染顯示到瀏覽器視口中。從瀏覽器使用者的角度來(lái)看,當(dāng)向下拖動(dòng)滾動(dòng)條或進(jìn)行等價(jià)操作時(shí),則瀏覽器視口中最左邊列網(wǎng)頁(yè)的部分內(nèi)容向上移出瀏覽器視口,其右邊列網(wǎng)頁(yè)中的部分內(nèi)容更新到最左邊列網(wǎng)頁(yè),右邊后續(xù)各列網(wǎng)頁(yè)依此更新;當(dāng)向上拖動(dòng)滾動(dòng)條或進(jìn)行等價(jià)操作時(shí),最右邊列網(wǎng)頁(yè)中的部分內(nèi)容移出瀏覽器視口,其左邊列網(wǎng)頁(yè)的部分內(nèi)容逐漸更新到最右邊列網(wǎng)頁(yè),左邊后續(xù)各列網(wǎng)頁(yè)依此更新。
圖8-1為用戶向下拖動(dòng)滾動(dòng)條前瀏覽器視口的顯示示意圖,此時(shí),共有三列網(wǎng)頁(yè),最左邊列網(wǎng)頁(yè)中包含了網(wǎng)頁(yè)元素a、b,中間列網(wǎng)頁(yè)中包含了網(wǎng)頁(yè)元素c、d,最右邊列網(wǎng)頁(yè)包含了網(wǎng)頁(yè)元素e、f。
圖8-2為用戶向下拖動(dòng)滾動(dòng)條后采用連續(xù)替換更新方式時(shí)瀏覽器視口的顯示示意圖,此時(shí),最左邊列網(wǎng)頁(yè)中的網(wǎng)頁(yè)元素a移出瀏覽器視口,中間列網(wǎng)頁(yè)中的網(wǎng)頁(yè)元素c移入最左邊列,最右邊列網(wǎng)頁(yè)中的網(wǎng)頁(yè)元素e移入中間列,后續(xù)新的網(wǎng)頁(yè)元素g更新到最右邊列。
對(duì)網(wǎng)頁(yè)進(jìn)行逐列替換更新指的是,當(dāng)用戶拖動(dòng)滾動(dòng)條或者觸發(fā)與拖動(dòng)滾動(dòng)條等價(jià)的操作時(shí),根據(jù)拖動(dòng)方向和拖動(dòng)距離,分列視口相對(duì)網(wǎng)頁(yè)內(nèi)容的位置向上或向下移動(dòng),每次移動(dòng)的步長(zhǎng)是瀏覽器視口的高度,觸發(fā)瀏覽器渲染引擎將新的網(wǎng)頁(yè)內(nèi)容渲染顯示到瀏覽器視口中,即每次至少有一列的網(wǎng)頁(yè)內(nèi)容更新出和更新入瀏覽器視口區(qū)域。從瀏覽器使用者的角度來(lái)看,如果是向下拖動(dòng)滾動(dòng)條或進(jìn)行等價(jià)操作時(shí),最左邊整列網(wǎng)頁(yè)內(nèi)容移出瀏覽器視口,其右邊列網(wǎng)頁(yè)內(nèi)容整體更新到最左邊列中,右邊后續(xù)各列網(wǎng)頁(yè)內(nèi)容依此更新;如果是向上拖動(dòng)滾動(dòng)條或進(jìn)行等價(jià)操作時(shí),最右邊列整列網(wǎng)頁(yè)內(nèi)容移出瀏覽器視口,其左邊列網(wǎng)頁(yè)內(nèi)容整體更新到最右邊列,左邊后續(xù)各列網(wǎng)頁(yè)內(nèi)容依此更新。
圖9-1為用戶向下拖動(dòng)滾動(dòng)條前瀏覽器視口的顯示示意圖,此時(shí),共有三列網(wǎng)頁(yè),最左邊列網(wǎng)頁(yè)中包含了網(wǎng)頁(yè)元素a、b,中間列網(wǎng)頁(yè)中包含了網(wǎng)頁(yè)元素c、d,最右邊列網(wǎng)頁(yè)包含了網(wǎng)頁(yè)元素e、f。
圖9-2為用戶向下拖動(dòng)滾動(dòng)條后采用逐列替換更新方式時(shí)瀏覽器視口的顯示示意圖,此時(shí),最左邊列網(wǎng)頁(yè)中的所有網(wǎng)頁(yè)元素a、b移出瀏覽器視口,中間列網(wǎng)頁(yè)中的所有網(wǎng)頁(yè)元素c、d移入最左邊列,最右邊列網(wǎng)頁(yè)中的所有網(wǎng)頁(yè)元素e、f移入中間列,后續(xù)新的網(wǎng)頁(yè)元素g、h更新到最右邊列。
在步驟204之后,對(duì)于用戶針對(duì)瀏覽器窗口上的鼠標(biāo)、觸控等操作,設(shè)備的布局渲染適配單元根據(jù)分列視口的寬度和高度,將操作在瀏覽器窗口上的位置轉(zhuǎn)換為在分列視口中的位置,并進(jìn)而確定出在對(duì)應(yīng)網(wǎng)頁(yè)元素上的位置,將在對(duì)應(yīng)網(wǎng)頁(yè)元素上的位置信息發(fā)送給瀏覽器渲染引擎,瀏覽器渲染引擎在對(duì)應(yīng)位置渲染鼠標(biāo)鼠標(biāo)、觸控等操作。
進(jìn)一步地,當(dāng)瀏覽器的視口寬度發(fā)生變化時(shí),返回步驟201重新計(jì)算最佳分列顯示數(shù)量。
在具體應(yīng)用中,在計(jì)算最佳分列顯示數(shù)量時(shí),可進(jìn)一步考慮到分辨率,具體地,可預(yù)先設(shè)置一個(gè)默認(rèn)分辨率,步驟201中,最佳分列顯示數(shù)量的計(jì)算公式可調(diào)整為:
最佳分列顯示數(shù)量N=(瀏覽器的視口寬度/原始網(wǎng)頁(yè)寬度)*(當(dāng)前分辨率/默認(rèn)分辨率),當(dāng)分辨率發(fā)生變化時(shí),返回步驟201根據(jù)該計(jì)算公式重新計(jì)算最佳分列顯示數(shù)量。
在具體應(yīng)用中,當(dāng)網(wǎng)頁(yè)放大或縮小時(shí),可返回步驟201重新計(jì)算最佳分列顯示數(shù)量,更新后的最佳分列顯示數(shù)量的計(jì)算公式為:
最佳分列顯示數(shù)量N=(瀏覽器的視口寬度/(原始網(wǎng)頁(yè)寬度*網(wǎng)頁(yè)縮放系數(shù))。網(wǎng)頁(yè)縮放系數(shù)即,當(dāng)網(wǎng)頁(yè)放大了m倍時(shí),則縮放系數(shù)為m,當(dāng)網(wǎng)頁(yè)縮小為原來(lái)的1/m時(shí),則縮放系數(shù)為1/m。
需要說(shuō)明的是,網(wǎng)頁(yè)的縮放可以是由用戶點(diǎn)擊放大/縮小按鈕觸發(fā)的,對(duì)于一些設(shè)備來(lái)說(shuō),其自身就支持根據(jù)用戶到顯示器的距離自動(dòng)進(jìn)行網(wǎng)頁(yè)的縮、放。在這兩種情況下,都會(huì)根據(jù)上述公式重新計(jì)算最佳分列顯示數(shù)量。
需要說(shuō)明的是,當(dāng)計(jì)算出了新的最佳分列顯示數(shù)量N時(shí),設(shè)備還可提醒用戶是否根據(jù)新的最佳分列顯示數(shù)量N進(jìn)行網(wǎng)頁(yè)的渲染合成,若用戶返回是,則根據(jù)新的最佳分列顯示數(shù)量N執(zhí)行步驟202~204;否則,不對(duì)網(wǎng)頁(yè)進(jìn)行調(diào)整。
本申請(qǐng)的有益技術(shù)效果如下:
1)能夠根據(jù)瀏覽器的視口寬度,調(diào)整分列顯示數(shù)量,從而充分利用瀏覽器的可用顯示面積,尤其是在瀏覽器的視口較寬時(shí);且,針對(duì)同一網(wǎng)頁(yè),擴(kuò)大顯示區(qū)域同時(shí)又保持原有網(wǎng)頁(yè)的最佳顯示比例,增加一次性顯示內(nèi)容,減少了滾動(dòng)條操作。
特別針對(duì)智能電視,其具有屏幕寬分辨率高的特點(diǎn),即使不進(jìn)行屏幕拼接也具有更寬大的顯示空間,同時(shí)使用電視遙控器進(jìn)行瀏覽器滾動(dòng)條操作比電腦流量和移動(dòng)瀏覽器更不便利,本申請(qǐng)充分使用瀏覽器顯示空間增加瀏覽器一次渲染顯示的內(nèi)容,減少了用戶的滾動(dòng)條操作,帶來(lái)了更佳的瀏覽體驗(yàn)。
圖10為本申請(qǐng)實(shí)施例提供的網(wǎng)頁(yè)顯示裝置的組成示意圖,其主要包括:
分列顯示數(shù)量計(jì)算單元101:根據(jù)瀏覽器的視口寬度和原始網(wǎng)頁(yè)寬度,計(jì)算最佳分列顯示數(shù)量N,將最佳分列顯示數(shù)量N發(fā)送給布局渲染適配單元102。
布局渲染適配單元102:根據(jù)分列顯示數(shù)量計(jì)算單元101發(fā)來(lái)的最佳分列顯示數(shù)量N,計(jì)算分列視口的寬度和高度,其中,分列視口的寬度=瀏覽器的視口寬度/最佳分列顯示數(shù)量N,分列視口的高度=瀏覽器的視口高度*最佳分列顯示數(shù)量N,將分列視口的寬度和高度發(fā)送給瀏覽器渲染引擎103。
瀏覽器渲染引擎:根據(jù)布局渲染適配單元102發(fā)來(lái)的分列視口的寬度和高度渲染網(wǎng)頁(yè);將渲染網(wǎng)頁(yè)縱向分割成N段,并將該N段網(wǎng)頁(yè)依次橫向并列顯示在瀏覽器視口中。
一實(shí)施例中,分列顯示數(shù)量計(jì)算單元101計(jì)算最佳分列顯示數(shù)量N為:
最佳分列顯示數(shù)量N=瀏覽器的視口寬度/原始網(wǎng)頁(yè)寬度。
一實(shí)施例中,布局渲染適配單元102進(jìn)一步用于,
對(duì)于任意兩個(gè)相鄰的分段網(wǎng)頁(yè),檢測(cè)該兩個(gè)分段網(wǎng)頁(yè)的分割線是否正位于一個(gè)網(wǎng)頁(yè)元素上,若是,將該分割線向上移動(dòng)d距離到該網(wǎng)頁(yè)元素上方的空白處,同時(shí),將后續(xù)相鄰分段網(wǎng)頁(yè)的分割線都向上移動(dòng)d距離。
一實(shí)施例中,布局渲染適配單元102進(jìn)一步用于,
當(dāng)檢測(cè)到滾動(dòng)條被拖動(dòng)時(shí),根據(jù)拖動(dòng)軌跡,調(diào)用瀏覽器渲染引擎103對(duì)各分段網(wǎng)頁(yè)進(jìn)行連續(xù)替換更新或者逐列替換更新。
一實(shí)施例中,布局渲染適配單元102調(diào)用瀏覽器渲染引擎103對(duì)各分段網(wǎng)頁(yè)進(jìn)行逐列替換更新包括:
當(dāng)用戶拖動(dòng)滾動(dòng)條或者觸發(fā)與拖動(dòng)滾動(dòng)條等價(jià)的操作時(shí),根據(jù)拖動(dòng)方向和拖動(dòng)距離,將分列視口相對(duì)網(wǎng)頁(yè)內(nèi)容的位置向上或向下移動(dòng),每次移動(dòng)的步長(zhǎng)是瀏覽器視口的高度,觸發(fā)瀏覽器渲染引擎將新的網(wǎng)頁(yè)內(nèi)容渲染顯示到瀏覽器視口中。
一實(shí)施例中,布局渲染適配單元102進(jìn)一步用于,
將操作在瀏覽器窗口上的位置轉(zhuǎn)換為在分列視口中的位置,根據(jù)在分列視口中的位置確定出在對(duì)應(yīng)網(wǎng)頁(yè)元素上的位置;
瀏覽器渲染引擎103進(jìn)一步用于,根據(jù)布局渲染適配單元102計(jì)算出的所述在對(duì)應(yīng)網(wǎng)頁(yè)元素上的位置渲染操作。
一實(shí)施例中,分列顯示數(shù)量計(jì)算單元101計(jì)算最佳分列顯示數(shù)量N之后進(jìn)一步包括:
當(dāng)瀏覽器的視口寬度發(fā)生變化時(shí),根據(jù)新的瀏覽器視口寬度重新計(jì)算最佳分列顯示數(shù)量;
或者,當(dāng)屏幕分辨率發(fā)生變化時(shí),計(jì)算新分辨率與原分辨率的比值,將當(dāng)前最佳分列顯示數(shù)量N與該比值相乘,得到新的最佳分列顯示數(shù)量N;
或者,當(dāng)網(wǎng)頁(yè)發(fā)生縮放時(shí),將當(dāng)前最佳分列顯示數(shù)量N除以縮放系數(shù),得到新的最佳分列顯示數(shù)量N。
以上所述僅為本申請(qǐng)的較佳實(shí)施例而已,并不用以限制本申請(qǐng),凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)保護(hù)的范圍之內(nèi)。