有效的加载指示器,例如旋转器和骨架加载器,可以显着改善页面加载时间的用户体验。尽管旋转器易于实现,但骨骼装载机虽然可能更复杂,但在特定方案中提供了卓越的体验。许多现有的骨骼加载器实现缺乏可重复性和可扩展性,通常是针对单个组件量身定制的。本文提出了一种更有效,可重复和可扩展的方法。
旋转器与骨架装载机
旋转器(或进度条)是最常见的加载指标,它提供了一种正在进行的视觉提示。但是,他们提供有限的参与度;用户被动等待,无法与其他页面元素进行交互。相反,骨架装载机(或骨架屏幕)提供了更活跃的等待体验。他们使用代表最终内容的占位符(彩色框),提供进度感和更快的加载速度。
至关重要的是,加载组件不应掩盖潜在的性能问题。首先优化资产和后端流程;当延迟不可避免并且不是由于可解决的性能问题而引起的,加载元素是最后的手段。
有效使用骨架装载机
骨架装载机不应替换全屏装载机,但最好在特定条件下使用:
可避免的延迟?
优先考虑性能优化以最大程度地减少加载延迟。骨骼装载机仅在延迟确实不可避免的情况下适合。
用户启动的加载?
对于触发加载的用户操作(例如,懒惰图像),为加载元素提供反馈。没有它,用户就不知道背景过程。
一致且可预测的布局?
骨架装载机在可预测的内容布局中最有效。如果骨骼与最后的布局不相似,那么突然的变化可能会令人震惊。
立即可用的内容?
当某些内容立即可见而另一些内容不同步时,骨架装载机最有效。这保持了进步感。仅用骨骼装载机填充的屏幕没有任何初始内容并不比全屏旋转器要好得多。
建造强大的骨架装载机
许多骨架装载机示例被过度设计。本文提倡一种简约的方法,以方便实施,重复使用和维护。
卡网格示例
使用HTML,CSS和JavaScript,简单的六张卡片将展示异步加载。每张卡都使用占位符图像( <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/?x-oss-process=image/resize,p_40" class="lazy" alt="用于多功能和可重复使用的骨架装载机的裸露方法">
)确保可见骨骼直到图像加载为止。
骨架装载机样式
而不是创建单独的骨架组件,而是利用现有的布局样式。 .loading
。
.loading .loading-item { 背景:#949494!重要; / *可自定义的骨架加载器颜色 */ 颜色:RGBA(0,0,0,0)! 边界色:RGBA(0,0,0,0,0)! 用户选择:无; 光标:等等; } .loading .loading-item * { 可见性:隐藏!重要; } .loading .loading-item:空::之后, .loading .loading-item *:empty :: after { 内容:“ \ 00A0”; }
此方法从主要组件样式继承了布局,用实心框代替内容。 .loading-item
类可确保布局保存。
多行内容和布局变化
要解决因内容长度而引起的布局偏移,请使用<br>
占位符中的标签以模拟多行。这继承了相关的CSS属性以进行准确的尺寸。
可访问性注意事项
可访问性至关重要。
对比
建议使用高对比度的骨骼装载机,以提高可见度,并遵守WCAG指南。 prefers-contrast
媒体查询(当得到广泛支持时)可以提供进一步的自定义。
动画
尊重用户偏好,以prefers-reduced-motion
动作,以便在必要时禁用动画。
屏幕读取器
使用ARIA属性,例如aria-hidden
和视觉隐藏的文本,为屏幕阅读器提供上下文。例如: <div>
<span style="display:none;">Loading...</span><img aria-hidden="true" ... alt="用于多功能和可重复使用的骨架装载机的裸露方法" >
</div>
。
结论
这种极简主义的方法创建了多功能,可重复使用的骨架加载程序,从现有样式继承了布局,仅替换内容。这可以提高可维护性和可伸缩性。优先考虑可访问性确保所有用户的包容性。
以上是用于多功能和可重复使用的骨架装载机的裸露方法的详细内容。更多信息请关注PHP中文网其他相关文章!

在这篇文章中,布莱克·莫里(Blackle Mori)向您展示了一些骇客,同时试图推动同位HTML支持的极限。如果您敢于使用这些,以免您也被标记为CSS罪犯。

具有CSS的自定义光标很棒,但是我们可以将JavaScript提升到一个新的水平。使用JavaScript,我们可以在光标状态之间过渡,将动态文本放置在光标中,应用复杂的动画并应用过滤器。

互动CSS动画和元素相互启动的元素在2025年似乎更合理。虽然不需要在CSS中实施乒乓球,但CSS的灵活性和力量的增加,可以怀疑Lee&Aver Lee&Aver Lee有一天将是一场

有关利用CSS背景滤波器属性来样式用户界面的提示和技巧。您将学习如何在多个元素之间进行背景过滤器,并将它们与其他CSS图形效果集成在一起以创建精心设计的设计。

好吧,事实证明,SVG的内置动画功能从未按计划进行弃用。当然,CSS和JavaScript具有承载负载的能力,但是很高兴知道Smil并没有像以前那样死在水中

是的,让#039;跳上文字包装:Safari Technology Preview In Pretty Landing!但是请注意,它与在铬浏览器中的工作方式不同。

此CSS-tricks更新了,重点介绍了年鉴,最近的播客出现,新的CSS计数器指南以及增加了几位新作者,这些新作者贡献了有价值的内容。

在大多数情况下,人们展示了@Apply的@Apply功能,其中包括Tailwind的单个property实用程序之一(会改变单个CSS声明)。当以这种方式展示时,@Apply听起来似乎很有希望。如此明显


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。