javascript – 使用CSS3或jQuery从图像中点后点动画

我想从下面的图像点后点动画,但我的问题是图像的弯曲部分(图像的底部).

在开始时,应隐藏所有点,然后逐个动画到视图中逐个点.

我有以下代码:

<div id="dots1"></div>

#dots1 {
    -moz-transition: height 1s linear;
    -o-transition: height 1s linear;
    -webkit-transition: height 1s linear;
    transition: height 1s linear;
    position: absolute;
    left: 50%;
    z-index: 1;
    margin: 0 0 0 -1px;
    width: 3px;
    height: 0;
    background: url(image/pic.png) 0 0 no-repeat;
}
最佳答案
您可以使用两个SVG路径元素来实现此效果,如下面的代码段所示.创建了您需要的两条曲线形式的路径.一条路径(位于底部)具有笔划的点图案(黑色)和另一条位于顶部的复制路径.设置复制路径笔划,使得对于路径的一个全长,它是白色的,而对于另一个长度,它是透明的.

在复制路径上添加动画以为笔划的偏移设置动画.当偏移被动画化时,笔划的白色部分缓慢移出视野,透明部分开始进入视野.当白色部分开始偏离视野时,它下面的黑点开始显露出来.

在开始时理解起来有点复杂,但是一旦熟悉了path,stroke-dasharraystroke-dashoffset,它就会变得简单.

svg {
  height: 400px;
}
path {
  fill: none;
}
path.dot {
  stroke: black;
  stroke-dasharray: 0.1 4;
  stroke-linecap: round;
}
path.top {
  stroke: white;
  stroke-width: 2;
  stroke-dasharray: 250;
  stroke-linecap: round;
  animation: dash 15s linear forwards;
}
@keyframes dash {
  from {
    stroke-dashoffset: 0;
  }
  to {
    stroke-dashoffset: -250;
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<svg viewBox='0 0 100 100'>
  <path d='M1,1 1,45 C1,60 30,60 30,75 C30,90 1,90 1,100' class='dot' />
  <path d='M1,1 1,45 C1,60 30,60 30,75 C30,90 1,90 1,100' class='top' />
</svg>

转载注明原文:javascript – 使用CSS3或jQuery从图像中点后点动画 - 代码日志