导航

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

侧边栏
最新评论
关关
2025-12-04 10:02
可爱~
广树管理员
2025-12-03 20:32
@fuXes:大佬喜欢这种类型呀
fuXes
2025-12-03 11:20
那个持刀礼奈有点帅
广树管理员
2025-12-02 13:01
@ZeroCounter:哈哈哈,说不定就是了呢
ZeroCounter
2025-12-02 11:12
第一眼看截断的标题以为《寒蝉鸣泣之时》是世界文化遗产(不是
攻略中
魔法少女的魔女审判
暂无评分
Steam魔法少女的魔女审判
2025年11月27日 22时 ~ 攻略中
已累计游玩1周
迎接少女们的,是一场残酷的死亡游戏……在即将来临的“魔女审判”中,打破魔法和谎言的幻影,揪出混入少女之中的“魔女”吧。这部最新的魔法辩论×悬疑ADV作品,由日本原创品牌“Acacia”为您呈献。
全民高尔夫环球之旅
暂无评分
Steam全民高尔夫环球之旅
2025年9月07日 12时 ~ 攻略中
已累计游玩2个月29天
《全民高尔夫 环球之旅》除了能体验到与过去作品相同的乐趣、爽快与深奥之外, 还有着以精美图像设计而成、个性丰富的角色们与以世界各地为主题的球场, 以及能让所有人热血沸腾的全新模式等等,是本系列的全新力作!
ToHeart
暂无评分
SteamToHeart
2025年6月26日 19时 ~ 攻略中
已累计游玩5个月11天
AQUAPLUS推出的“温暖人心的校园恋爱游戏”将以高清全3D形式焕新归来!
fault - StP - LIGHTKRAVTE
暂无评分
Steamfault - StP - LIGHTKRAVTE
2025年5月29日 20时 ~ 攻略中
已累计游玩6个月9天
全球累计销量超过50万份的“fault”系列最新作!故事的舞台是一个融合了奇幻与科幻的超前世界——卢森海德王国。本作讲述了生活在此地的一个平凡又平庸的究极普通市民——名为果子的少年的故事。
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


telegram banner (1).png


1210 x 50(蓝底).png

cloudcone

相似内容:
推文
给博客加了足迹地图功能。 现在能非常直观的看到我这些年玩了哪些地方了。希望有生之年能填满地图吧! 由于不想使用外部API,所以地图就显示了一个简单的世界轮廓。 页面地址:https://www.wikimoe.com/page/map
发表于:2025-09-06 09:46
推文
给博客增加了一个分享功能。 看了一圈国内支持无门槛分享的平台也只有新浪微博和QQ空间了的样子了呢。 总之欢迎大佬们分享小破站的内容!
发表于:2025-08-28 19:56
推文
久违的博客系统更新,维基萌博客系统发布了0.29.2版本啦! 这个版本主要增加了统计相关的功能。便于了解博客当前的访问情况和访问速度。 详见:https://github.com/eeg1412/wikimoeNodeJSBlog/releases/tag/v0.29.2
发表于:2025-07-05 10:37
推文
维基萌博客系统发布了0.28.0版本啦! 在这个版本中可以随意在推文列表中引用相关内容并对其进行排序。 详见:https://github.com/eeg1412/wikimoeNodeJSBlog/releases/tag/v0.28.0
发表于:2025-03-29 13:38
推文
支持深色模式的0.26.0版本的维基萌博客系统发布啦! 除深色模式,还新增了电影记录功能和评论排序功能,是一个新功能增加比较多的版本。 详见:https://github.com/eeg1412/wikimoeNodeJSBlog/releases/tag/v0.26.0 追记:发布后发现还有挺多遗漏的地方,请更新0.26.1版本。 https://github.com/eeg1412/wikimoeNodeJSBlog/releases/tag/v0.26.1
发表于:2025-03-08 19:18
推文
最近电影看的比较多就想做一些记录和统计就给博客新增加了电影板块。 链接:https://www.wikimoe.com/page/movies 另外由于深色模式的呼声很高,就顺带把深色模式提前开发了。现在可以通过页面右下角的工具栏进行切换。由于这项改动比较突然,也不知道有没有漏配的地方,如果有大佬发现了的话请积极发评论报告哟! 以上两项改动应该会在这周末发布吧,敬请期待!
发表于:2025-03-07 07:10
推文
维基萌博客系统发布了0.25.0版本啦! 本次更新主要重构了追番、游戏、书籍的筛选功能,筛选变得更加精细了。并在侧边栏加了当季追番、阅读中、攻略中三个新模块。 以及修复了一些陈年老BUG和前面版本为了优化产生的新BUG😂。 具体更新内容详见:https://github.com/eeg1412/wikimoeNodeJSBlog/releases/tag/v0.25.0
发表于:2025-03-01 11:59
推文
应大佬们的要求给博客加上了“自定义HTML”的功能,可以在侧边栏加上各种奇奇怪怪的HTML小组件了。 应我自己的要求给博客加上了“今日热门文章”的功能,可以直观的展现哪些是维基萌当前热门的内容。
发表于:2024-07-06 10:24