程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SVG 路径未按预期设置动画的问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决SVG 路径未按预期设置动画的问题?

开发过程中遇到SVG 路径未按预期设置动画的问题的问题如何解决?下面主要结合日常开发的经验,给出你关于SVG 路径未按预期设置动画的问题的解决方法建议,希望对你解决SVG 路径未按预期设置动画的问题有所启发或帮助;

我正在使用关于内嵌 SVG 的 this 视频教程作为参我试图复制使 SVG 线看起来从中间点画出来的效果。视频中的方法和我的方法之间的唯一区别是,在视频中,SVG 行具有预定义的长度,而我的则是可变长度。@H_262_3@

该方法背后的想法非常简单。您可以创建任意大小的 SVG 线,然后将其 stroke-dasharray 属性设置为 '0,length/2',并将它的 stroke-dashoffset 属性设置为 '-length/2',这样该线就不会在首先,它的“起点”设置在它的中间点。然后,当相关输入字段被聚焦时,您将 dasharray 属性更改为 'length,0' 并将 dashoffset 属性更改为 0。这使得虚线等于线的长度。这应该使线条看起来是从中间点画出来的,如果你从一开始就知道线条的长度,这确实会发生。但是,当我尝试使用没有预定长度的线来实现这种方法时,情况并非如此。我的线条似乎几乎从线条的开头而不是从中间点开始绘制。我很困惑为什么会发生这种情况。我正在使用 JavaScript 来计算线的长度。下面是我的代码片段。@H_262_3@

@H_502_7@
function animateline() {

  const input = document.querySELEctor('.input');
  const line = document.querySELEctor('.focus');
  
  const length = line.getTotALLENgth();
  
  line.style.strokeDasharray = `0,${length/2}`;
  line.style.strokeDashoffset = `-${length/2}`;
  
  input.addEventListener('focus',function() {
    line.style.strokeDasharray = `${length},0`;
    line.style.strokeDashoffset = `0`;
  });
};


animateline();
/* input module */

.input {
  BACkground: none;
  border: none;
  wIDth: 100 %;
  padding: 0.5em;
  padding-left: 0;
  color: white;
  Font-family: inherit;
  Font-size: 0.85em;
}

.input:focus {
  outline: none;
}

.line {
  wIDth: 100%;
  height: 2px;
  padding: 0;
  stroke: grey;
}

.focus {
  stroke: black;
  Transition: all 5s;
  stroke-dasharray: 0,10000;
}
<!DOCTYPE HTML>
<HTML lang="en">

<head>
  <Meta charset="UTF-8">
  <Meta http-equiv="X-UA-Compatible" content="IE=edge">
  <Meta name="vIEwport" content="wIDth=device-wIDth,initial-scale=1.0">
  <title>document</title>
</head>

<body>
  <input class="input" type="text" name="revIEw[body]" placeholder="Leave a revIEw..." required>
  <svg xmlns="http://www.w3.org/2000/svg" class="line" vIEwBox="0 0 40 2" preserveAspectRatio="none">
                        <path d="M0 1 L40 1"></path>
                        <path d="M0 1 L40 1" class="focus"></path>
</svg>
</body>

</HTML>

大佬总结

以上是大佬教程为你收集整理的SVG 路径未按预期设置动画的问题全部内容,希望文章能够帮你解决SVG 路径未按预期设置动画的问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。