代码之家  ›  专栏  ›  技术社区  ›  Timotei Manolache

mac与windows上的CSS动画

  •  0
  • Timotei Manolache  · 技术社区  · 7 年前

    我试图创建一个微调器动画,但我遇到了一些问题与windows和mac显示器之间的差异。

    动画是一个非常基本的圆形微调器,由html和css创建

    <div class="cow-spinner">
     <span></span>
     <span></span> 
     <span></span>
     <span></span> 
    </div>
    

    还有一些基本的css:

    .cow-spinner {
      display: inline-block;
      position: relative;
      width: 64px;
      height: 64px;
    }
    .cow-spinner span {
      box-sizing: border-box;
      display: block;
      position: absolute;
      width: 51px;
      height: 51px;
      margin: 6px;
      border: 3px solid black;
      border-radius: 50%;
      animation: cow-spin 1.2s ease-in-out infinite;
      border-color: black transparent transparent transparent;
    }
    .cow-spinner span:nth-child(1) {
      animation-delay: -0.45s;
    }
    .cow-spinner span:nth-child(2) {
      animation-delay: -0.3s;
    }
    .cow-spinner span:nth-child(3) {
      animation-delay: -0.15s;
    }
    @keyframes cow-spin {
      0% {
        transform: rotate(0deg);
      }
      100% {
        transform: rotate(360deg);
      }
    }
    

    动画本身工作得非常完美,这里有一个工作示例: https://codepen.io/fatoilyguy/pen/oaZMMp

    enter image description here

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  0
  •   Fabrizio Calderan    7 年前

    SVG 接近并检查渲染效果是否良好

       
    .loader {
      display: inline-block;
      height: 100px;
      width: 100px;
      transform: rotateZ(0deg); 
      animation: rotate 1.5s linear infinite;
    }
    
    svg {
      max-width: 140px;
      max-height: 140px;
      fill: none;
      stroke: #9bc;
      stroke-width: 5px;
      stroke-dasharray: 301px;
      stroke-dashoffset: 200px;
      animation: path 1.5s linear 0s infinite;
    }
    
    @keyframes path {
      60%  { stroke-dashoffset: 40px;  }
      100% { stroke-dashoffset: 200px; }
    }
    
    
    @keyframes rotate {
      100% { transform: rotateZ(360deg) }
    }
    <div class="loader">
      <svg viewport="0 0 100 100" preserveAspectRatio="xMidYMid meet">
        <path d="M 50, 50 m -48, 0 a 48,48 0 1,0 96,0 a 48,48 0 1,0 -96,0" />
      </svg>
    </div>