Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何修复svg CSS动画?_Css_User Interface_Svg_Css Animations_User Experience - Fatal编程技术网

如何修复svg CSS动画?

如何修复svg CSS动画?,css,user-interface,svg,css-animations,user-experience,Css,User Interface,Svg,Css Animations,User Experience,我有一个SVG按钮可以在明暗模式之间切换,这个按钮使用CSS设置动画,SVG代码直接在HTML代码中。在我的本地主机上,一切都很好,但当我将代码提交到GitHub页面时,它根本不起作用。我的项目是在11月完成的 这是HTML <a (click)="changeTheme()" class="btn-theme"> <svg id="theme-selector" xmlns="

我有一个SVG按钮可以在明暗模式之间切换,这个按钮使用CSS设置动画,SVG代码直接在HTML代码中。在我的本地主机上,一切都很好,但当我将代码提交到GitHub页面时,它根本不起作用。我的项目是在11月完成的

这是HTML

<a (click)="changeTheme()" class="btn-theme">
    <svg
      id="theme-selector"
      xmlns="http://www.w3.org/2000/svg"
      xmlns:xlink="http://www.w3.org/1999/xlink"
      width="300"
      height="150"
      viewBox="0 0 300 150"
    >
      <defs>
        <linearGradient
          id="linear-gradient"
          x1="1"
          y1="0.7"
          x2="0.11"
          y2="0.127"
          gradientUnits="objectBoundingBox"
        >
          <stop offset="0" stop-color="#201baf" />
          <stop offset="1" stop-color="#6d38a0" />
        </linearGradient>
        <linearGradient
          id="linear-gradient-2"
          x1="1"
          y1="0.7"
          x2="0.11"
          y2="0.127"
          gradientUnits="objectBoundingBox"
        >
          <stop offset="0" stop-color="#3ecaff" />
          <stop offset="1" stop-color="#05f" />
        </linearGradient>
        <radialGradient
          id="theme-radial-gradient"
          cx="0.5"
          cy="0.5"
          r="0.674"
          gradientUnits="objectBoundingBox"
        >
          <stop offset="0" stop-color="#fff700" />
          <stop offset="1" stop-color="#f70" />
        </radialGradient>
        <linearGradient
          id="linear-gradient-3"
          x1="0.5"
          x2="0.5"
          y2="1"
          gradientUnits="objectBoundingBox"
        >
          <stop offset="0" stop-color="#daf7f9" />
          <stop offset="1" stop-color="#95c0c4" />
        </linearGradient>
      </defs>
      <g
        id="bg-night"
        stroke="#dad9ec"
        stroke-width="10"
        fill="url(#linear-gradient)"
      >
        <rect width="300" height="150" rx="75" stroke="none" />
        <rect x="5" y="5" width="290" height="140" rx="70" fill="none" />
      </g>
      <g
        id="bg-day"
        class="bg-day"
        stroke="#dad9ec"
        stroke-width="10"
        fill="url(#linear-gradient-2)"
      >
        <rect width="300" height="150" rx="75" stroke="none" />
        <rect x="5" y="5" width="290" height="140" rx="70" fill="none" />
      </g>
      <g
        id="luna"
        class="moon"
        transform="translate(-4.896 1)"
        opacity="0"
      >
        <circle
          id="Ellipse_2"
          data-name="Ellipse 2"
          cx="47"
          cy="47"
          r="47"
          transform="translate(30.896 28)"
          fill="#97abbf"
        />
        <path
          id="Path_1"
          data-name="Path 1"
          d="M47,0C72.957,0,71.333,21.043,71.333,47S72.957,94,47,94A47,47,0,0,1,47,0Z"
          transform="translate(30 28)"
          fill="#dcefff"
        />
      </g>
      <g
        id="estrellaz"
        class="moon"
        transform="translate(-4.896 3)"
        opacity="0"
      >
        <circle
          id="Ellipse_3"
          data-name="Ellipse 3"
          cx="2.5"
          cy="2.5"
          r="2.5"
          transform="translate(142.896 39)"
          fill="#fcadad"
        />
        <circle
          id="Ellipse_4"
          data-name="Ellipse 4"
          cx="2.5"
          cy="2.5"
          r="2.5"
          transform="translate(178.896 28)"
          fill="#fff"
        />
        <circle
          id="Ellipse_5"
          data-name="Ellipse 5"
          cx="4"
          cy="4"
          r="4"
          transform="translate(166.896 75)"
          fill="#fff"
        />
        <circle
          id="Ellipse_6"
          data-name="Ellipse 6"
          cx="2.5"
          cy="2.5"
          r="2.5"
          transform="translate(194.896 108)"
          fill="#fcadad"
        />
        <circle
          id="Ellipse_7"
          data-name="Ellipse 7"
          cx="2.5"
          cy="2.5"
          r="2.5"
          transform="translate(158.896 113)"
          fill="#fff"
        />
        <circle
          id="Ellipse_8"
          data-name="Ellipse 8"
          cx="4"
          cy="4"
          r="4"
          transform="translate(227.896 70)"
          fill="#fcadad"
        />
        <circle
          id="Ellipse_9"
          data-name="Ellipse 9"
          cx="2.5"
          cy="2.5"
          r="2.5"
          transform="translate(244.896 52)"
          fill="#fff"
        />
        <circle
          id="Ellipse_10"
          data-name="Ellipse 10"
          cx="2.5"
          cy="2.5"
          r="2.5"
          transform="translate(256.896 99)"
          fill="#f7ff82"
        />
        <circle
          id="Ellipse_11"
          data-name="Ellipse 11"
          cx="2.5"
          cy="2.5"
          r="2.5"
          transform="translate(267.896 48)"
          fill="#fcadad"
        />
        <circle
          id="Ellipse_12"
          data-name="Ellipse 12"
          cx="4"
          cy="4"
          r="4"
          transform="translate(227.896 31)"
          fill="#f7ff82"
        />
      </g>
      <path
        id="sol"
        class="sun"
        d="M66.762,2.185a2,2,0,0,1,3.277.878l4.354,14.254a2,2,0,0,0,2.363,1.364l14.521-3.356a2,2,0,0,1,2.4,2.4L90.319,32.244a2,2,0,0,0,1.364,2.363l14.254,4.354a2,2,0,0,1,.878,3.277l-10.167,10.9a2,2,0,0,0,0,2.729l10.167,10.9a2,2,0,0,1-.878,3.277L91.683,74.392a2,2,0,0,0-1.364,2.363l3.356,14.521a2,2,0,0,1-2.4,2.4L76.756,90.319a2,2,0,0,0-2.363,1.364l-4.354,14.254a2,2,0,0,1-3.277.878l-10.9-10.167a2,2,0,0,0-2.729,0l-10.9,10.167a2,2,0,0,1-3.277-.878L34.608,91.683a2,2,0,0,0-2.363-1.364L17.724,93.676a2,2,0,0,1-2.4-2.4l3.356-14.521a2,2,0,0,0-1.364-2.363L3.063,70.039a2,2,0,0,1-.878-3.277l10.167-10.9a2,2,0,0,0,0-2.729L2.185,42.238a2,2,0,0,1,.878-3.277l14.254-4.354a2,2,0,0,0,1.364-2.363L15.324,17.724a2,2,0,0,1,2.4-2.4l14.521,3.356a2,2,0,0,0,2.363-1.364L38.961,3.063a2,2,0,0,1,3.277-.878l10.9,10.167a2,2,0,0,0,2.729,0Z"
        transform="translate(171 21)"
        fill="url(#theme-radial-gradient)"
      />
      <path
        id="nube"
        class="nube"
        d="M124.067,92.762h55.688s7.515-5.544,5.914-13.8-3.45-15.647-12.32-19.22-23.162,4.928-23.162,4.928S145.135,49.64,136.88,47.423s-12.69.986-19.713,8.378-8.378,21.191-8.378,21.191-2.218-5.544-6.9-3.45A25.6,25.6,0,0,0,90.063,85.37c-2.094,4.8,3.45,7.392,3.45,7.392Z"
        transform="translate(34.076 16.238)"
        fill="url(#linear-gradient-3)"
      />
    </svg>
  </a>
这是CSS

root:{
  --op-from: 0%;
  --op-to: 100%;
  --moon-op-from: 100%;
  --moon-op-to: 0%;
  --nube-from: 250px, 16.238px;
  --nube-to: 34.076px, 16.238px;
  --sun-from: -30px, 21px;
  --sun-to: 171px, 21px;
} 
.dark-theme{
  --op-from: 100%;
  --op-to: 0%;
  --moon-op-from: 0%;
  --moon-op-to: 100%;
  --nube-from: 34.076px, 16.238px;
  --nube-to: 250px, 16.238px;
  --sun-from: 171px, 21px;
  --sun-to: 30px, 21px;
}   
.nube{
  -webkit-animation: nube .3s ease-out both;
  -moz-animation: nube .3s ease-out both;
  -o-animation: nube .3s ease-out both;
  -ms-animation: nube .3s ease-out both;
  animation: nube .3s ease-out both;
}

@keyframes nube {
  from{
    -webkit-transform: translate(var(--nube-from));
    -moz-transform: translate(var(--nube-from));
    -o-transform: translate(var(--nube-from));
    -ms-transform: translate(var(--nube-from));
    transform: translate(var(--nube-from));
    opacity: var(--op-from);
  }
  to{
    -webkit-transform: translate(var(--nube-to));
    -moz-transform: translate(var(--nube-to));
    -o-transform: translate(var(--nube-to));
    -ms-transform: translate(var(--nube-to));
    transform: translate(var(--nube-to));
    opacity: var(--op-to);
  }
}

.sun{
  -webkit-animation: sun .3s ease-out both;
  -moz-animation: sun .3s ease-out both;
  -o-animation: sun .3s ease-out both;
  -ms-animation: sun .3s ease-out both;
  animation: sun .3s ease-out both;
}

@keyframes sun {
  from{
    -webkit-transform: translate(var(--sun-from));
    -moz-transform: translate(var(--sun-from));
    -o-transform: translate(var(--sun-from));
    -ms-transform: translate(var(--sun-from));
    transform: translate(var(--sun-from));
    opacity: var(--op-from);
  }
  to{
    -webkit-transform: translate(var(--sun-to));
    -moz-transform: translate(var(--sun-to));
    -o-transform: translate(var(--sun-to));
    -ms-transform: translate(var(--sun-to));
    transform: translate(var(--sun-to));
    opacity: var(--op-to);
  }
}

.moon{
  -webkit-animation: moon .3s ease-out both;
  -moz-animation: moon .3s ease-out both;
  -o-animation: moon .3s ease-out both;
  -ms-animation: moon .3s ease-out both;
  animation: moon .3s ease-out both;
}

@keyframes moon {
  from{
    opacity: var(--moon-op-from);
  }
  to{
    opacity: var(--moon-op-to);
  }
}

.bg-day{
  -webkit-animation: bg-day .3s ease-out both;
  -moz-animation: bg-day .3s ease-out both;
  -o-animation: bg-day .3s ease-out both;
  -ms-animation: bg-day .3s ease-out both;
  animation: bg-day .3s ease-out both;
}

@keyframes bg-day {
  from{
    opacity: var(--op-from);
  }
  to{
    opacity: var(--op-to);
  }
}

我不知道为什么它不起作用,任何帮助都将不胜感激

如果你能把你的代码变成一个有效的代码片段,这将对我们有所帮助。看见
root:{
  --op-from: 0%;
  --op-to: 100%;
  --moon-op-from: 100%;
  --moon-op-to: 0%;
  --nube-from: 250px, 16.238px;
  --nube-to: 34.076px, 16.238px;
  --sun-from: -30px, 21px;
  --sun-to: 171px, 21px;
} 
.dark-theme{
  --op-from: 100%;
  --op-to: 0%;
  --moon-op-from: 0%;
  --moon-op-to: 100%;
  --nube-from: 34.076px, 16.238px;
  --nube-to: 250px, 16.238px;
  --sun-from: 171px, 21px;
  --sun-to: 30px, 21px;
}   
.nube{
  -webkit-animation: nube .3s ease-out both;
  -moz-animation: nube .3s ease-out both;
  -o-animation: nube .3s ease-out both;
  -ms-animation: nube .3s ease-out both;
  animation: nube .3s ease-out both;
}

@keyframes nube {
  from{
    -webkit-transform: translate(var(--nube-from));
    -moz-transform: translate(var(--nube-from));
    -o-transform: translate(var(--nube-from));
    -ms-transform: translate(var(--nube-from));
    transform: translate(var(--nube-from));
    opacity: var(--op-from);
  }
  to{
    -webkit-transform: translate(var(--nube-to));
    -moz-transform: translate(var(--nube-to));
    -o-transform: translate(var(--nube-to));
    -ms-transform: translate(var(--nube-to));
    transform: translate(var(--nube-to));
    opacity: var(--op-to);
  }
}

.sun{
  -webkit-animation: sun .3s ease-out both;
  -moz-animation: sun .3s ease-out both;
  -o-animation: sun .3s ease-out both;
  -ms-animation: sun .3s ease-out both;
  animation: sun .3s ease-out both;
}

@keyframes sun {
  from{
    -webkit-transform: translate(var(--sun-from));
    -moz-transform: translate(var(--sun-from));
    -o-transform: translate(var(--sun-from));
    -ms-transform: translate(var(--sun-from));
    transform: translate(var(--sun-from));
    opacity: var(--op-from);
  }
  to{
    -webkit-transform: translate(var(--sun-to));
    -moz-transform: translate(var(--sun-to));
    -o-transform: translate(var(--sun-to));
    -ms-transform: translate(var(--sun-to));
    transform: translate(var(--sun-to));
    opacity: var(--op-to);
  }
}

.moon{
  -webkit-animation: moon .3s ease-out both;
  -moz-animation: moon .3s ease-out both;
  -o-animation: moon .3s ease-out both;
  -ms-animation: moon .3s ease-out both;
  animation: moon .3s ease-out both;
}

@keyframes moon {
  from{
    opacity: var(--moon-op-from);
  }
  to{
    opacity: var(--moon-op-to);
  }
}

.bg-day{
  -webkit-animation: bg-day .3s ease-out both;
  -moz-animation: bg-day .3s ease-out both;
  -o-animation: bg-day .3s ease-out both;
  -ms-animation: bg-day .3s ease-out both;
  animation: bg-day .3s ease-out both;
}

@keyframes bg-day {
  from{
    opacity: var(--op-from);
  }
  to{
    opacity: var(--op-to);
  }
}