值得一看
广告
彩虹云商城
广告

热门广告位

实现Bootstrap 5.3加载指示器平滑淡入淡出效果的教程

实现Bootstrap 5.3加载指示器平滑淡入淡出效果的教程

本教程详细讲解如何利用css的opacity和visibility属性结合transition,为bootstrap 5.3加载指示器(spinner)创建平滑的淡入淡出动画效果。文章通过示例代码展示了从初始化隐藏、加载时淡入显示到数据加载完成后淡出隐藏的完整实现过程,并提供了关键的css过渡技巧和注意事项,以提升用户体验。

在现代Web应用中,加载指示器(如Bootstrap Spinner)是提升用户体验的重要组成部分。它们在数据获取或处理过程中向用户提供视觉反馈,避免页面无响应的错觉。然而,直接通过修改元素的display属性来显示或隐藏加载指示器会导致突兀的视觉切换。为了实现更平滑、更专业的过渡效果,我们可以利用CSS的opacity和visibility属性配合transition来创建淡入淡出动画。

核心概念:利用CSS过渡实现平滑动画

实现元素的平滑淡入淡出效果,通常涉及opacity(不透明度)和visibility(可见性)这两个CSS属性。

  • opacity:控制元素的透明度,从0(完全透明)到1(完全不透明)。改变opacity可以触发平滑过渡。
  • visibility:控制元素的可见性,visible表示可见,hidden表示隐藏。hidden状态的元素不占用布局空间,也不响应事件。

单独使用opacity进行过渡会导致元素在完全透明后仍然占用空间并可能捕获事件。为了解决这个问题,我们引入visibility属性,并巧妙地利用其transition-delay。

关键技巧:visibility的延迟过渡

  • 淡出时: 当元素从可见变为隐藏时,我们希望opacity先完成从1到0的过渡,然后再将visibility设置为hidden。因此,visibility的过渡延迟应与opacity的过渡时长相同。
  • 淡入时: 当元素从隐藏变为可见时,我们希望visibility立即变为visible(transition-delay: 0s),这样元素就能开始响应事件并占用空间,然后opacity再从0过渡到1。

实现步骤

我们将通过一个模拟数据加载的场景来演示如何实现Bootstrap Spinner的淡入淡出效果。

芦笋演示

芦笋演示

一键出成片的录屏演示软件,专为制作产品演示、教学课程和使用教程而设计。

芦笋演示34

查看详情
芦笋演示

1. HTML 结构

首先,在HTML中设置Bootstrap Spinner和用于显示数据的容器。注意,初始时为Spinner添加hidespinner类,使其默认处于隐藏状态。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap Spinner 淡入淡出教程</title>
<!-- 引入 Bootstrap 5.3 CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous" />
<style>
/* 在这里添加自定义CSS */
</style>
</head>
<body>
<div class="spinner-border m-5 hidespinner" role="status" id="spinner">
<span class="visually-hidden">加载中...</span>
</div>
<div id="dataContainer" class="container mt-4"></div>
<!-- 引入 Bootstrap 5.3 JS Bundle -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<script>
// 在这里添加JavaScript代码
</script>
</body>
</html>

2. CSS 样式定义

定义#spinner的默认样式和hidespinner类,实现淡入淡出效果。

#spinner {
position: fixed; /* 使用fixed确保即使页面滚动也能保持居中 */
top: 50%;
left: 50%;
width: 3.5rem;
height: 3.5rem;
transform: translate(-50%, -50%); /* 居中显示 */
z-index: 1050; /* 确保在其他内容之上 */
/* 默认可见状态 */
visibility: visible;
opacity: 1;
/* 淡入过渡:opacity立即开始,visibility无延迟 */
transition: visibility 0s linear 0s, opacity 300ms ease-in-out;
}
#spinner.hidespinner {
/* 隐藏状态 */
visibility: hidden;
opacity: 0;
/* 淡出过渡:opacity先完成,visibility在300ms后变为hidden */
transition: visibility 0s linear 300ms, opacity 300ms ease-in-out;
}

CSS说明:

  • position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);:用于将Spinner固定并大致居中显示在视口上。
相关标签:

css javascript java html js bootstrap npm ai cdn css属性 .net css bootstrap html 事件 display position transform transition

大家都在看:

css初级项目按钮悬停动画如何实现
css选择器在响应式布局中如何应用
css伪类:checked实现复选框样式修改
如何通过css link实现不同主题切换
如何用css制作多列文章排版
温馨提示: 本文最后更新于2025-10-16 10:42:32,某些文章具有时效性,若有错误或已失效,请在下方留言或联系在线客服
文章版权声明 1 本网站名称: 创客网
2 本站永久网址:https://new.ie310.com
1 本文采用非商业性使用-相同方式共享 4.0 国际许可协议[CC BY-NC-SA]进行授权
2 本站所有内容仅供参考,分享出来是为了可以给大家提供新的思路。
3 互联网转载资源会有一些其他联系方式,请大家不要盲目相信,被骗本站概不负责!
4 本网站只做项目揭秘,无法一对一教学指导,每篇文章内都含项目全套的教程讲解,请仔细阅读。
5 本站分享的所有平台仅供展示,本站不对平台真实性负责,站长建议大家自己根据项目关键词自己选择平台。
6 因为文章发布时间和您阅读文章时间存在时间差,所以有些项目红利期可能已经过了,能不能赚钱需要自己判断。
7 本网站仅做资源分享,不做任何收益保障,创业公司上收费几百上千的项目我免费分享出来的,希望大家可以认真学习。
8 本站所有资料均来自互联网公开分享,并不代表本站立场,如不慎侵犯到您的版权利益,请联系79283999@qq.com删除。

本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END
喜欢就支持一下吧
点赞14赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容