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

yizhihongxing

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

什么是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日

相关文章

  • EasySlider 基于jQuery功能强大简单易用的滑动门插件

    下面是EasySlider 基于jQuery功能强大简单易用的滑动门插件的完整攻略。 什么是EasySlider? EasySlider是一个基于jQuery的滑动门插件,支持滑动和淡入淡出两种切换效果,可以轻松地实现图片轮播、广告展示等功能。 如何使用EasySlider? 步骤一:引入jQuery和EasySlider插件 在网页中引入jQuery和Ea…

    css 2023年6月10日
    00
  • 网络广告的发展历程的详细分析与心得体会(图文)

    下面我将详细讲解如何撰写一篇网络广告发展历程的详细分析文章,包括步骤和注意事项,帮助你完成这篇文章。 步骤一:确定文章主题 首先需要确定文章的主题,这里我们选择“网络广告的发展历程的详细分析与心得体会”。确定主题后,需要开展文献调查,了解网络广告的历史发展和现状,收集相关数据和材料。 步骤二:撰写文章大纲 文章大纲是文章撰写的基础,要把各个章节、段落的内容和…

    css 2023年6月10日
    00
  • Webstorm开发工具使用教程详解

    WebStorm开发工具使用教程详解 WebStorm是一款由JetBrains公司开发的JavaScript集成开发环境(IDE),集成了丰富的Javascript开发工具,如调试、代码智能提示、版本控制、代码重构等功能。本文将详细讲解WebStorm开发工具的使用方法。 安装WebStorm 下载Webstorm软件包,并按照指引安装到本地计算机上。 创…

    css 2023年6月9日
    00
  • 23种CSS垂直居中技巧

    关于“23种CSS垂直居中技巧”的攻略,我会从以下三个部分进行详细讲解: 概述:介绍为什么需要垂直居中、垂直居中的相关概念、难点和解决方案。 解决方案:梳理23种CSS垂直居中技巧,并对它们进行详细讲解。 示例说明:通过两条具体的示例,让你更好地理解如何应用这些CSS垂直居中技巧。 进入正题: 一、概述 为什么需要垂直居中? 在Web开发过程中,为了让页面布…

    css 2023年6月10日
    00
  • 利用CSS3的3D效果制作正方体

    制作3D正方体这个过程通常可以分为以下几个步骤: 1.确定一个容器,为3D场景提供空间,可以设定宽、高、以及透视效果的角度。 2.设置立方体的六个面,让它们呈现出正方形。 3.将六个面浮起来,让立方体看起来具有体积感。 下面将详细讲解如何实现以上的步骤,其中包括两个样例说明: 1.基础版3D正方体: HTML代码如下: <div class=&quot…

    css 2023年6月10日
    00
  • CSS外边距叠加的问题,CSS教程

    CSS外边距叠加的问题是许多前端开发者在使用CSS时遇到的一个常见问题。在理解和解决这个问题之前,我们需要先了解CSS外边距的概念。 一、CSS外边距的概念 CSS外边距是指元素外部与相邻元素之间的距离,用margin属性进行控制。CSS外边距有以下几个特点: 外边距可以为负值,表示将元素向相邻元素重叠; 如果相邻的两个元素都有外边距,它们之间的距离将是它们…

    css 2023年6月9日
    00
  • JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法

    下面是JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法的完整攻略。 1. HTML结构 先看一下要实现的页面结构,包含了一个按钮和一个弹框: <button id="showModal">打开弹框</button> <div id="mask"></div> <di…

    css 2023年6月10日
    00
  • CSS实现隐藏搜索框功能(动画正反向序列)

    来具体讲解一下CSS实现隐藏搜索框功能(动画正反向序列)的完整攻略。 1. 准备工作 在进行实现前,需要先准备好以下内容: HTML结构:需要一个包含搜索框和按钮的HTML基础结构。 CSS基础样式:设置基础样式,包括搜索框和按钮的大小、位置、字体、颜色等。 2. 实现隐藏搜索框功能 接下来进入正式的实现过程。针对隐藏搜索框的需求,我们可以通过以下两种方式来…

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