导航

萌即是正义!时不时分享一些ACG活动记录与有趣代码的小站!

侧边栏
热门文章
1推文
酒店免费把我的双人床升级成了2张双人床!空间是大了许多,但是1个住有些浪费呀。
热度
570
2推文
飞猪说这一班飞机没有餐食,结果特意吃饱了上飞机,结果突然端出来量大管饱的飞机餐我都懵了。 这是一条来自高空的推文。
热度
402
3页面
程序员老黄历&求签
热度
299
4推文
抵达台北开始6天5夜的台湾之旅!
热度
219
5博文
《孤独摇滚》圣地巡礼——金泽八景
热度
117
6推文
《苍之彼方的四重奏 10th Anniversary Box》预计2025年3月28日发售,售价为含税19800日元(约922人民币)。 其中如果购买了sprite LIMITED EDITION或FILMIC EDITION版的话,还有机会将名字(猜测)登在结尾字幕中! sprite LIMITED EDITION版售价39800日元(约1853人民币),FILMIC EDITION版售价149800日元(约6973人民币)。 感觉如果花1853人民币就能把"维基萌"打在游戏结尾字幕中也似乎不错的样子?🤔 《苍之彼方的四重奏 10th Anniversary Box》专题页面:https://sprite.net/aokana/10thanniversary/box
热度
104
7博文
《孤独摇滚》圣地巡礼——下北泽&下北泽咖喱节2023
热度
91
8博文
探访《蜡笔小新》老家——春日部游记
热度
78
9推文
最新一集的《mono女孩》里的《摇曳露营△》彩蛋真的太多啦!
热度
65
10推文
今天去看了首部初音未来的电影《剧场版 世界计划 破碎的世界与无法歌唱的未来》。 说是初音未来的电影,但其实是手游《世界计划》的剧场版。好像有挺多人看到是初音未来的电影就去看了,结果发现并不全是😅。其实在宣传海报中,初音未来后面的那些人才是主角。 不过,我也是那些没玩过手游的观众之一。其实整场看下来问题也不是很大,就是对于人物关系和世界观的设定可能会有些问题。电影其实也很贴心地在剧情开头,大致以剧情的形式展示了手游中的五个团体的人物及其性格,但感觉还是有些杯水车薪,约等于看个眼熟。 此次的电影是第一次购买应援场。所谓的应援场,就是能在电影院里像是听演唱会一样挥舞荧光棒和尽情呐喊。看着前排那些粉丝看到自己喜欢角色时的呐喊,以及演唱会环节的打CALL,应援场确实是很有意思的一种电影观看方式呢! 剧情方面,属于看了开头大概能猜到整部动画的剧情走向。不过,通过演唱会的气氛渲染,甚至还感受到了一丝丝的感动。 总体来说,对于手游的粉丝来说可能是嘉年华般的狂喜,对于没接触过手游的路人来说也能一定程度融入其中,属于一部不错的粉丝向电影(不管是手游粉丝还是初音未来粉丝)。 首周电影特典是CD和游戏内的兑换码。送CD这种形式还第一次遇到,官方大气!
热度
65
最新评论
广树管理员
2025-04-29 22:48
@夕阳西下:哈哈哈,是这么操作的
夕阳西下
2025-04-29 22:46
一个睡觉,另外一个放衣服
广树管理员
2025-04-29 21:37
@Zrzzz:期待第四季的摇曳露营吧
广树管理员
2025-04-29 21:37
@mikusa:哈哈哈,确实有点出戏
广树管理员
2025-04-29 21:37
@ZeroCounter:是吗?真的被飞机的量吓到了。2块面包,1盒咖喱米饭,1碗沙拉,1碗水果,1杯茶,1杯水。
攻略中
星空列车与白的旅行
暂无评分
Steam星空列车与白的旅行
2025年2月22日 22时 ~ 攻略中
已累计游玩2个月6天
乘坐的列车,划破夜空,飞驰在星空之下,令人心旷神怡——这可真是场超值之旅。舒爽夜风吹拂下的随心独旅中,我邂逅了随性的乘客,可人怜爱的乘务员。以及……猫耳少女?这场旅行,究竟会在她身上,留下了些什么呢?
PSN奖杯卡

PSN奖杯卡

归档
赞助商广告

解决并记录因为加载顺序导致flex布局出现画面抖动的笔记

作者:广树时间:2024-07-15 14:35:19分类:博客开发

最近在浏览维基萌的时候发现了一个因为加载顺序导致的flex布局抖动现象,想着挺有意思的就记录一下解决思路和方案。


现象

image-9iu2c3ve.png

有时候在浏览维基萌的时候偶尔会一瞬间出现上图的布局。


image-xh7puj05.png

然后一晃而过恢复成了正常布局。

这个现象只有打包发布到服务器上才会出现,本地调试则复现不出来。


分析原因

起初怀疑右侧侧边栏的内容可能引发BUG。于是清空了右侧侧边栏,只保留一个空框架,但问题依旧存在。

后来思考为什么问题只在发布到服务器上时出现,而且复现问题时右侧侧边栏似乎消失了。这联想到可能与网速有关。

于是,在本地调试环境中通过限制浏览器流量成功复现了问题,这样问题就更容易解决了。

经过一番分析,找到了问题的根源。首先,维基萌的PC界面采用三栏布局,通过flex固定左侧菜单和右侧侧边栏的宽度,中间内容部分则分配剩余空间。HTML的加载是自上而下的,当由于网络原因导致页面加载较慢时,有可能在下载到中间内容部分时,右侧侧边栏尚未下载完毕,中间内容部分就先显示出来了。

基于flex布局的设定,由于右侧侧边栏暂时不存在,中间内容部分会占用所有剩余空间。随后,右侧侧边栏加载进来,就会造成界面短暂的抖动。


解决办法

解决办法也很简单,flex布局还有一个order的属性。

CSS中的order属性用于控制灵活盒子布局(flexbox)中的项目顺序。通过设置order属性,可以改变flex容器中的子元素在布局中的排列顺序,而不需要改变HTML的顺序。

首先将原本的HTML顺序从【菜单->内容->侧边栏】改成【菜单->侧边栏->内容】。

然后再通过order属性,指定三个元素的顺序为【菜单->内容->侧边栏】即可。

具体到CSS为:

.blog-layout-body {
  /* 前略 */
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
.blog-layout-left-body {
  /* 前略 */
  order: 0;
}
.blog-layout-content-body {
  /* 前略 */
  order: 1;
}
.blog-layout-right-body {
  /* 前略 */
  order: 2;
}

其中【justify-content: space-between】指定两端对齐,可以防止在【内容】没加载时,【菜单】和【侧边栏】出现布局的抖动。

通过以上修改就可以让对应的元素在加载前和加载后都固定在一个位置,从而防止页面的抖动。

donate.png

1210 x 50(蓝底).png

cloudcone

相似内容:
推文
维基萌博客系统发布了0.28.0版本啦! 在这个版本中可以随意在推文列表中引用相关内容并对其进行排序。 详见:https://github.com/eeg1412/wikimoeNodeJSBlog/releases/tag/v0.28.0
发表于:2025-03-29 13:38
推文
给推文增加了内容的强关联,这样以后可以用推文来捞旧博文啦🤭。 另外给《关于》页增加了投票,欢迎投票。 关于页地址:https://www.wikimoe.com/page/about
发表于:2025-03-17 19:53
推文
综合大佬报告的一些问题,得出了苹果safari默认的视频进度条UI的一些特性(BUG?)。 1.在拖动进度条时,会受到各类Move事件影响,也就是说把视频放在幻灯片或者灯箱中后在safari上是很难操作进度条的。Chrome、Edge、Firefox都没有这个情况。 2.拖动进度条会触发onpause事件,这个在Firefox也有一样的情况,只不过可以通过video.seeking来判断这个暂停事件是由于拖动进度条导致的还是按了暂停按钮,但是safari这招并不行。 有点难搞,真要为了safari开发一套视频UI吗?😅
发表于:2024-06-30 22:06
推文
捣鼓了一圈视频播放器,试了video.js和DPlayer,感觉都不大适合,还是浏览器默认的最适合😂。
发表于:2024-06-21 21:09
推文
差点忘记了维基萌是一个分享代码的网站,于是给代码区补上了显示代码类型和复制的按钮。
发表于:2024-06-05 22:41
推文
猛然发现部分设备或者浏览器会把数字解析成emoji,原因是我把emoji的字体方太前面了,同时设定在前面的字体设备或者浏览器没有,所以只要修改字体顺序和补充字体即可。 不过话说回来,emoji字体为什么还会包含数字呀?
发表于:2024-05-30 08:58
推文
博客新增【活动】页面,可以通过这个页面查看我比较在意的活动信息时间线,方便安排出行游玩计划👏。 https://www.wikimoe.com/page/event
发表于:2024-03-26 18:19
推文
除夕夜更新了一下博客的代码,非常激进的增加了页面缓存功能,结果差点起不来博客程序了...😂
发表于:2024-02-09 21:47