工作中碰到个奇怪的问题,折腾了大半天,终于算是解决了,这里把分析思路和解决办法记录下。
项目是做响应式的公司官网,前期的静态图页面切完后就提交给后台作为模板使用了,我也就基本退出项目。
在后端落地时发现在在移动端页面显示不太对劲,显得很模糊。第一想法是meta的头部被覆盖了,查看源代码果然发现是被覆盖了。
这是我习惯用的meta头部,使页面宽度根据设备宽度自适应变化
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
可是后端落地的框架是按模板直接引入的,有部分的公共资源竟然也包含了设置viewport的meta。后端引入的是这个样子的:
<meta name="viewport" id="viewport" content="width=640px, user-scalable=no">
这一头部是被一段不得不被加入的js文件所append进入的,而且被明确告知,该js文件不可以被修改!所以这一设置宽度为固定640px的将我原本设置随设备宽度变化的meta覆盖了!
问题就来了,静态页面已经完成,且由于历史代码因素,有相当部分的代码在当初并没有使用rem单位,已经无法大规模修改css效果了。只有通过js重置设置viewport宽度再次进行覆盖了......这倒是挺简单的,无非就是代码相当的丑陋而已。
但又一个问题来了,这个官网页面还动态引入了iframe页面,这些iframe页面是固定的640px宽度。这就很崩溃了!我加了随设备宽度变化的mata,那么这些iframe就不能看了;我不再次加meta,那么官网本身就不能看了!
好在这些iframe是通过统一的方法引入,虽然不能更改引入方法的js文件,但在业务代码中再次监听倒也还可以。所以再次这个绑定点击事件,判断iframe是否被引入后,就是使用某些特殊方法的时候了!
css3有个transform: scale()
的方法,可以对元素进行缩放,虽然真正占位的宽高并没有变化,但在显示效果上还是不错的。
通过计算缩放比例 = 设备宽度 / 640
可以得出对应的缩放比例,再对引入的iframe设置transform: scale(缩放比例)
就可以实现漂亮的缩放了!
事情到这里就结束了吗?不!还没有!iframe是缩放了,可高度也被缩放了,内容显示不完整了。这里设置height: 设备高度 / 缩放比例
可以还原原本的iframe高度。
以为结束了?并没有!还有问题存在!iframe层被scale()
属性缩放后,默认的向下和向右也移动了一段距离,这是因为scale()
默认是按中心进行缩放的!这里花了大量时间去寻找合适的方法解决,比如负margin、translate()等,但是由于难以计算合适的移动比例系数,恕本人算法辣鸡,这一方法尝试很久终于决定还是放弃......
翻看css手册发现了一个熟悉又陌生的属性
设置旋转元素的基点位置:
transform-origin: x-axis y-axis z-axis;
它有3个属性值,分别代表定义视图被置于X、Y、Z轴的何处。
他乡遇故知,久旱逢甘霖!要的就是你啊!设置transform-origin: 0 top 0
解决~
其实吧,这个属性很早就被用到了,只不过我最开始写的是缩写transform-origin: 0
,被浏览器解析之后的就是transform-origin: 0 center 0
......当时的感受就是左右解决了,一直想的都是把iframe移上去,殊不知人家自带这样的功能,只不过被我忽略了。学习还是不能囫囵吞枣啊,一个属性竟然可以浪费半天的时间,我大概不是个合格的前端......(逃
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
iframe,移动端,缩放
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 群星《前途海量 电影原声专辑》[FLAC/分轨][227.78MB]
- 张信哲.1992-知道新曲与精丫巨石】【WAV+CUE】
- 王翠玲.1995-ANGEL【新艺宝】【WAV+CUE】
- 景冈山.1996-我的眼里只有你【大地唱片】【WAV+CUE】
- 群星《八戒 电影原声带》[320K/MP3][188.97MB]
- 群星《我的阿勒泰 影视原声带》[320K/MP3][139.47MB]
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[320K/MP3][148.91MB]
- 刘雅丽.2001-丽花皇后·EMI精选王【EMI百代】【FLAC分轨】
- 齐秦.1994-黄金十年1981-1990CHINA.TOUR.LIVE精丫上华】【WAV+CUE】
- 群星.2008-本色·百代音乐人创作专辑【EMI百代】【WAV+CUE】
- 群星.2001-同步过冬AVCD【环球】【WAV+CUE】
- 群星.2020-同步过冬2020冀待晴空【环球】【WAV+CUE】
- 沈雁.1986-四季(2012梦田复刻版)【白云唱片】【WAV+CUE】
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[FLAC/分轨][257.88MB]
- 《国语老歌 怀旧篇 3CD》[WAV/分轨][1.6GB]