CSS를 사용하여 그림 회전 랜턴의 동적 효과를 구현하는 방법은 무엇입니까? 다음 기사에서는 CSS3 애니메이션 변환을 사용하여 회전하는 이미지 효과를 얻는 방법을 소개합니다. 이것이 도움이 되기를 바랍니다.
프로젝트는 사진의 회전문 효과를 구현해야 하기 때문입니다. 일반적인 Vue 컴포넌트 라이브러리를 대부분 확인한 후 이러한 컴포넌트를 거의 볼 수 없었기 때문에 CSS3 애니메이션을 기반으로 회전문 효과를 수동으로 구현했습니다. 즉시 두 가지 솔루션이 떠오릅니다. 하나는 타이머를 사용하거나, scrollLeft하거나 해당 위치의 왼쪽 속성 값을 수정하는 것이고, 다른 하나는 CSS3의 변환 및 애니메이션을 사용하는 것입니다.
애니메이션을 사용하여 구현하기로 선택했습니다. js로 구현한 애니메이션은 CPU에서 실행되고, css3의 애니메이션은 GPU에서 실행되므로 css3의 렌더링 비용이 저렴합니다. 결국 이를 구현하기 위해 css3을 사용하기로 결정했습니다. 작업 유형.
ScrollLeft 사용
처음에는 효과를 얻기 위해 scrollLeft+overflow를 사용하고 이를 트리거하기 위해 타이머를 사용하므로 매번 다시 그리기 및 리플로우가 발생합니다. (ps: 성능을 더 향상시켜야 하는 경우 타이머 트리거 대신 requestAnimationFrame을 사용할 수 있습니다. 가장 큰 장점은 requestAnimationFrame이 각 프레임의 모든 DOM 작업에 집중하여 한 번의 다시 그리기 또는 리플로우로 완료하고 다시 그리기 또는 리플로우 시간 간격이 있다는 것입니다. 일반적으로 이 빈도는 초당 60프레임입니다.)
(scrollLeft를 변경하면 왼쪽과 동일한 효과가 있음) 핵심 코드:
function toScrollLeft(){ // 如果容器的宽度大于滚动条距离,则重复滚动 if(divWidth > box.scrollLeft){ box.scrollLeft++ setTimeout('toScrollLeft()', 18); } else{ // 滚动结束,从新开始 box.scrollLeft=0; setTimeout('toScrollLeft()', 18); } }
css3 변환 애니메이션 사용
CSS3 애니메이션 사용 회전 랜턴을 구현하려면 CSS 변수를 사용하여 각 상태 변환의 TranslateX 오프셋과 가장 중요한 애니메이션을 동적으로 설정하여 다음과 같이 생성된 gif 효과 중 일부를 달성합니다.
1. html 레이아웃을 미리 설정하고 div 컨테이너를 설정합니다
<div class="box" > <ul > <li v-for="(src,i) in cap " :key="i"> <img src="/static/imghwm/default1.png" data-src="src" class="lazy" style="max-width:90%" height="90px" : / alt="CSS를 사용하여 사진 회전문의 동적 효과를 얻는 방법을 살펴보십시오." > </li> </ul> </div>
2. 해당 스타일을 설정합니다
.box{ display: flex; overflow: hidden; flex-direction: column; border-radius:12px; width: 100%; height: 100%; background-color:#fff; } ul{ display: flex; }
3. 마지막으로 바인딩 개체를 다음과 같은 스타일로 설정합니다. .box 요소 주요 방법은 CSS 변수를 사용한 다음 특정 값을 통해 애니메이션의 각 상태 효과를 동적으로 설정하는 것입니다. 키 코드는 애니메이션을 사용합니다. cap.length*8+ 의 무한 선형 이동은 무한 반복 이동 효과를 생성합니다.
ps: 전체적인 주요 동작 포인트이며, 기타 세부 사항은 생략
<div class="box" :style="{ '--card-ul-width-start':-30+'px', '--card-ul-width-middle1':-cap.length*30+'px', '--card-ul-width-middle2':-cap.length*60+'px', '--card-ul-width-end':-cap.length*90+'px' }"> <ul :style="{'-webkit-animation':cap.length*8+ 's move infinite linear;'}"> <li></li> </ul> </div>
data(){ cap:new Array(6).fill('https://res.minigame.vip/gc-assets/fruit-master/fruit-master_icon.png') }
@keyframes move { 0%{ transform:translateX(var(--card-ul-width-start)) } 30%{ transform:translateX(var(--card-ul-width-middle1)) } 70%{ transform:translateX(var(--card-ul-width-middle2)) } 100%{ transform:translateX(var(--card-ul-width-end)) } }
(학습 영상 공유: css 영상 튜토리얼)
위 내용은 CSS를 사용하여 사진 회전문의 동적 효과를 얻는 방법을 살펴보십시오.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

내가 CSS4¹에 처음으로 차지했기 때문에, 그것에 대해 많은 논의가있었습니다. 나는 여기 다른 사람들로부터 내가 가장 좋아하는 생각을 마무리하려고 할 것입니다. 거기 있습니다

새 프로젝트를 시작할 때마다 원하는 경우 세 가지 유형 또는 카테고리로보고있는 코드를 구성합니다. 그리고 나는 이러한 유형을 적용 할 수 있다고 생각합니다

나는 HTTPS의 복잡성을 공개적으로 비난하는 것에 대해 유죄를 선고했다. 과거에는 타사 공급 업체로부터 SSL 인증서를 구매했으며 문제가있었습니다.

이전에 JavaScript에서 불변성으로 작업하지 않은 경우 변수를 새로운 값 또는 재 할당과 혼동하기가 쉽습니다.

시맨틱하고 액세스 가능한 상태를 유지하면서 요즘 사용자 정의 확인란, 라디오 버튼 및 토글 스위치를 만들 수 있습니다. 우리는조차 필요하지 않습니다

프로젝트에 카운트 다운 타이머가 필요한 적이 있습니까? 그런 것은 플러그인에 도달하는 것이 당연하지만 실제로는 훨씬 더 많습니다.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Dreamweaver Mac版
시각적 웹 개발 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.
