찾다
웹 프론트엔드CSS 튜토리얼사용자 정의 속성이있는 CSS의 타이머 막대

사용자 정의 속성이있는 CSS의 타이머 막대

최근에 프로젝트에서 가시 타이머를 구현해야하며 프로젝트에 이미 유사한 타이머 UI 디자인이 참조와 비슷합니다. 사용자는 숫자가 감소하는 것을 볼 필요가 없으며 오히려 "바"가 점차적으로 전체에서 비어있는 것으로 감소하기를 원합니다. "타이머"UI를 구현하는 방법이 여러 가지가 있기 때문에 이것을 언급했습니다. 이 기사는 이러한 모든 방법에 관한 것이 아니라 (Codepen의 검색 결과가 더 도움이 될 것입니다), 오히려 나에게 매우 잘 작동하는 것입니다.

내가 필요한 타이머의 유형은 프로젝트의 "Turn Time"막대라고 불리는 것입니다. 작업을 수행하면 회전 시간이 유발 될 수 있으며 대부분의 후속 작업이 턴 시간이 끝날 때까지 차단됩니다. 따라서 명확한 빨간색 막대 타이머가 올바른 UI 선택입니다. 그것은 사람들에게 리듬과 흐름을 제공하며 타이머의 종료 시간을 "느끼고 다음 작업을 예약 할 수 있습니다.

이 타이머를 설정하는 것은 매우 쉽습니다 ...

향후 컨테이너의 빈 부분을 스타일링 해야하는 경우 부모/자식 요소 구조를 만들어 봅시다.

<div>
  <div></div>
</div>

이제 우리는 내부 바를 스타일로 만 스타일링합니다.

 .round-time-bar div {
  높이 : 5px;
  배경 : 선형 그레이드 (바닥까지, 빨간색, #900);
}

이것은 우리에게 시간 표시기로 사용할 수있는 멋진 빨간색 막대를 제공합니다.

다음으로, 우리는 그것을 계산해야하지만 여기서는 기능을 고려해야합니다. 그러한 타이머는 얼마나 걸리는지 알아야합니다! HTML 에서이 정보를 직접 제공 할 수 있습니다. 그렇다고해서 우리가 JavaScript를 사용 하지 않는다는 의미는 아닙니다. 우리는 그것을 받아들이고 있습니다 . 우리는 "이봐, 자바 스크립트, 우리에게 지속 시간 변수를 주면 나머지를 처리하겠습니다."

<div style="--duration: 5;">
  <div></div>
</div>

실제로이 접근법은 현대 DOM 처리 자바 스크립트에 매우 적합합니다. --variable 이 정확한 한, 언제든지 DOM 요소를 다시 렌더링 할 수 있으며 디자인 이이 상황을 잘 처리 할 수 ​​있습니다. 우리는 이와 같은 변형을 할 것입니다.

이제 애니메이션을 시작합시다. 좋은 소식은 간단하다는 것입니다. 이것은 단일 라인 키 프레임입니다.

 @keyframes 라운드 타임 {
  에게 {
    /* 애니메이션보다 더 효율적`width`*/
    변환 : scalex (0);
  }
}

수평으로 확장 할 때 막대 스타일이 압축되지 않기 때문에 막대를 "압축"할 수 있습니다. 이렇게하면 너비를 애니메이션 할 수 있습니다. 이것은 문제가 아닙니다. 특히 다른 어떤 레이아웃을 읽지 않기 때문입니다.

이제 막대에 적용합니다.

 .round-time-bar div {
  / * ... */
  애니메이션 : 라운드 시간 계산 (var (-기간) * 1s) 단계 (var (-duration)) 앞으로;
  변형-오리진 : 왼쪽 중앙;
}

--duration 변수를 사용하여 애니메이션 지속 시간을 설정하는 방법을 보시겠습니까? 이것은 대부분의 작업을 달성합니다. 또한 "Grid By Grid"를 줄이도록 동일한 수의 steps() 설정하는 데 사용합니다. "Bid-by-frame"은 당신이 좋아하는 시각적 UI 효과 일 수 있지만, JavaScript가 언제든지이 막대를 다시 렌더링 할 수 있다는 아이디어에 적응하고 입찰자가 눈에 띄지 않을 것입니다. 정수를 지속 시간 값으로 사용하여 둘 다 이와 같이 사용할 수있었습니다.

그러나 부드러운 애니메이션을 원한다면 예를 들어 다음과 같이 할 수 있습니다.

<div ...="" data-style="smooth"></div>

그런 다음 steps 사용 하지 마십시오 .

 .round-time-bar [data-style = "smooth"] div {
  애니메이션 : 라운드 시간 계산 (var (-기간) * 1s) 선형 포워드;
}

우리는 또한 선형 애니메이션을 사용하여 타이머에 적합한 것으로 보입니다. 시간은 쉽지 않을 것입니다. 아니면할까요? 어쨌든, 이것은 당신의 선택입니다. 특정 지점에서 가속 또는 감속처럼 보이는 타이머를 원한다면 이동하십시오.

동일한 data-attribute 기반 API를 사용하여 색상 변경을 구현할 수 있습니다.

 .round-time-bar [data-color = "blue"] div {
  배경 : 선형 그레이드 (하단, #64b5f6, #1565c0);
}

마지막 변형은 각 "초"의 너비를 고정하는 것입니다. 이런 식으로 10 초 타이머는 5 초 타이머보다 길게 보입니다.

 .round-time-bar [data-style = "고정"] div {
  너비 : calc (var (-기간) * 5%);
}

다음은 데모입니다.

CSS 애니메이션을 다시 시작하기위한 팁에주의하십시오.

오, 그건 그렇고, 나는 하나가 있다는 것을 알고 있습니다<meter></meter> 요소, 그것은 의미 론적 일 수 있지만, 자체 UI는 내가 원하는대로 애니메이션이 될 수는 없습니다. 적어도 싸우지 않기 위해서. 하지만 더 접근하기 쉬운 지 모르겠어요? 현재 가치를 유용한 방식으로 선언합니까? JavaScript를 사용하여 실시간으로 업데이트하는 경우<meter></meter> , 더 접근 가능한 타이머일까요? 누구든지 알고 있다면 여기에 솔루션을 연결할 수 있습니다.

위 내용은 사용자 정의 속성이있는 CSS의 타이머 막대의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
CSS 그리드는 무엇입니까?CSS 그리드는 무엇입니까?Apr 30, 2025 pm 03:21 PM

CSS 그리드는 복잡하고 반응이 좋은 웹 레이아웃을 만드는 강력한 도구입니다. 디자인을 단순화하고 접근성을 향상 시키며 이전 방법보다 더 많은 제어를 제공합니다.

CSS Flexbox 란 무엇입니까?CSS Flexbox 란 무엇입니까?Apr 30, 2025 pm 03:20 PM

기사는 반응 형 설계에서 공간의 효율적인 정렬 및 분포를위한 레이아웃 방법 인 CSS Flexbox에 대해 설명합니다. Flexbox 사용을 설명하고 CSS 그리드와 비교하고 브라우저 지원 세부 사항을 설명합니다.

CSS를 사용하여 웹 사이트를 반응하게 만드는 방법은 무엇입니까?CSS를 사용하여 웹 사이트를 반응하게 만드는 방법은 무엇입니까?Apr 30, 2025 pm 03:19 PM

이 기사는 Viewport Meta 태그, 유연한 그리드, 유체 미디어, 미디어 쿼리 및 상대 장치를 포함하여 CSS를 사용하여 반응 형 웹 사이트를 만드는 기술에 대해 설명합니다. 또한 CSS 그리드 및 Flexbox를 함께 사용하여 CSS 프레임 워크를 권장합니다.

CSS 박스 크기 부동산은 무엇을합니까?CSS 박스 크기 부동산은 무엇을합니까?Apr 30, 2025 pm 03:18 PM

이 기사는 요소 치수 계산 방법을 제어하는 ​​CSS 박스 크기 속성에 대해 설명합니다. Content-Box, Border-Box 및 Padding-Box와 같은 값과 레이아웃 설계 및 형태 정렬에 미치는 영향을 설명합니다.

CSS를 사용하여 어떻게 애니메이션 할 수 있습니까?CSS를 사용하여 어떻게 애니메이션 할 수 있습니까?Apr 30, 2025 pm 03:17 PM

기사는 CSS, 주요 특성 및 JavaScript와 결합 된 애니메이션 작성에 대해 논의합니다. 주요 문제는 브라우저 호환성입니다.

CSS를 사용하여 프로젝트에 3D 변환을 추가 할 수 있습니까?CSS를 사용하여 프로젝트에 3D 변환을 추가 할 수 있습니까?Apr 30, 2025 pm 03:16 PM

기사는 3D 변환, 주요 속성, 브라우저 호환성 및 웹 프로젝트에 대한 성능 고려 사항에 대한 CSS 사용에 대해 논의합니다. (문자 수 : 159)

CSS에 기울기를 추가 할 수있는 방법은 무엇입니까?CSS에 기울기를 추가 할 수있는 방법은 무엇입니까?Apr 30, 2025 pm 03:15 PM

이 기사는 CSS 그라디언트 (선형, 방사형, 반복)를 사용하여 웹 사이트 비주얼을 향상시키고 깊이, 초점 및 현대적인 미학을 추가합니다.

CSS의 의사 요소는 무엇입니까?CSS의 의사 요소는 무엇입니까?Apr 30, 2025 pm 03:14 PM

기사는 CSS의 의사 요소, HTML 스타일을 향상시키는 데 사용 및 의사 급의 차이점에 대해 설명합니다. 실제 사례를 제공합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기