日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于移动端的一些tip

發布時間:2023/12/10 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于移动端的一些tip 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

移動端的一些tip

開發相關

關于viewport

<meta name="viewport" content="name=value,name=value"> // 指令 每對鍵值對都是一個指令,(ppk 大神的叫法)以下總計共有6對: width設置layout viewport的寬度(css px) initial-scale 設置頁面的初始縮放比例同時可以設置layout viewport的寬度 minimum-scale設置最小縮放比例(指用戶能夠縮小到多小) maximum-scale設置最大縮放比例(指用戶能夠放大到多大) height設置layout viewport的高度,但暫時不怎么被支持 user-scalable設置是否允許用戶放大縮小。

當我們的網頁不使用viewport的時候網頁在移動端顯示的時候基本上看不清楚字體,為什么呢?因為我們將960px(當我們不做設置的時候viewport會自動的把我們的html給規定成980px)的內容壓縮到320dpx(非css單位,在移動端中1px帶至一個最小顯示單位,一屏就是320px)。

解決方案

通過上述的例子我們知道基本上 viewport 的默認寬度是980px,且瀏覽器會將者 viewport 大小的 html 文檔塞進有限的設備寬度內(瀏覽器會動態計算文檔的布局及內容),所以我們看到的東西都很小。
那么我們想要清除的看清文檔內的內容怎么辦 ,沒錯,縮小 viewport 的大小,什么原理?
當我們縮小 viewport 的寬度的時候文檔的寬度也對應的被縮小,即一樣的設備寬度,我顯示的東西少了(這時候瀏覽器重新計算文檔布局及內容)可以看到的結果是字體被放大了,內容都被放大了!

詳細解釋
  • [x] width
    可以用width來設置viewport的寬度,以替代那些不合適的默認寬度。我們可以給其設定一個固定大小,但設定成device-width更加明智一些,這樣我們可以兼容不同大小的屏幕。采用了之后就是我們上面所說的效果,雖然是顯示的東西變少了但是我的字體變大了!
  • [x] initial-scale
    在移動設備上,用戶有時會縮放,當頁面縮放時,viweport的像素尺寸也會響應的改變,單css尺寸不會變。

    比如,在一個400px寬的Viewport中有一個元素,設定width: 100px;,這時該元素就橫跨了1/4的屏幕。如果用戶把頁面放大到兩倍大小,這時Viewport寬度變成了200px,但元素仍然寬100個CSS像素。這時這個元素就占了半個屏幕了。

滾動方式

頁面的滾動位置分為兩種,一種是滾動body,另一種固定body的高度為100%,在main中滾動。

  • 滾動body:頁面的地址會隨著body的滾動隱藏起來,并且在android設備中,滾動body會更加的流暢。(把body設置為overflow就行了)這種情況比較適合長列表頁面,整個頁面除了herder和footer之外都需要滾動,但很多時候我們只希望頁面的某個元素滾動,這個時候就采取第二種布局方式。
  • body高度設置為100%:這種方法有許多種實現方式
    • [x] fixed定位 -- 頭部尾部都設置為fixed定位
    • [x] absolute定位
    • [x] flex定位
    這里面也存在一些需要注意的地方,在移動端,如果fixed定位結點后面緊接著跟著興地結點是可滾動的(也就是設置了overflow為true),那么fixed結點會被其后的兄弟結點遮住

fixed 與 input

在移動端開發中,在有input元素的標簽頁中使用fixed定位時會出現一些問題。 在ios上,當點擊input標簽獲取焦點喚起軟鍵盤的時候fixed定位會暫時失效,或者理解為變為了absolute定位,在含有滾動的頁面會和其他結點一起滾動。所以在含有input元素的頁面中使用absolute更好。

compositionstart和compositionend事件

在開發中我們經常要對表單元素進行輸入限制,比如特殊的字符(也有xss的防范功能),我們會監聽input事件。但是,在ios中input事件會截斷非直接輸入,比如:輸入[焦貴彬]中間過程中會輸入拼音,每次輸入一個字母都會觸發input事件,然而在沒有點擊選定按鈕之前都會截斷,也就是會觸發很多次。這時候就需要我們說的兩個事件。

compositionstart 事件在用戶開始進行非直接輸入的時候觸發,而在非直接輸入結束,也即用戶點選候選詞或者點擊「選定」按鈕之后,會觸發 compositionend 事件。

關于性能

使用css3動畫,開啟硬件加速(存在需要注意的地方)

css3動畫會新建一個圖層,另外部分css3動畫會調用GPU,得到性能上的提升.

觸發
  • 3d 透視或視圖變換(perspective transform)css屬性
  • 使用加速視頻解碼的元素
  • 擁有3d(webGL)上下文或2d上下文的元素(carvers)
  • 混合插件(如flash)
  • 對自己的opacity做css動畫或使用一個動畫webkit變換元素
  • 擁有加速 CSS 過濾器的元素
  • 元素有一個包含復合層的后代節點(換句話說,就是一個元素擁有一個子元素,該子元素在自己的層里)
  • 元素有一個 ** z-index ** 較低且包含一個復合層的兄弟元素(換句話說就是該元素在復合層上面渲染)

上面有提到需要注意一些地方,就是他會將后面的一些不需要新建圖層的元素新建圖層,使性能不僅沒有提升反而出現了一些隱患!

如何來看到css3動畫新建的圖層

在chrome 中選擇open drawer(版本不同會不一樣,有些版本下直接在控制臺的設置中 more tools --> rednering)選擇rendering,然后選擇打開layer boerders ,現在在我們的瀏覽器上就可以看到一些黃色的框框,這個就是我們所謂的復合層,表示被放到了一個新的圖層中渲染。

隱患

注意觸發新建圖層的最后一條,它的意思是如果有一個元素,它的兄弟元素復合層中渲染,而這個兄弟元素的z-index較小,那么這個元素(不管是否應用了硬件式加速)也會被放到復合層中,那么瀏覽器很有可能給復合層之后的所有相對或絕對定位的元素都創建一個復合層來渲染,于是就有了這樣的情形-- 頁面上很多元素都啟用了GPU加速,反而導致了頁面非常的卡頓

解決方案

  • 在啟用css3動畫的元素上增加position:relative和z-index:1,這種做法的原理是認為提升動畫元素的z-index,讓瀏覽器知道這個元素的層序,就不會很傻逼的把其他z-index比他高的元素耶弄到復合層中了
  • 上面說了一些需要注意的地方,但是總體來說我們還是會采用一些css3的動畫去調用GPU,比如translate-Z:0;可是此時我們并不是要旋轉,這是一種欺騙瀏覽器的行為。此時我們可以關注一下will-change
    ```
    /* 關鍵字值 /
    will-change: auto;
    will-change: scroll-position; // 告知瀏覽器會有滾動
    will-change: contents; // 告知瀏覽器內容或動畫變化了
    will-change: transform; / 示例 /
    will-change: opacity; / 示例 /
    will-change: left, top; / 兩個示例 */

    /* 全局值 */
    will-change: inherit;
    will-change: initial;
    will-change: unset;
    ```

適當的使用touch事件代替click事件

  • touch事件觸發的流程:touchstart -> touchmove -> touchend -> click
  • 觸發時機:click在dom上手指觸摸開始,且手指未曾在屏幕上移動(某些瀏覽器允許移動一個非常小的值)且在這個在這個dom上手指離開屏幕,且觸摸和離開屏幕之間的間隔時間較短才能觸發。

減少媒體查詢

如果使用的是rem的單位(相當于根元素的字體大小來縮放)因為這樣有兩個明顯的缺點 1.適配屏幕的尺寸不是連續的 2. 在自己的css文件中添加打斷的這樣查詢代碼。增加了css文件的體積。

  • 參考淘寶的移動端的頁面適配規則,使用js獲取客戶端的寬度,根據設計稿原型動態計算計算font-size的值

other

  • 避免使用css漸變陰影效果
  • 不濫用Web字體
    Web字體需要下載,解析,重繪當前頁面,盡量減少使用。

參考

  • 餓了么前端
  • 張鑫旭博客

轉載于:https://www.cnblogs.com/nanshanlaoyao/p/6675569.html

總結

以上是生活随笔為你收集整理的关于移动端的一些tip的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男女视频在线观看免费 | 女人性高潮视频 | 欧美xxxx83d | 精品久久久久久久 | 天天曰天天射 | 嫩草研究院在线 | 亚洲国产精品成人综合色在线婷婷 | 毛片网站在线播放 | 午夜爽爽视频 | 蜜桃视频污| 538在线精品 | 国产手机看片 | 国产精品2019 | 日日射av | 少妇久久久久久 | 亚洲精选久久久 | 色999在线观看 | 国产丰满美女做爰 | 国产又粗又硬 | 免费的理伦片在线播放 | 最新中文字幕第一页 | 91黄色免费看 | 久久国产精品久久国产精品 | 亚洲另类春色 | 轮番上阵免费观看在线电影 | 日韩欧美视频免费观看 | 成年人三级网站 | 精品人妻一区二区三区潮喷在线 | 国产国产乱老熟女视频网站97 | 韩日av在线| 玖玖国产 | 不卡一区二区在线观看 | 黄色99| 50部乳奶水在线播放 | 久久妇女 | 乱人伦xxxx国语对白 | 乌克兰极品av女神 | 色播视频在线 | 欧美精品色 | 国产免费播放 | 亚洲图片在线 | 国产自产21区 | 91精品一区二区三区综合在线爱 | aa一级视频 | 超碰免费公开在线 | 日韩黄色片子 | 一本色道av| 女人久久久久 | 欧美做受 | 亚洲国产日韩精品 | 最新黄网 | 欧美性猛交xxxⅹ富婆 | 国产成人在线一区二区 | 伊人久久精品 | 久久中文一区 | 亚洲国产精品无码久久久久高潮 | 久久精彩视频 | 亚洲精品一区二区三区四区乱码 | 99在线精品视频免费观看软件 | 制服丝袜第二页 | 免费看国产曰批40分钟粉红裤头 | 在线看污视频 | 欧美激情第五页 | 亚洲欧洲国产日韩 | 亚洲av首页在线 | 久久这里只有精品国产 | 国产高清一区二区三区 | 超碰在线9| av在线播放器 | 亚洲美女自拍偷拍 | 献给魔王伊伏洛基亚吧动漫在线观看 | 巨茎人妖videos另类 | 午夜成年人视频 | 国产无码日韩精品 | 日韩最新 | 伊人网综合视频 | www.欧美色 | 国产精品.com | 免费午夜影院 | 精品少妇人妻av免费久久洗澡 | 自拍偷在线精品自拍偷无码专区 | 国产视频三区 | 风韵少妇性饥渴推油按摩视频 | 99精品视频播放 | 屁屁影院国产第一页 | 久操新在线| 一道本在线观看视频 | 中文在线最新版天堂 | 亚洲少妇xxx| 精品+无码+在线观看 | 亚洲第一精品在线 | 日本老熟妇毛茸茸 | 奴色虐av一区二区三区 | 国产永久精品大片wwwapp | 天天舔天天 | 久久伊人亚洲 | 丰满人妻中伦妇伦精品app | 麻豆短视频在线观看 | 久久亚洲精品石原莉奈 |