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 垂直居中的5种实现方法

    下面是CSS垂直居中的五种实现方法的详细攻略: 方法一:使用flexbox布局 可以使用flexbox布局的align-items属性来进行垂直居中,值设置为center即可。具体实现如下: .container { display: flex; align-items: center; } 示例说明: <div class="contain…

    css 2023年6月10日
    00
  • 用javascript css实现GridView行背景色交替、鼠标划过行变色,点击行变色选中

    下面是详细的JavaScript和CSS实现GridView行背景色交替、鼠标划过行变色,点击行变色选中的攻略。 1. 实现思路 GridView是一个常用的表格组件,为了提升用户体验,我们可以通过JavaScript和CSS来实现GridView行背景色交替、鼠标划过行变色以及点击行变色选中的功能。具体的实现思路如下: 使用CSS选择器:nth-child…

    css 2023年6月9日
    00
  • 详解css3自定义滚动条样式写法

    下面是详解css3自定义滚动条样式写法的完整攻略: 1. 基础概念 在开始自定义滚动条样式之前,我们需要了解一些基础概念。CSS3中为我们提供了一个新的属性:::-webkit-scrollbar,用于控制滚动条的样式。其中,-webkit-是浏览器前缀,表示该属性仅在webkit内核的浏览器中生效。另外,::-webkit-scrollbar是一个伪元素,…

    css 2023年6月10日
    00
  • 完全不用基础的HTML5入门篇教程

    下面是关于“完全不用基础的HTML5入门篇教程”的完整攻略: 标题 1. 学习HTML5前需要掌握的基础知识 在学习HTML5之前,建议先掌握一些基础的前端知识,比如CSS、JavaScript等。如果您还没有学习过这些知识,可以考虑先学习相关教程。 2. HTML5的基本语法 2.1 搭建HTML骨架 一份基本的HTML5文档应该包括<html&gt…

    css 2023年6月9日
    00
  • css 固定表头 拖动滚动条时对应表头所对应的列 ie6测试通过

    要实现CSS固定表头并支持拖动滚动条时,对应表头所对应的列可以通过一些技巧实现,以下是攻略: 一、HTML结构 首先要构建具有类似表格结构的HTML代码,其中包含固定的表头和可滚动的内容区域。可以采用如下结构实现: <div class="table-container"> <table> <thead&gt…

    css 2023年6月10日
    00
  • @Font-face的基本用法及让全部浏览器都兼容的方法

    下面我来详细讲解一下“@Font-face的基本用法及让全部浏览器都兼容的方法”。 1. @font-face的基本用法 @font-face是CSS3新增的一个规则,可以让我们在Web中使用自定义字体。它的基本用法如下: @font-face { font-family: ‘MyFont’; /* 自定义字体名称 */ src: url(‘myfont.w…

    css 2023年6月10日
    00
  • bootstrap3.0教程之排版详细使用教程(标题、页面主体、强调、缩略语等用法)

    下面是对于“bootstrap3.0教程之排版详细使用教程”的完整攻略: Bootstrap3.0教程之排版详细使用教程 标题 在 Bootstrap 中,可以通过 HTML 的 heading 标签来控制标题的大小,分别是 h1 到 h6 标签。但是在使用 Bootstrap 中,可以更方便地通过四个类来控制标题的大小,分别是 .h1 、.h2 、.h3 …

    css 2023年6月9日
    00
  • 什么是clearfix (一文搞清楚css清除浮动clearfix)

    什么是clearfix? 在CSS布局中,我们经常使用浮动来实现元素的布局。但是,当父元素的高度没有被正确的包裹时(比如,当子元素都是浮动元素时),就会出现高度塌陷(collapsed)的问题。clearfix就是一种CSS技巧,可以清除浮动元素导致的高度塌陷问题。 具体来说,clearfix是一种在容器(比如一个div)中使用的CSS类名,该类名可以将浮动…

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