当前位置: 首页 > 知识库问答 >
问题:

我在使用CSS控制动画svg边框时遇到了麻烦

钱弘壮
2023-03-14
html {
  background: white;
}
div {
  position: fixed;
  height: 200px;
  width: 605px;
  position: fixed;
  left: 30%
}
.mainNav {
  position: fixed;
  top: 6;
}
[class="navBorder"] .outline {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  stroke: #7272f8;
  stroke-width: 11px;
  fill: none;
}
.navBorder .outline {
  stroke-dasharray: 2000;
  stroke-dashoffset: 1900;
  -webkit-transition: 0.5s;
  -moz-transition: 0.5s;
  -o-transition: 0.5s;
  transition: 0.5s;
}
.navBorder:hover .outline {
  stroke-dasharray: 1100 0;
  stroke-dashoffset: 0;
}
<div>
  <a class="navBorder" target="_blank">
    <svg height="100%" width="100%" xmlns="http://www.w3.org/2000/svg">
      <rect class="outline" height="100%" width="100%" />
    </svg>
  </a>
</div>

http://codepen.io/lorehill/pen/pepxar

问题是我似乎不能得到边界的起始位置在顶部,中心,然后关闭中心底部。

我很困惑地试图弄清楚如何计算为起始位置设置stroke-dasharray和stroke-dashoffset所需的值,以便获得我所追求的效果。

共有1个答案

易骁
2023-03-14

AFAIK中,笔画的起始位置始终是rect元素的左上方的rect的起始点。

我似乎不能得到边框的起始位置是在顶部中心然后关闭中心底部。

我认为您需要两个折线元素,尽管您可以在这两个元素上使用同一个类。

svg {
  height: 100px;
  margin: 1em;
}
.outline {
  fill: lightblue;
  stroke-dasharray: 200;
  stroke-dashoffset: 190;
  -webkit-transition: 0.5s;
  -moz-transition: 0.5s;
  -o-transition: 0.5s;
  transition: 0.5s;
}
svg:hover .outline {
  stroke-dasharray: 200 0;
  stroke-dashoffset: 0;
}
   
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 100 100">

  <polyline class="outline" points="50,0 100,0, 100,100 50,100" style="stroke:#660000; stroke-width: 3;" />

  <polyline class="outline" points="50,0 0,0 0,100 50,100" style="stroke:#660000; stroke-width: 3;" />

</svg>
 类似资料:
  • 我想在我的Mac(OS X 10.10.3)中安装git。我写:brew install git 但它报告说: 更让我困惑的是,在我的finder:/usr/local/中,“include”和“lib”应该是文件夹,但却变成了文件。我怎样才能解决错误“找不到OTool”和安装git与brew和 为什么我的库和包含文件夹变成文件?...谢谢你的帮助!

  • 我试图从命令行运行java和javac,但设置JavaCSDK工具的类路径时遇到问题。 我已经通过windows环境变量设置成功地添加了CLASSPATH变量,这对java命令有效。我能够从命令行中的任何目录执行类文件。但是,当尝试使用javac命令(其中.java文件位于同一类路径目录中)时,我收到一条错误消息:找不到该文件。 我的CLASSPATH变量设置为: 这里有三个例子来说明我的意思。

  • 这是为了返回一个数字数组,该数组是基数组中数组的最高值。当我使用for语句时,我可以让它工作。但我试着简化它,却不明白为什么它不起作用。任何帮助都将受到感谢。

  • 问题内容: 我的Android应用程序具有登录屏幕,并且用户登录到他的仪表板。但是我不希望用户每次关闭应用程序并启动时都进行登录(除非他们从仪表板上注销)。因此,我创建了一个类来检查用户是否登录 CheckLoggedIn.java 当用户登录时,我将布尔值更改为,并在注销时更改。但是,当我通过成功登录并关闭并再次启动进行检查时,它仍然进入LoginActivity。为什么? 编辑:现在,我明白这

  • 我有一个包含两个多边形的SVG。我想动画的第一个多边形从头到尾和动画的第二个多边形之后。动画将像填充一样工作。 所以我要找的输出是,动画从M的左下方开始,到右下方结束。任何帮助都将不胜感激。

  • 问题内容: 我不熟悉Linux和Amazon EC2。 我通过以下两个链接配置JAVA_HOME 如何知道JAVA_HOME_Variable bash_profile 所以我bash_profile中的当前路径是 现在我正在尝试启动./spoon.sh,它给我错误 那么有人可以建议出什么问题吗? 问题答案: Pentaho不支持openjdk Java版本。 安装Oracle / Sun Jav