酷站(www.ku0.com)-致力于为互联网从业者提供动力!

热门关键词:  企业  as  baidu  c4rp3nt3r  美女
酷站

【云小站】新老客都返现+现金红包+瓜分60万奖池
酷站

css

旗下栏目: html css xml html5 DW bootstrap Frontpage教程

浅谈只要css就能实现的骨架屏方案

来源:互联网搜集 作者:秩名 人气: 发布时间:2019-09-20
本篇文章主要介绍了浅谈只要css就能实现的骨架屏方案,对大家的学习或者工作具有一定的参考学习价值,感兴趣的小伙伴们可以参考一下,也感谢大家对酷站(ku0.com)的支持。

线上体验地址 https://jsfiddle.net/z13wtr0q/

先说优缺点,毕竟骨架屏实现的方案有很多种

优点
 

  • 简单,不需要工程,不用puppeteer生成骨架dom,也不需要二次开发维护
  • 定制程度高,想怎么搞就怎么搞
  • 不臃肿,只给你想要的


缺点
 

  • 自动化程度低,需要在骨架dom上手动添加类
  • 协同要求高,不像工程化能通过工程去约束


思路

通过伪元素实现骨架样式,通过操作样式实现骨架和页面的动态切换

实现

css部分(scss写法)

通过after伪元素生成骨架样式,并通过absolute覆盖到实际元素上
 

.skt-loading {
  pointer-events: none; /* 加载中阻止事件 */
  .skeleton {
    position: relative;
    overflow: hidden;
    border: none !important;
    border-radius: 5px;
    background-color: transparent !important;
    background-image: none !important;
    &::after {
      content: '';
      position: absolute;
      left: 0;
      top: 0;
      z-index: 9;
      width: 100%;
      height: 100%;
      background-color: #EBF1F8;
      display: block;
    }
     
    /* 下面这部分都是自定义的,看需求修改 */
    &:not(.not-round)::after {
      border-radius: 4px;
    }
    &:not(.not-before)::before {
      position: absolute;
      top: 0;
      width: 30%;
      height: 100%;
      content: "";
      background: linear-gradient(to right,rgba(255,255,255,0) 0,
          rgba(255,255,255,.3) 50%,rgba(255,255,255,0) 100%);
      transform: skewX(-45deg);
      z-index: 99;
      animation: skeleton-ani 1s ease infinite;
      display: block;
    }
    &.badge {
      &::after {
        background-color: #F8FAFC;
      }
    }
  }
}
 
@keyframes skeleton-ani { /* 骨架屏动画 */
  from {
    left: -100%;
  }
  to {
    left: 150%;
  }
}

html部分

只需要在你认为合理的骨架粒度元素上添加skeleton类即可

js部分

控制好skt-loading类的切换

使用注意
 
  • after伪元素无法插入到inputimg等非容器元素中,所以如果需要添加skleton,则需要再加一层元素将其包裹
  • 对于像vuereact数据驱动页面需要先有mock数据以生成dom
版权声明:本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 959677720#qq.cn(#换@) 举报,一经查实,本站将立刻删除。
原文链接:https://www.jb51.net/css/694160.html

相关文章

  • border-radius IE8兼容处理的方法介绍

    border-radius IE8兼容处理的方法介绍

    根据canisue( http://caniuse.com/#search=border-radius ),border-radius兼容性如下图所示: 测试代码: !DOCTYPE htmlhtml head meta charset=UTF-8 meta http-equiv=X-UA-Compatible content=IE=edge,chrome=1 title/title style t......
    02-13
  • css实现3d立体魔方

    css实现3d立体魔方

    今天来做一个简单的3d魔方 先看效果图吧!把这个看会了,一些网上的3d的相册你就都会了 一,html代码 !DOCTYPE htmlhtml lang=zh-CN head title3d立体魔方/title meta charset=UTF-8 /head body div class=top/div !--上 -- div class=bo......
    02-07
  • 详解css实现环形/扇形菜单(基础版)

    详解css实现环形/扇形菜单(基础版)

    项目需要用到环形菜单,初略在网上找了一下,没有找到合适的,于是自己写了一个很简单的,后续再优化。 这个组件是基于react,但是原理都一样。 展开效果如下: 实现 css(less) @centerIconSize: 30px; .flex(@justify: flex-start, @alig......
    01-16
  • 26个常用易忘CSS小技巧介绍

    26个常用易忘CSS小技巧介绍

    收集于平时常用但易忘的CSS实现方法,如有遗漏或补充,还请指正! 解决inline-block元素设置overflow:hidden属性导致相邻行内元素向下偏移 .wrap { display: inline-block; overflow: hidden vertical-align: bottom}.wrap { display: in......
    12-31
  • flex布局中flex-grow与flex-shrink的计算方式解析

    flex布局中flex-grow与flex-shrink的计算方式解析

    CSS 中的 Flex(弹性布局) 可以很灵活的控制网页的布局,其中决定 Flex 布局内项目宽度/高度的是三个属性:flex-basis, flex-grow, flex-shrink. flex-basis flex-basis 决定了项目占据主轴的空间,除非使用 box-sizing 进行设置,否则它......
    12-18
  • better-scroll实现菜单和内容联动的效果

    better-scroll实现菜单和内容联动的效果

    1、基本使用 !DOCTYPE htmlhtml lang=enhead meta charset=UTF-8 meta name=viewport content=width=device-width, initial-scale=1.0 meta http-equiv=X-UA-Compatible content=ie=edge titleDocument/title link href=https://unpkg.co......
    12-09
  • CSS边框长度控制成果的实现

    CSS边框长度控制成果的实现

    以前需要 边框 长度比容器小一些时,我用div嵌套。厥后发明伪类在实现这个效果时很方便,,只需要一个div就够了,另外调解padding和margin都不会很麻烦。 div class=content-blockdiv class=box-containerdiv class=border-topborder top......
    11-29
  • CSS3实现图片抽屉式效果的方法

    CSS3实现图片抽屉式效果的方法

    老规矩,先放图片效果图: 这个效果实现原理很简单:只要你掌握css3动画和过渡相关知识就行,不用js代码; HTML代码: div ul id=list li a href=国际美妆抢先看/a img src=images/1.jpg / /li li a href=女神标准大讨论/a img src=image......
    11-07
  • css :not的多个条件的写法

    css :not的多个条件的写法

    :not 伪类选择器可以筛选不符合表达式的元素 例子 table tbody tr:not(:first-child):not(:last-child) td{ text-align: right;} 以上代码可以选择table表格中tbody部分非首个、非最后一个的tr,并设置其子元素td文本样式居右 这里面需要......
    11-07
  • css的空格处理的方法

    css的空格处理的方法

    1、空格规则 HTML 代码的空格通常会被浏览器忽略。 p hello world /p 上面是一行 HTML 代码,文字的前部、内部和后部各有两个空格。 浏览器的输出结果如下: hello world 可以看到,文字的前部和后部的空格都会忽略,内部的连续空格只会算......
    11-05

最新更新