最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iframe在移動端的縮放的示例代碼

  發(fā)布時間:2018-10-12 15:36:10   作者:dulmcat   我要評論
這篇文章主要介紹了iframe在移動端的縮放的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

工作中碰到個奇怪的問題,折騰了大半天,終于算是解決了,這里把分析思路和解決辦法記錄下。

項目是做響應(yīng)式的公司官網(wǎng),前期的靜態(tài)圖頁面切完后就提交給后臺作為模板使用了,我也就基本退出項目。

在后端落地時發(fā)現(xiàn)在在移動端頁面顯示不太對勁,顯得很模糊。第一想法是meta的頭部被覆蓋了,查看源代碼果然發(fā)現(xiàn)是被覆蓋了。

這是我習慣用的meta頭部,使頁面寬度根據(jù)設(shè)備寬度自適應(yīng)變化

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

可是后端落地的框架是按模板直接引入的,有部分的公共資源竟然也包含了設(shè)置viewport的meta。后端引入的是這個樣子的:

<meta name="viewport" id="viewport" content="width=640px, user-scalable=no">

這一頭部是被一段不得不被加入的js文件所append進入的,而且被明確告知,該js文件不可以被修改!所以這一設(shè)置寬度為固定640px的將我原本設(shè)置隨設(shè)備寬度變化的meta覆蓋了!

問題就來了,靜態(tài)頁面已經(jīng)完成,且由于歷史代碼因素,有相當部分的代碼在當初并沒有使用rem單位,已經(jīng)無法大規(guī)模修改css效果了。只有通過js重置設(shè)置viewport寬度再次進行覆蓋了......這倒是挺簡單的,無非就是代碼相當?shù)某舐选?/p>

但又一個問題來了,這個官網(wǎng)頁面還動態(tài)引入了iframe頁面,這些iframe頁面是固定的640px寬度。這就很崩潰了!我加了隨設(shè)備寬度變化的mata,那么這些iframe就不能看了;我不再次加meta,那么官網(wǎng)本身就不能看了!

好在這些iframe是通過統(tǒng)一的方法引入,雖然不能更改引入方法的js文件,但在業(yè)務(wù)代碼中再次監(jiān)聽倒也還可以。所以再次這個綁定點擊事件,判斷iframe是否被引入后,就是使用某些特殊方法的時候了!

css3有個transform: scale()的方法,可以對元素進行縮放,雖然真正占位的寬高并沒有變化,但在顯示效果上還是不錯的。

通過計算縮放比例 = 設(shè)備寬度 / 640 可以得出對應(yīng)的縮放比例,再對引入的iframe設(shè)置transform: scale(縮放比例)就可以實現(xiàn)漂亮的縮放了!

事情到這里就結(jié)束了嗎?不!還沒有!iframe是縮放了,可高度也被縮放了,內(nèi)容顯示不完整了。這里設(shè)置height: 設(shè)備高度 / 縮放比例可以還原原本的iframe高度。

以為結(jié)束了?并沒有!還有問題存在!iframe層被scale()屬性縮放后,默認的向下和向右也移動了一段距離,這是因為scale()默認是按中心進行縮放的!這里花了大量時間去尋找合適的方法解決,比如負margin、translate()等,但是由于難以計算合適的移動比例系數(shù),恕本人算法辣雞,這一方法嘗試很久終于決定還是放棄......

翻看css手冊發(fā)現(xiàn)了一個熟悉又陌生的屬性
設(shè)置旋轉(zhuǎn)元素的基點位置:

transform-origin: x-axis y-axis z-axis;

它有3個屬性值,分別代表定義視圖被置于X、Y、Z軸的何處。

他鄉(xiāng)遇故知,久旱逢甘霖!要的就是你啊!設(shè)置transform-origin: 0 top 0 解決~

其實吧,這個屬性很早就被用到了,只不過我最開始寫的是縮寫transform-origin: 0,被瀏覽器解析之后的就是transform-origin: 0 center 0......當時的感受就是左右解決了,一直想的都是把iframe移上去,殊不知人家自帶這樣的功能,只不過被我忽略了。學習還是不能囫圇吞棗啊,一個屬性竟然可以浪費半天的時間,我大概不是個合格的前端......(逃

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • HTML5實現(xiàn)的移動端購物車自動結(jié)算功能示例代碼

    本文介紹HTML5實現(xiàn)移動端購物車自動結(jié)算,通過WebStorage、事件監(jiān)聽、DOM操作等技術(shù),確保實時更新與數(shù)據(jù)同步,優(yōu)化性能及無障礙性,提升用戶體驗,感興趣的朋友一起看看吧
    2025-06-18
  • HTML5 中的<button>標簽用法和特征

    在HTML5中,<button>標簽用于定義一個可點擊的按鈕,它是創(chuàng)建交互式網(wǎng)頁的重要元素之一,本文將深入解析HTML5中的<button>標簽,詳細介紹其屬性、樣式以及實際
    2025-06-18
  • 基于 HTML5 Canvas 實現(xiàn)圖片旋轉(zhuǎn)與下載功能(完整代碼展示)

    本文將深入剖析一段基于 HTML5 Canvas 的代碼,該代碼實現(xiàn)了圖片的旋轉(zhuǎn)(90 度和 180 度)以及旋轉(zhuǎn)后圖片的下載功能,通過對代碼的解讀,我們可以學習到如何利用 Canvas API
    2025-06-18
  • HTML5 getUserMedia API網(wǎng)頁錄音實現(xiàn)指南示例小結(jié)

    本教程將指導你如何利用這一API,結(jié)合Web Audio API,實現(xiàn)網(wǎng)頁錄音功能,從獲取音頻流到處理和保存錄音,整個過程將逐步詳解,此外,還討論了getUserMedia API的使用限制和最
    2025-06-16
  • HTML5 搜索框Search Box詳解

    HTML5的搜索框是一個強大的工具,能夠有效提升用戶體驗,通過結(jié)合自動補全功能和適當?shù)臉邮?,可以?chuàng)建出既美觀又實用的搜索界面,這篇文章給大家介紹HTML5 搜索框Search Box
    2025-06-13
  • 全面解析HTML5中Checkbox標簽

    Checkbox是HTML5中非常重要的表單元素之一,通過合理使用其屬性和樣式自定義方法,可以為用戶提供豐富多樣的交互體驗,這篇文章給大家介紹HTML5中Checkbox標簽的深入全面解
    2025-06-13
  • HTML5無插件拖拽圖片上傳功能實現(xiàn)過程

    本實例展示了一種基于HTML5技術(shù)的圖片上傳功能,無需外部插件即可通過拖放圖片實現(xiàn)上傳,涉及到HTML5的拖放API和File API,以及使用CSS來增強用戶界面的交互性和視覺反饋,
    2025-05-16
  • HTML5 定位大全之相對定位、絕對定位和固定定位

    在HTML5和CSS中,定位(positioning)是控制元素在頁面上位置的重要機制,主要有四種定位方式:靜態(tài)定位(static)、相對定位(relative)、絕對定位(absolute)和固定定位(fixed),
    2025-05-13
  • HTML5中的Microdata與歷史記錄管理詳解

    Microdata作為HTML5新增的一個特性,它允許開發(fā)者在HTML文檔中添加更多的語義信息,以便于搜索引擎和瀏覽器更好地理解頁面內(nèi)容,本文將探討HTML5中Microdata的使用方法以及
    2025-04-21
  • HTML5表格語法格式詳解

    在HTML語法中,表格主要通過< table >、< tr >和< td >3個標簽構(gòu)成,本文通過實例代碼講解HTML5表格語法格式,感興趣的朋友一起看看吧
    2025-04-21

最新評論

汉沽区| 西乌| 中西区| 板桥市| 来安县| 五常市| 正镶白旗| 乾安县| 吴江市| 闻喜县| 昌都县| 资兴市| 宣武区| 获嘉县| 兰西县| 南漳县| 斗六市| 安多县| 民和| 临沭县| 郧西县| 噶尔县| 雷山县| 阿尔山市| 遂溪县| 城口县| 西城区| 洪泽县| 乌拉特后旗| 马公市| 两当县| 滦南县| 云阳县| 上饶县| 安阳县| 鄂托克旗| 上犹县| 新郑市| 苍溪县| 安溪县| 浪卡子县|