css+html实现Skeleton Screen 加载占位图动画效果(带动画)

请稍等,我会提供完整的攻略。

什么是Skeleton Screen?

Skeleton Screen也叫骨架屏,是指在页面加载过程中,用灰色的占位图代替正在加载的内容,让用户感受到页面正在加载的过程,从而提升页面的整体用户体验。

实现Skeleton Screen的步骤

第一步:HTML

首先,在HTML中将网页内容用占位符代替,这里举一个网站导航栏的例子:

<ul class="skeleton">
  <li class="skeleton-item"></li>
  <li class="skeleton-item"></li>
  <li class="skeleton-item"></li>
  <li class="skeleton-item"></li>
</ul>

以上代码表示一个包含四个li元素的无序列表,其样式名均为"skeleton-item"。通过将导航栏内容使用占位符代替,就可以达到Skeleton Screen的效果。

第二步:CSS

接下来就是给占位符添加CSS样式,使其达到动态效果。这里用到了CSS3的animation属性来实现。

@keyframes skeleton-animation {
    0% { background-position: -400px 0; }
    100% { background-position: 400px 0; }
}

.skeleton {
    height: 40px;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
    background: #f7f7f7;
    overflow: hidden;
}

.skeleton-item {
    height: 100%;
    width: 25%;
    float: left;
    background: linear-gradient(to right, #f7f7f7 0%, #d8d8d8 20%, #f7f7f7 40%);
    background-size: 400px 100%; 
    animation: skeleton-animation 1.5s ease-in-out infinite;
}

解析一下上面的代码:
- 首先定义了一个关键帧动画,将背景图片的初始位置设置为-400px,最终位置设置为400px,通过持续时间设置为1.5秒实现动态效果。
- 将ul元素的样式设置为一般的列表样式,并指定了背景颜色。
- 将li元素的样式设置为25%的宽度,通过线性渐变的背景色以及translatex属性和动画效果,实现了占位图的效果。

第三步:JS

在页面加载完成后,还需要将占位符的CSS样式清除掉,从而显示页面真正的内容。这里可以用到jQuery库来实现。

$(document).ready(function() {
  $('.skeleton').removeClass('skeleton');
});

以上代码表示在文档加载完成之后,将所有类名为"skeleton"的元素的样式名移除。

示例

下面提供两个示例,分别是页面底部的占位图和商品列表的占位图。

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>Skeleton Screen Demo</title>
  <style>
    @keyframes skeleton-animation {
      0% { background-position: -400px 0; }
      100% { background-position: 400px 0; }
    }

    .skeleton {
      height: 40px;
      width: 100%;
      margin: 0;
      padding: 0;
      list-style: none;
      background: #f7f7f7;
      overflow: hidden;
    }

    .skeleton-item {
      height: 100%;
      width: 25%;
      float: left;
      background: linear-gradient(to right, #f7f7f7 0%, #d8d8d8 20%, #f7f7f7 40%);
      background-size: 400px 100%;
      animation: skeleton-animation 1.5s ease-in-out infinite;
    }

    .footer {
      position: fixed;
      left: 0;
      bottom: 0;
      height: 50px;
      width: 100%;
      background: #f7f7f7;
      z-index: 999;
    }

    .footer-content {
      display: flex;
      justify-content: space-around;
    }

    .footer-item {
      width: 25%;
      height: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    .footer-item i {
      font-size: 24px;
      color: #999;
    }
  </style>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script>
    $(document).ready(function() {
      $('.skeleton').removeClass('skeleton');
    });
  </script>
</head>

<body>
  <div class="footer skeleton">
    <div class="footer-content">
      <div class="footer-item"><i class="fa fa-home"></i></div>
      <div class="footer-item"><i class="fa fa-search"></i></div>
      <div class="footer-item"><i class="fa fa-shopping-cart"></i></div>
      <div class="footer-item"><i class="fa fa-user"></i></div>
    </div>
  </div>

  <ul class="skeleton">
    <li class="skeleton-item"></li>
    <li class="skeleton-item"></li>
    <li class="skeleton-item"></li>
    <li class="skeleton-item"></li>
    <li class="skeleton-item"></li>
    <li class="skeleton-item"></li>
    <li class="skeleton-item"></li>
    <li class="skeleton-item"></li>
  </ul>
</body>

</html>

通过上面的示例代码,即可实现页面底部导航栏和商品列表动态加载占位图的效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:css+html实现Skeleton Screen 加载占位图动画效果(带动画) - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • 5分钟教你学会 CSS Grid 布局

    下面是详细的“5分钟教你学会 CSS Grid 布局”的攻略。 什么是 CSS Grid 布局? CSS Grid 布局是一种二维网格布局系统,可以用于快速创建复杂的布局,同时具有灵活性和可响应性。 如何使用 CSS Grid 布局? 1. 创建网格容器 要使用 CSS Grid 布局,首先需要为网格容器设置 display 属性为 grid。 .conta…

    css 2023年6月10日
    00
  • css3 实现元素弧线运动的示例代码

    实现元素弧线运动的示例代码需要使用到 CSS3 的 animation 和 transform 属性,下面是实现步骤: 1. 确定元素 首先需要确定需要进行弧线运动的元素,例如这里选择使用 div 元素作为样例: <div class="arc"></div> 2. 定义样式 接下来需要定义元素的样式,可以将该元素…

    css 2023年6月10日
    00
  • vite.config.js配置入门详解

    当我们在使用 Vite 构建工具时,可以使用其中一个配置文件 vite.config.js 进行一些基础的配置和优化,以实现更好的构建效果。 什么是 vite.config.js? vite.config.js 是 Vite 构建工具的配置文件,它允许我们自定义一些构建规则、插件和优化策略等。在默认情况下,Vite 会自动查找当前工程所在目录下的 vite.…

    css 2023年6月9日
    00
  • 详解CSS nth-child与nth-of-type的元素查找方式

    详解CSS nth-child与nth-of-type的元素查找方式 在CSS中,nth-child和nth-of-type都是常见的选择器。它们的作用是用于选择具有特定顺序的元素,但它们的使用方式略有不同。本文将详细讲解这两种选择器的使用方法,并通过示例进行说明。 基本用法 nth-child nth-child用于选择某个元素在其父元素的全部子元素中的顺…

    css 2023年6月10日
    00
  • 纯CSS免费让网站拥有暗黑模式切换功能的实现代码

    给您讲解一下“纯CSS免费让网站拥有暗黑模式切换功能的实现代码”的完整攻略。 1. CSS变量 要实现暗黑模式切换,首先需要了解CSS变量。CSS变量是在CSS中定义的,可以在整个文档中重复使用的值。在实现暗黑模式切换中,可以使用CSS变量来定义肌肤颜色。 在CSS中,使用–来定义变量,使用var()来引用变量。例如: :root { –bg-color…

    css 2023年6月9日
    00
  • Vue利用相反数实现飘窗动画效果

    下面是Vue利用相反数实现飘窗动画效果的完整攻略,分为以下几个步骤: 步骤一:在Vue中定义一个带有动画的元素 为了创建动画效果,我们需要使用 Vue 的 transition 组件,它可以帮助我们将指定的 CSS 过渡应用到元素上。以飘窗效果为例,我们可以定义一个带有动画效果的元素,如下所示: <transition name="flyin…

    css 2023年6月10日
    00
  • Adobe Dreamweaver CS3 官方简体中文龙卷风修正版v1.1下载

    下面就为大家介绍下载”Adobe Dreamweaver CS3 官方简体中文龙卷风修正版v1.1″的完整攻略。 1. 确认系统要求 在下载Adobe Dreamweaver CS3之前,我们需要确认电脑是否满足软件的最低系统要求。Adobe Dreamweaver CS3支持 Windows XP, Windows Vista和Windows 7等操作系统…

    css 2023年6月9日
    00
  • 两种CSS3伪类选择器详细介绍

    我们来详细讲解一下“两种CSS3伪类选择器详细介绍”的攻略。 什么是CSS3伪类选择器? CSS3伪类选择器是选择网页中特殊状态下的元素,比如链接被悬浮时、复选框被选中时等等。使用CSS3伪类选择器可以让我们更加细致地对网页中的元素进行样式的设定。 两种CSS3伪类选择器详细介绍 1. :hover 伪类选择器 :hover是最常用的一种伪类选择器,它表示鼠…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部