Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CSS3滑动渐变动画-工作原理

CSS3滑动渐变动画-工作原理
EN

Stack Overflow用户
提问于 2018-09-18 19:07:56
回答 1查看 948关注 0票数 0

下面的代码不需要任何javascript代码就可以生成滑动渐变动画:

代码语言:javascript
运行
AI代码解释
复制
html {
  height: 100%
}

body {
  height: 100%;
  margin: 0
}

@keyframes loading {
  from {
    background-position: -5000% 0, 0 0
  }
  to {
    background-position: 5000% 0, 0 0
  }
}

.skeleton {
  height: 100%;
  animation-name: loading;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  background-color: #fff;
  background-repeat: no-repeat;
  background-image: linear-gradient(90deg, hsla(0, 0%, 100%, 0), hsla(0, 0%, 100%, .8) 50%, hsla(0, 0%, 100%, 0)), linear-gradient(#e5e5e5 100%, transparent 0);
  background-size: 99% 100%;
}
代码语言:javascript
运行
AI代码解释
复制
<div class="skeleton"></div>

我尝试了一些属性,但仍然不明白它是如何工作的。特别是在将background-size: 99% 100%;改为background-size: 100% 100%;动画幻灯片时!

你能解释一下吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-18 22:21:15

我不知道你的浏览器是什么和它的版本。但在我的电脑上,如果是background-size: 100% 100%,动画将会停止。(实际上,background-position将被忽略)

这个技巧的想法是用background-position移动background-image (线性梯度)。(有关详细信息,请查看以下代码中的注释)

关于你的第二个问题,你应该参考这个答案CSS background-position ignored when using background-size。快速总结一下,如果background-size达到100%,就不能对background-position使用percent。这是因为背景中的图像没有可移动的空间。

如果你坚持使用100%的background-size。恐怕您必须使用绝对值。

顺便说一句,我已经升级了代码。现在看起来好多了。

代码语言:javascript
运行
AI代码解释
复制
html {
  height: 100%
}

body {
  height: 100%;
  margin: 0
}

@keyframes loading {/* original code */
  from {/* This is the position of image of the first frame */
    background-position: -5000% 0, 0 0
  }
  to {/* This is the pos of img of the last frame */
    background-position: 5000% 0, 0 0
  }
}

@keyframes betterLoading {
  0% {/* This is the position of image of the first frame */
    background-position: -5000% 0, 0 0
  }
  50% {
    /* This is the pos of img of a frame in the middle happening animation */
    /* If duration is 1s then the pos below will be at 0.5s */
    background-position: 5000% 0, 0 0
  }
  100% {/* This is the pos of img of the last frame */
    background-position: -5000% 0, 0 0
  }
}

.skeleton {
  height: 100%;
  animation-name: betterLoading;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  background-color: #fff;
  background-repeat: no-repeat;
  background-image: linear-gradient(90deg, hsla(0, 0%, 100%, 0), hsla(0, 0%, 100%, .8) 50%, hsla(0, 0%, 100%, 0)), linear-gradient(green 100%, transparent 0);
  background-size: 99% 100%, cover;
}
代码语言:javascript
运行
AI代码解释
复制
<div class="skeleton"></div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52393135

复制
相关文章
CSS3变形、渐变、动画的基本使用
CSS3 转换可以对元素进行移动、缩放、转动、拉长或拉伸。 转换的效果是让某个元素改变形状,大小和位置。 您可以使用 2D 或 3D 转换来转换您的元素。 2D变换方法: + translate() + rotate() + scale() + skew() 具体的详情描述可以看:菜鸟教程 简单使用代码
不愿意做鱼的小鲸鱼
2022/09/24
1.4K0
CSS3变形、渐变、动画的基本使用
CSS3 渐变 — 径向渐变
HTML5学堂(码匠):有了解上周CSS3线性渐变的大家想必能很快掌握CSS3的径向渐变,两者的实现方法大同小异,但CSS3的径向渐变比线性渐变稍微复杂些,颜色不再沿着一条直线轴变化,而是从一个起点朝所有方向混合,属性参数也繁多复杂,不过别担心,下面会为大家详细介绍。 本文主要内容 1. 径向渐变简介 2. 径向渐变属性与参数 3. 径向渐变基本用法 1、径向渐变简介 CSS3径向渐变,是一种从起点到终点颜色从内到外进行圆形渐变,就像从中间点向四周方向拉伸一样。CSS3径向渐变不再像线性渐变那样沿着一条直线
HTML5学堂
2018/03/13
3.5K0
CSS3 渐变 — 径向渐变
css3渐变
线性渐变: 属性:linear-gradinet(开始位置 角度,起始颜色,终止颜色 ) 开始位置:渐变开始的位置,属性值可以为百分比/长度/left、right、top、bottom(可组合使用) 角度:渐变终止方向的角度,当开始位置为数值或百分比时候可用 起始颜色...... 终止颜色...... 重复渐变将属性修改为:repeating-linear-gradinet()
用户3159471
2018/09/13
1.7K0
css3 渐变
渐变分线性渐变(linear-gradient)和径向渐变(radial-gradient);这里写的代码省去了-webkit-,-moz-,-o-这些前缀,使用的时候不要忘记.
用户2458785
2018/08/29
1.1K0
css3 渐变
css3颜色渐变_灰色渐变图片
*{margin:0;padding:0}.words{font-size:25px;font-weight:700;text-align:center;margin:20px 0}div{width:300px;height:150px;margin:0 auto 10px;border:1px solid #ddd;
全栈程序员站长
2022/11/17
2.4K0
css3 transition原理(动画系列二)
CSS 过渡(transition)是通过定义元素从 起点的状态 和 结束点的状态 ,在一定的时间区间内实现元素平滑地过渡或变化 的一种补间动画机制。你可以让属性的改变过程持续一段时间,而不是立即生效。
全栈程序员站长
2022/09/14
1.4K0
css3 渐变 原
CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡。以前,你必须使用图像来实现这些效果。但是,通过使用 CSS3 渐变(gradients),你可以减少下载的事件和宽带的使用。此外,渐变效果的元素在放大时看起来效果更好,因为渐变(gradient)是由浏览器生成的。
tianyawhl
2019/04/04
1.1K0
css3 渐变
                                                                            原
css3 gradient 渐变
分为linear-gradient(线性渐变)和radial-gradient(径向渐变)。 1.线性渐变在Mozilla 下应用   语法:-moz-linear-gradient( [<p
用户1197315
2018/01/19
6970
CSS3 渐变 gradient
初次接触 css3 渐变是在很早以前了,觉得这个东西很有意思哈,跟玩 PS 似的,可以做出很多华丽的东西
chuchur
2022/10/25
6520
CSS3 渐变 gradient
css3线性、径向渐变
背景线性渐变 background: linear-gradient(); 第一个参数: (角度 或者是一个线性的方向)可选的 默认的是(to bottom) 旋转的方向是顺时针的 第二个参数: 开始颜色 color 或者是百分比 或者是长度 第三个参数: 结束颜色
河湾欢儿
2018/09/06
6510
CSS3之渐变效果
CSS3渐变色生成网站:http://gradients.glrzad.com/
py3study
2020/01/08
1.1K0
swift动画 —— 颜色渐变以及转换动画
这篇文章是通过结合使用CAGradientLayer、CABasicAnimation
CC老师
2022/01/14
2.2K0
swift动画 —— 颜色渐变以及转换动画
CSS3 transition 渐变特效
transition的使用需要和 hover 搭配使用 transition:属性 持续的时间(s) ease-in/ease(曲线规律) 多少秒后开始(s) transition:all 持续时间(s) // 简易写法
全栈程序员站长
2022/09/14
4170
【CSS3】CSS3 动画 ① ( CSS3 动画简介 | CSS3 动画实现步骤 | 动画定义 | 代码示例 )
在 CSS3 中 , 可以设置 多个 动画节点 , 精确地 控制 一个动画 或 若干动画 , 实现 复杂 的 动效 ;
韩曙亮
2023/10/15
4010
【CSS3】CSS3 动画 ① ( CSS3 动画简介 | CSS3 动画实现步骤 | 动画定义 | 代码示例 )
CSS3背景与渐变
一、CSS3 背景图像区域 background-clip(指定背景绘制区域) ackground-clip: border-box / padding-box / content-box; /*没有padding的时候,content-box和padding-box效果一样*/ 兼容性:IE9+、FireFox、Chrome、Safari、Opera 二、CSS3 背景图像定位 background-position (背景定位) background-position: px / %
Leophen
2019/08/23
1.1K0
径向渐变 - CSS3 Radial Gradients
渐变在网站中常常用到:如果你想使得(按钮,标题等)有生气,就可以使用渐变。虽然你应该尽量少的使用渐变,以免网页看起来像是圣诞树一样。以往我们常常使用背景图片来给我们的界面添加渐变效果,而且这种方式还是可以的,但是这种方式显得不那么灵活。因为,每次你想要改变渐变的颜色,大小以及渐变的方向时,你都不得不在图片编辑软件中对图片做修改。 CSS Image Values and Replaced Content Module Level 3允许我们以编程的方式在元素上创建渐变。你可以通过代码来改变渐变的颜色,方向等,并且是如此的灵活。例如,你可以在元素上以不同的百分比设置color stops;当元素的尺寸发生改变时,渐变也会做出调整来适应。 在说明书中定义了2种渐变, linear gradients and radial gradients。在前一篇文章中,我们阐述了线性渐变 - CSS3 linear gradients。这篇文章将关注于径向渐变。我们将会阐述所有的基础语法,并会在接近文章尾部的地方,看一下repeating-radial-gradient。
lesM10
2019/08/26
8770
径向渐变 - CSS3 Radial Gradients
易迅网CSS3 Gradient渐变特效-鼠标滑过出现白色斜线动画
作者:matrix 被围观: 2,854 次 发布时间:2013-10-16 分类:Wordpress 兼容并蓄 零零星星 | 3 条评论 »
HHTjim 部落格
2022/09/26
5840
易迅网CSS3 Gradient渐变特效-鼠标滑过出现白色斜线动画
css3 动画
有人将HTML 5和CSS 3比做Flash的杀手,这是有原因的。因为除了HTML 5能够实现矢量图形制作外,使用CSS 3还可以对图像进行更细致的操作,它新增了动画功能,要实现图像的变形等功能,只需要一行CSS就可以实现了。那么结合HTML 5和JavaScript就可以将动画做得更美,效果完全可以接近Flash。但要想实现Flash的那种效果,还是需要下一定工夫的,但新增的动画功能 已经足够让人兴奋了。通过下面这个例子,读者可以试验一下利用简单的CSS 3特性完成鼠标悬停时的动画效果,见代码清单3-19。
py3study
2020/01/09
2.5K0
css3动画
image.png 不用javascript也可以做互动动画。
前朝楚水
2018/04/02
1.4K0
css3动画
CSS3 动画
渐变指在两个或多个指定的颜色之间显示平稳的过渡,渐变一般分为线性渐变和径向渐变,呈一条直线渐变的称作线性渐变,而从圆心到四周扩散的过程成为径向渐变
Nian糕
2020/06/05
8520
CSS3 动画

相似问题

渐变CSS3动画

66

css3动画+滑动键不工作

11

创建CSS3动画渐变背景

119

具有渐变的CSS3动画颜色

21

滚动/滑动上的CSS3动画

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档