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日

相关文章

  • css外部样式加载Link与import的区别

    介绍“CSS外部样式加载Link与import的区别” 在CSS样式表的开发中,我们经常会通过Link或Import来引入外部样式,但是它们之间有很大的不同,具体表现在以下方面: 引入方式不同 加载顺序不同 优先级存在差别 下面将详细介绍这三方面内容。 引入方式不同 Link是通过HTML中的link标签来引入CSS文件,通常有以下形式: <link …

    css 2023年6月9日
    00
  • 5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)

    5分钟让你掌握CSS3阴影、倒影、渐变小技巧 介绍 本教程将向你展示如何使用CSS3的阴影、倒影、渐变等小技巧来美化你的网站页面。通过学习这些技巧,你可以让你的网站看起来更加炫酷、专业。 阴影 CSS3的阴影属性可以为任何元素添加阴影效果。你可以通过使用box-shadow属性来实现这个效果。box-shadow有四个参数:水平位置、垂直位置、模糊半径和颜色…

    css 2023年6月9日
    00
  • EasyUI折叠表格层次显示detailview详解及实例

    EasyUI折叠表格层次显示detailview详解及实例 介绍 在EasyUI中,可以使用折叠表格来显示分层数据。当需要在折叠的表格中显示更多详细的数据时,我们可以使用detailview来展示更多信息。 detailview可以根据EasyUI数据网格中的数据动态创建一个子网格,并在父网格中嵌入行中的图标上提供展开和收缩子网格的的链接。 教程 步骤 1:…

    css 2023年6月10日
    00
  • 分享几个实用的CSS代码块

    让我们来详细讲解如何分享几个实用的CSS代码块。 步骤一:选择实用的CSS代码块 首先,我们需要选择一些实用的CSS代码块,这些代码块可以帮助我们快速实现一些常见的效果或功能。例如,我们可以选择一些在前端开发中常用的CSS属性或选择器,或者是一些细节优化的小技巧。 以下是几个示例: 代码块一:水平居中 有时候,我们需要将一个元素水平居中,可以使用如下代码: …

    css 2023年6月9日
    00
  • VueJs与ReactJS和AngularJS的异同点

    VueJS与ReactJS和AngularJS的异同点 VueJS、ReactJS和AngularJS是三个目前比较流行的前端框架/库,它们都有各自的优点和适用场景,同时也有一些共同点和区别。 相同点 1. 都是前端框架/库 VueJS、ReactJS和AngularJS都是前端框架/库,它们的目标都是帮助开发人员更快、更方便地开发复杂的web应用。 2. …

    css 2023年6月9日
    00
  • css sticky footer经典布局的实现

    实现 CSS Sticky Footer 布局,可以通过以下步骤实现: 第一步:创建 HTML 结构 先创建一些基本的 HTML 标记以容纳页面内容。一般情况下,我们需要包含一个固定头部(Header)、主体内容(Main)和一个底部(Footer)。 <!DOCTYPE html> <html lang="en"&gt…

    css 2023年6月11日
    00
  • JS动态修改网页body的背景色实例代码

    下面是关于JS动态修改网页body的背景色实例代码的完整攻略: 步骤一:准备html与css代码 首先,我们需要准备一个HTML页面以及相应的CSS样式表。下面是一个简单的HTML页面,其中在body标签中设置了一个CSS类名为”bg-color”: <!DOCTYPE html> <html> <head> <ti…

    css 2023年6月9日
    00
  • 前端SVG样式颜色等开发注意事项

    前端SVG是一种使用XML描述二维图形的图像格式,其可以被浏览器直接渲染并显示在网页上。在进行前端SVG开发时,我们需要注意以下几个重要事项: 使用正确的SVG格式 虽然SVG可以使用多种文件格式保存(如.svg、.svgz、.css等),但在前端开发中,建议使用 .svg 格式,因为它能够被所有现代浏览器理解,且能够进行文本编辑。 处理SVG文件尺寸 在实…

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