具有阻止JavaScript的CSS闪光效果

时间:2019-10-13 18:52:13

标签: javascript css reactjs

我有一个带有以下CSS的闪闪发光的React组件

background: #ebebeb;
background-image: linear-gradient(to right,  #ebebeb 0%, #c5c5c5 20%,  #ebebeb 40%,  #ebebeb 100%);

和我应用的动画关键帧如下:

{
    0%: { background-position: -468px 0 };
    100%: { background-position: 468px 0 };
}

我的主页挂载得很重。因此动画冻结了大约一秒钟。 我读到动画过渡是在线程https://www.phpied.com/css-animations-off-the-ui-thread/

之外完成的

有人可以帮我用类似的脱线方式来实现我的闪光效果吗?

1 个答案:

答案 0 :(得分:1)

按照链接中的建议使用转换。这是一个伪元素的想法:

.box {
  background-image: linear-gradient(to right, #ebebeb calc(50% - 100px), #c5c5c5 50%, #ebebeb calc(50% + 100px));
  background-size:0;
  height: 200px;
  position:relative;
  overflow:hidden;
}
.box:before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:calc(200% + 200px);
  bottom:0;
  background-image:inherit;
  animation:move 2s linear infinite reverse; 
}
@keyframes move{
  to {
    transform:translateX(calc(-50% - 100px));
  }
}
<div class="box">

</div>