반복 가능한 CSS 코드 정리

일레인 바이 엔

이 코드는 여기 다른 스레드에서 작동합니다. 그러나 CSS를 효율적으로 재사용하지 않는 것 같습니다. CSS 코드를 더 많이 자르거나 줄이려면 어떻게해야합니까?

키 프레임을 너무 많이 반복하는 것 같습니다. 또한 루프를 사용하는 이유를 잘 모르겠지만 제거하면 제대로 작동하지 않습니다.

추신 : 데모에서는 10 개, 30 개 및 90 개만 표시됩니다. 실제 프로덕션 코드에 20, 40, 50 등을 추가 할 것입니다.

데모 : https://jsfiddle.net/dg0L9cw7/1/

#speedometer {
  display: inline-block;
  position: relative;
}

#speedometer .barometer {
  background-image: url("https://svgshare.com/i/GAZ.svg");
  background-repeat: no-repeat;
  width: 200px;
  height: 110px;
  display: inline-block;
}

#speedometer .needle {
  background-image: url("https://svgshare.com/i/GBP.svg");
  background-repeat: no-repeat;
  z-index: 999999;
  width: 200px;
  height: 110px;
  display: inline-block;
  left: 0px;
  position: absolute;
  bottom: 5px;
  transform-origin: 50% calc(100% - 8px);
}

#speedometer .needle.ten {
  animation: changeTen 3s linear, loopTen 1s linear 3s infinite alternate;
}

@keyframes changeTen {
  0% {
    transform: rotate(-90deg);
  }
  100% {
    transform: rotate(-60deg);
  }
}

@keyframes loopTen {
  0% {
    transform: rotate(-60deg);
  }
  100% {
    transform: rotate(-60deg);
  }
}

#speedometer .needle.thirty {
  animation: changeThirty 3s linear, loopThirty 1s linear 3s infinite alternate;
}

@keyframes changeThirty {
  0% {
    transform: rotate(-90deg);
  }
  100% {
    transform: rotate(-30deg);
  }
}

@keyframes loopThirty {
  0% {
    transform: rotate(-30deg);
  }
  100% {
    transform: rotate(-30deg);
  }
}

#speedometer .needle.ninety {
  animation: changeNinety 3s linear, loopNinety 1s linear 3s infinite alternate;
}

@keyframes changeNinety {
  0% {
    transform: rotate(-90deg);
  }
  100% {
    transform: rotate(80deg);
  }
}

@keyframes loopNinety {
  0% {
    transform: rotate(80deg);
  }
  100% {
    transform: rotate(80deg);
  }
}
<div id="speedometer">
  <span class="barometer"></span>
  <span class="needle ten"></span>
</div>
<div id="speedometer">
  <span class="barometer"></span>
  <span class="needle thirty"></span>
</div>
<div id="speedometer">
  <span class="barometer"></span>
  <span class="needle ninety"></span>
</div>

Afif 동반

CSS 변수를 사용하십시오. 마크 업을 하나의 요소로만 줄일 수도 있습니다.

.speedometer {
  display: inline-block;
  background-image: url("https://svgshare.com/i/GAZ.svg");
  width: 200px;
  overflow:hidden;
}


.speedometer:before {
  content:"";
  background-image: url("https://svgshare.com/i/GBP.svg");
  height: 110px;
  display: block;
  margin-bottom: 5px;
  transform-origin:50% calc(100% - 8px) ;
  animation: change 3s linear forwards;
  backface-visibility: hidden;
}

@keyframes change {
  0% { transform:rotate(-90deg); }
  100% { transform:rotate(var(--r,90deg)); }
}
<div class="speedometer" style="--r:-60deg;">
</div>
<div class="speedometer" style="--r:-30deg;">
</div>
<div class="speedometer" style="--r:80deg;">
</div>

일부 계산을 사용하여 변수를 더 친숙하게 만들 수도 있습니다. 아래에서 나는 percetange를 고려하고 있으므로 범위의 값[0 100]

.speedometer {
  display: inline-block;
  background-image: url("https://svgshare.com/i/GAZ.svg");
  width: 200px;
  overflow:hidden;
}


.speedometer:before {
  content:"";
  background-image: url("https://svgshare.com/i/GBP.svg");
  height: 110px;
  display: block;
  margin-bottom: 5px;
  transform-origin:50% calc(100% - 8px) ;
  animation: change 3s linear forwards;
  backface-visibility: hidden;
}

@keyframes change {
  0% { transform:rotate(-90deg); }
  100% { transform:rotate(calc(1.8deg*var(--p) - 90deg)); }
}
<div class="speedometer" style="--p:40;">
</div>
<div class="speedometer" style="--p:20;">
</div>
<div class="speedometer" style="--p:80;">
</div>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

실행 가능한 코드가 작업을 반복합니다.

분류에서Dev

반복 가능한 목록으로 유니 코드

분류에서Dev

n * m 그리드에서 반복없이 가능한 모든 걷기 찾기

분류에서Dev

Java 정렬 및 반복 가능한 Defaultlistmodel

분류에서Dev

반복 가능한 라운드 로빈

분류에서Dev

이 SQL 쿼리가 정확한 중복 레코드를 반환하는 이유는 무엇입니까?

분류에서Dev

MySQL 쿼리에 대한 코드 반복 방지 (여러 동안)

분류에서Dev

사용자 반복 코드 .Net Core에 대한보기 설정

분류에서Dev

CSS-드래그 가능한 사용자 지정 목록 항목을 반응 형으로 만들기

분류에서Dev

복잡한 CSS 목록에 대한 정렬 가능한 목록 요소 결함

분류에서Dev

특정 코드에 다른 열이있는 반복 열 값을 가져 오는 SQL 쿼리

분류에서Dev

반응 네이티브에서 정렬 가능한 그리드보기

분류에서Dev

느리게 반복되는 코드

분류에서Dev

반복 코드 리팩토링 -js

분류에서Dev

코드 분리 및 반복 감소

분류에서Dev

수업 처리, 반복 코드

분류에서Dev

css, jquery 드래그 가능한 div 사이의 라인 조정

분류에서Dev

Javascript에서 원치 않는 코드 반복 정리

분류에서Dev

Tableau 고정 계산에서 반복되는 레코드 처리

분류에서Dev

특정 횟수만큼 코드 반복

분류에서Dev

정확히 '코드 반복'이란?

분류에서Dev

이 정확한 효과를 만드는 방법 ??? 가능한 한 pls 만 CSS?

분류에서Dev

타임 스탬프가 포함 된 레코드를 반복하는 논리

분류에서Dev

확장 가능한 레코드를 수정할 때 중복되는 인스턴스

분류에서Dev

각 행에 대한 반복 코드 jquery

분류에서Dev

각 행에 대한 반복 코드 jquery

분류에서Dev

반복에 대한 C ++ 재귀 코드

분류에서Dev

반복 가능한 필드에서 단일 값 가져 오기

분류에서Dev

내 코드로 추가 된 기능을 반복합니까?

Related 관련 기사

  1. 1

    실행 가능한 코드가 작업을 반복합니다.

  2. 2

    반복 가능한 목록으로 유니 코드

  3. 3

    n * m 그리드에서 반복없이 가능한 모든 걷기 찾기

  4. 4

    Java 정렬 및 반복 가능한 Defaultlistmodel

  5. 5

    반복 가능한 라운드 로빈

  6. 6

    이 SQL 쿼리가 정확한 중복 레코드를 반환하는 이유는 무엇입니까?

  7. 7

    MySQL 쿼리에 대한 코드 반복 방지 (여러 동안)

  8. 8

    사용자 반복 코드 .Net Core에 대한보기 설정

  9. 9

    CSS-드래그 가능한 사용자 지정 목록 항목을 반응 형으로 만들기

  10. 10

    복잡한 CSS 목록에 대한 정렬 가능한 목록 요소 결함

  11. 11

    특정 코드에 다른 열이있는 반복 열 값을 가져 오는 SQL 쿼리

  12. 12

    반응 네이티브에서 정렬 가능한 그리드보기

  13. 13

    느리게 반복되는 코드

  14. 14

    반복 코드 리팩토링 -js

  15. 15

    코드 분리 및 반복 감소

  16. 16

    수업 처리, 반복 코드

  17. 17

    css, jquery 드래그 가능한 div 사이의 라인 조정

  18. 18

    Javascript에서 원치 않는 코드 반복 정리

  19. 19

    Tableau 고정 계산에서 반복되는 레코드 처리

  20. 20

    특정 횟수만큼 코드 반복

  21. 21

    정확히 '코드 반복'이란?

  22. 22

    이 정확한 효과를 만드는 방법 ??? 가능한 한 pls 만 CSS?

  23. 23

    타임 스탬프가 포함 된 레코드를 반복하는 논리

  24. 24

    확장 가능한 레코드를 수정할 때 중복되는 인스턴스

  25. 25

    각 행에 대한 반복 코드 jquery

  26. 26

    각 행에 대한 반복 코드 jquery

  27. 27

    반복에 대한 C ++ 재귀 코드

  28. 28

    반복 가능한 필드에서 단일 값 가져 오기

  29. 29

    내 코드로 추가 된 기능을 반복합니까?

뜨겁다태그

보관