- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为看起来像 this one 的骨架添加一个微妙的微光动画。 .我目前有一个看起来像这样的屏幕(参见 CodePen ):
我正在尝试编写一个可以像这样接受 SVG 的骨架组件:
<div class="skeleton" aria-busy="true">
<svg width="233" height="68" viewBox="0 0 233 68" xmlns="http://www.w3.org/2000/svg">
<g opacity="0.8">
<rect x="79" y="32" width="154" height="11" rx="2" fill="black" fill-opacity="0.07"/>
<rect width="179" height="20" rx="2" fill="black" fill-opacity="0.07"/>
<rect x="79" y="52" width="84" height="11" rx="2" fill="black" fill-opacity="0.07"/>
<rect y="26" width="67" height="42" rx="2" fill="black" fill-opacity="0.07"/>
</g>
</svg>
</div>
这是我用来为 SVG 上方的闪光设置动画的 CSS:
.skeleton {
overflow: hidden;
position: relative;
}
.skeleton::before {
content: '';
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: linear-gradient(to right, rgb(243, 242, 241) 0%, rgb(237, 235, 233) 50%, rgb(243, 242, 241) 100%) 0px 0px / 90% 100% no-repeat rgb(243, 242, 241);
transform: translateX(-100%);
animation-name: skeleton-animation;
animation-duration: 2s;
animation-timing-function: ease-in-out;
animation-direction: normal;
animation-iteration-count: infinite;
}
@keyframes skeleton-animation {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(100%);
}
}
我正在尝试弄清楚如何使用描述的某种掩码 here , 这样动画微光只发生在 SVG 上。
最佳答案
一种方法是使用 SVG
作为 mask-image
并更新线性渐变 background-position
:
示例(使用您自己的渐变颜色进行更新):
.skeleton {
overflow: hidden;
position: relative;
width: 233px;
height: 68px;
background: linear-gradient(to right, rgb(143, 142, 141) 0%, rgb(237, 235, 233) 50%, rgb(143, 142, 141) 100%) 0px 0px / 100% 100% rgb(243, 242, 241);
-webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjMzIiBoZWlnaHQ9IjY4IiB2aWV3Qm94PSIwIDAgMjMzIDY4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KICAgIDxnIG9wYWNpdHk9IjAuOCI+DQogICAgICA8cmVjdCB4PSI3OSIgeT0iMzIiIHdpZHRoPSIxNTQiIGhlaWdodD0iMTEiIHJ4PSIyIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIi8+DQogICAgICA8cmVjdCB3aWR0aD0iMTc5IiBoZWlnaHQ9IjIwIiByeD0iMiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMSIvPiANCiAgICAgIDxyZWN0IHg9Ijc5IiB5PSI1MiIgd2lkdGg9Ijg0IiBoZWlnaHQ9IjExIiByeD0iMiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMSIvPg0KICAgICAgPHJlY3QgeT0iMjYiIHdpZHRoPSI2NyIgaGVpZ2h0PSI0MiIgcng9IjIiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjEiLz4NCiAgICA8L2c+DQogIDwvc3ZnPg==");
margin: 1em;
animation: linearAnim 2s infinite linear
}
@keyframes linearAnim {
0% {
background-position: 0px 0px;
}
100% {
background-position: 230px 0px;
}
}
/* demo purpose only */
.skeleton + .skeleton {
background: linear-gradient(to right, rgba(143, 142, 141,0.75) 0%, rgba(237, 235, 233, 0.75) 50%, rgba(143, 142, 141, 0.75) 100%) 0px 0px / 100% 100% rgba(243, 242, 241, 0.5);
}
.skeleton.blue {
background-color:blue;
}
.skeleton.red {
background-color:red;
}
.skeleton.yellow {
background-color:yellow;
}
.skeleton.green {
background-color:green;
}
.flex {display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding-top:0.6em;font-size:10px;color:#fff8;}
body {background:#bee; display:grid;grid-template-columns:repeat(auto-fill, 300px);}
<div class="skeleton" aria-busy="true"></div>
<div class="skeleton blue" aria-busy="true"></div>
<div class="skeleton red" aria-busy="true"></div>
<div class="skeleton yellow" aria-busy="true"></div>
<div class="skeleton green flex" aria-busy="true">On its way ...</div>
这是一个类似的问题,但方法不同 CSS animation, only render overlay on specific elements
如果要求将您的 SVG 放在 HTMl 中,您可以给它一个 ID 并即时进行编码部分
// https://www.w3docs.com/snippets/javascript/how-to-encode-and-decode-strings-with-base64-in-javascript.html
let svg = document.getElementById("mask").outerHTML
let sk =document.querySelector(".skeleton");
let encodedString = btoa(svg);
sk.setAttribute("style", " -webkit-mask-image: url('data:image/svg+xml;base64," + encodedString + "')");
.skeleton {
overflow: hidden;
position: relative;
width: 233px;
height: 68px;
background: linear-gradient( to right, rgb(143, 142, 141) 0%, rgb(237, 235, 233) 50%, rgb(143, 142, 141) 100%) 0 0 / 200% 100% rgb(243, 242, 241);
margin: 1em;
animation: linearAnim 1.25s infinite linear;
}
@keyframes linearAnim {
100% {
background-position: -200% 0;
}
}
#mask {
display: none;
}
<div class="skeleton" aria-busy="true">
<svg id="mask" width="233" height="68" viewBox="0 0 233 68" xmlns="http://www.w3.org/2000/svg">
<g opacity="0.5">
<rect x="79" y="32" width="154" height="11" rx="2" fill="black" fill-opacity="0.5"/>
<rect width="179" height="20" rx="2" fill="black" fill-opacity="0.5"/>
<rect x="79" y="52" width="84" height="11" rx="2" fill="black" fill-opacity="0.5"/>
<rect y="26" width="67" height="42" rx="2" fill="black" fill-opacity="0.5"/>
</g>
</svg>
</div>
关于html - 如何使用 CSS Mask 为骨架屏幕制作动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63914191/
我被要求从存在的主干模型(可选)中删除几个属性。我的第一个意图是在模型上放置类似before_save回调的内容。但是我没有发现任何信息。 有可能在 Backbone 这样做吗? 最佳答案 只需覆盖默
我对使用 Backbone .js模型获取方法感到非常困惑。请参阅以下示例 Backbone 路由器: profile: function(id) { var model = new Accoun
我想根据现有的分段创建骨架,类似于此处所做的(来自 sk-image): 但是我想对 3D 数据执行此操作。那里有代码吗?最好使用 Python,但任何语言都有帮助。 我知道 this很棒的网站,但我
通常,我为与之合作的后端开发人员创建静态html prototype/skeleton。这有助于在实施网站之前发现UI / IA中的错误并进行昂贵的重写。 我想更进一步,并创建这些prototypes
我最近发现了 skeleton.css,它正是我要找的。我不太了解列,但是按钮的示例完全符合我的要求,因为在屏幕变窄时堆叠元素。我所拥有的效果很好,但我还不够精通 css,无法将按钮制作成列。我已将
我正在使用 Skeleton.css 在 wordpress 中创建一个网格系统 教程显示了标题的以下标记,在这里您可以看到 Logo 有 3 个类,- 五列和 clearfix
我正在使用“Microsoft Kinect SDK 1.8”。对于骨架跟踪,我计算了 FPS,大约是 10-15。 “Microsoft”是否提供任何规范?我想提高骨架帧数据的 FPS,可以吗? 最
我正在尝试将两个图像放在一个表单旁边,并使用骨架 css 使其响应: U
有谁知道我在哪里可以找到一个像样的框架页面或用于创建全 FBML Facebook 应用程序的示例?我查遍了官方维基并做了很多搜索,但我找不到任何可靠的东西。 wiki 中的大多数示例要么过时、损坏,
我想制作一个骨架 css 直到页面完全加载。我想到了这个解决方案。因此,如果 javascript 被禁用,我不会有任何问题。那是对的吗?也许你有更好的解决方案?谢谢! .slider {
我有一个使用骨架 css 实现的表单。我使用的是三列(即三分之一列)布局,但由于列内容的各自长度,这导致了大量空白。我更喜欢类似于以下的水平布局: 文本框 1 文本框 2 文本框 3 文本框4 文本框
假设我有一个名为 dict1 的字典,它具有我想要的新字典的骨架(顺序和嵌套深度)。例如: dict1 = { "Personnel": { "Performance": ""
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
因此,我了解我们可以执行以下操作: Collection.fetch({success:function(){bla ..}}) 但是说我想要这样的事情: Collection.fetch({成功:功
我想开发一个 swift cocoa pod,但是我不知道如何开始。 Cocoapods 预发布版现在支持 swift但是他们目前没有说明如何创建新的 swift 项目 pod 的说明。 当前关于创建
我目前正在使用提供深度图的 Processing Kinect 库。如果可能的话,我想知道如何使用它并使用它来创建 2D 骨架。不在这里寻找任何代码,只是我可以用来实现这些结果的一般过程。 此外,鉴于
我创建了一个使用多个“ View ”运行的 Vaadin Web 应用程序。 我想做的是应用 MVC/MVP 设计模式,它将无缝集成各种 View 中显示的信息。 到目前为止,我有一个带有登录、注册和
如何实现下面提到的view the URL 一种加载 View ,类似于许多使用它的应用程序,如 TvShowTime 最佳答案 这称为微光效果。 Facebook 已经开源了一个库,提供类似 fac
据我所知,JAX-WS(JAX-RPC)的前身使用的是 客户端 stub (代理)服务器骨架(也称为服务器端 stub ,或 Tie)系统,用于客户端和服务之间的通信。 但是,如果我正在阅读 JAX-
我已经编写了一个 WSDL 来生成 stub 和骨架,但我的骨架没有在 eclipse 中生成。我正在使用 Eclipse 的 Helios 版本。 谁能说出 WSDL 的问题是什么? 我想使用 Ax
我是一名优秀的程序员,十分优秀!