찾다
웹 프론트엔드CSS 튜토리얼CSS3 애니메이션 효과 애니메이션 사용 지침 및 브라우저 호환성 소개

CSS3 애니메이션 효과 애니메이션 사용 지침 및 브라우저 호환성 소개

Jun 22, 2018 pm 01:43 PM
animateCSS3 애니메이션브라우저 호환

이 글은 주로 CSS3 애니메이션 효과 애니메이션의 사용 지침과 브라우저 호환성을 소개합니다. 이제 여러분과 공유합니다. 필요한 친구들이 참고할 수 있습니다

어제 갑자기 jing.fm을 봤습니다. 음악사이트가 아주 좋아요. 효과가 많이 마음에 드네요. 관심있으신 분들은 확인해보시면 됩니다.) 음악 재생시 앨범 로테이션 효과가 너무 좋아서 나중에 쓸려고 적어둡니다. 그 결과 처음으로 animate를 사용했을 때 부정 행위를 만났습니다.

마지막 게시일(11월 8일) 이후로 오랫동안 블로그를 업데이트하지 않았습니다. 이 기간 동안 프로젝트에 많은 일이 있었고, 업데이트할 시간이 부족하다고 느꼈습니다. 이번 주가 드디어 끝났습니다. 몇 가지 기술 기사를 추가하겠습니다. 음, 첫 번째 기사는 CSS3 애니메이션의 사용에 관한 것입니다.
어제 갑자기 jing.fm을 봤습니다. (이 음악 사이트는 아주 좋고, 효과가 많이 마음에 드는데, 관심 있으신 분들은 확인해보시면 됩니다.) 음악이 재생될 때 앨범 회전 효과가 아주 좋거든요. 나중에 사용할 수 있도록 직접 적어 보겠습니다. 그러다보니 애니메이트를 처음 사용하면서 부정행위를 접하게 되어 불만을 토로하게 되었습니다.
1. 최종 효과

위 그림과 같이 최종 목표는 앨범 사진을 회전시켜 녹음 재생 효과를 시뮬레이션하는 것입니다(jing.fm에 가면 실제 효과를 볼 수 있습니다. 매우 좋습니다. 이제 많은 음악 웹사이트에서 이 효과를 추가했습니다.)
2. 구조 코드

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=&#39;utf-8&#39;> 
<title>音乐专辑播放模拟</title> 
<link rel="stylesheet" type="text/css" href="css/style.css"> 
</head> 
<body> 
<p id="bd"> 
<p id="musicBox"> 
<p class="cover rotateCD"></p> 
<p class="mask"></p> 
</p> 
</p> 
</body> 
</html>

위 코드에서 볼 수 있듯이 CSS3의 강력한 애니메이션 효과를 사용하기 때문에 구조 정의가 매우 간단하며(의미론 준수를 전제로) 자바스크립트 스크립트 파일에 대한 참조가 없습니다.
musicBox는 외부 프레임의 크기를 제한하는 데 사용되며, 내부 커버는 앨범 표지 이미지를 표시하는 데 사용됩니다. 이 이미지는 아래 사진의 왼쪽 이미지와 같아서 둥글지 않습니다. 뒷면에 마스크p를 만들었습니다. 별 다른 기능은 하지 않고 그냥 마스크(아래 오른쪽 사진)를 잡아서 사진의 원 바깥 부분을 가리는 용도로 사용합니다.
  
3.css3 스타일 시트

@charset utf-8; 
/* common: rotateCD */ 
@-webkit-keyframes myrotate{ 
0%{ 
-webkit-transform : rotate(0deg); 
} 
100%{ 
-webkit-transform : rotate(360deg); 
} 
} 
@-moz-keyframes myrotate{ 
0%{ 
-moz-transform : rotate(0deg); 
} 
100%{ 
-moz-transform : rotate(360deg); 
} 
} 
@-ms-keyframes myrotate{ 
0%{ 
-ms-transform : rotate(0deg); 
} 
100%{ 
-ms-transform : rotate(360deg); 
} 
} 
@-o-keyframes myrotate{ 
0%{ 
-o-transform : rotate(0deg); 
} 
100%{ 
-o-transform : rotate(360deg); 
} 
} 
@keyframes myrotate{ 
0%{ 
transform : rotate(0deg); 
} 
100%{ 
transform : rotate(360deg); 
} 
} 
.rotateCD{ 
-webkit-animation: myrotate 9.5s infinite linear; 
-moz-animation: myrotate 9.5s infinite linear; 
-ms-animation: myrotate 9.5s infinite linear; 
-o-animation: myrotate 9.5s infinite linear; 
animation: myrotate 9.5s infinite linear; 
-webkit-animation-play-state: running; 
-moz-animation-play-state: running; 
-ms-animation-play-state: running; 
-o-animation-play-state: running; 
animation-play-state: running; 
} 
/* module: bd */ 
#bd{width: 960px;margin: 200px auto 0;} 
/* module: musicBox */ 
#musicBox{position: relative;width: 430px;height: 430px;margin: 0 auto;overflow: hidden;} 
#musicBox .cover{width: 300px;height: 300px;margin: 65px;background: url(../img/music1.jpg) 0 0 no-repeat;} 
#musicBox .mask{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url(../img/playerMask.png) 0 0 no-repeat;}

rotateCD 이 부분은 다양한 고급 브라우저와 호환되며(물론 css3도 지원합니다) 애니메이션 실행 시간 및 기타 설정을 쿼리할 수 있습니다. 애니메이션에 대해 자세히 알아보세요.
위의 애니메이션 키프레임 작성 방법에 대해 처음에는 "HTML5 및 CSS3 최종 가이드"의 예를 살펴보았는데, 작성 방법은 크롬에서만 작성되었습니다. , 추측) 작성자는 다른 브라우저도 비슷한 방식으로 작성되어 독자가 스스로 탐색할 수 있다고 생각한 것으로 추정됩니다.) 이를 당연하게 여기고 다른 브라우저의 호환성 회전 설정을 다음 코드와 같이 작성했습니다. :

@-webkit-keyframes myrotate{ 
0%{ 
-webkit-transform : rotate(0deg); 
-moz-transform : rotate(0deg); 
-ms-transform : rotate(0deg); 
-o-transform : rotate(0deg); 
transform : rotate(0deg); 
} 
....

이러한 이유입니다. 결과적으로 크롬과 사파리에서는 애니메이션이 정상인데, FF, 오페라, IE에서는 애니메이션이 없습니다. 사실 이 부분은 이해하기 쉽습니다. myrotate의 키 프레임은 웹킷에 대한 특별한 지침만 제공합니다. 다른 브라우저에서는 이를 단순히 무시하므로 애니메이션 효과가 없습니다.
따라서 키프레임 적응 스타일을 작성할 때 다음 형식으로 작성해야 합니다.

@-webkit-keyframes myrotate{ 
0%{ 
-webkit-transform : rotate(0deg); 
} 
... 
@-moz-keyframes myrotate{ 
0%{ 
-moz-transform : rotate(0deg); 
} 
... 
@-ms-keyframes myrotate{ 
0%{ 
-ms-transform : rotate(0deg); 
} 
... 
@-o-keyframes myrotate{ 
0%{ 
-o-transform : rotate(0deg); 
} 
... 
@keyframes myrotate{ 
0%{ 
transform : rotate(0deg); 
} 
...

오페라 브라우저에는 또 다른 이상한 점이 있습니다. @keyframes myrotate{...} 및 @ -o-를 선호합니다. keyframes myrotate{...}는 콜드가 아니므로 둘 중 하나만 저장된 경우 전자는 애니메이션을 얻을 수 있지만 후자는 애니메이션 효과를 얻을 수 없습니다. 저는 항상 이것이 의아해왔고 그러다가 오페라에 대한 소개를 찾았습니다. 오페라는 W3C 웹 표준을 엄격하게 구현한다고 하더군요. 이런 식으로 생각하면 @keyframes myrotate{...}를 그토록 선호하는 이유를 이해할 수 있습니다.
4. 요약
css3는 보기에는 매우 아름답지만 실제 사용에는 아직 불확실성이 많습니다. 구현된 코드 템플릿을 볼 수 없으면 코드 형식이 올바른지 확인하기 어렵습니다. 따라서 좋은 웹사이트에 가서 다양한 애니메이션 효과를 관찰하고, 원하는 애니메이션을 선택하여 코드를 생성하고, 다운로드한 다음 필요에 따라 애니메이션 코드를 작성할 수 있습니다. 이렇게 하면 애니메이션 효과가 더욱 효율적이고 효과적이게 됩니다. 요구 사항을 충족하지 않아도 걱정하지 마세요. 위에 효과가 많이 있으므로 상상력이 충분히 풍부하다면 직접 결합할 수도 있습니다.
자, 이것으로 글이 끝났습니다.
PS: 이 기사에서 사용된 브라우저는 chrome(21.0.1180.15), safari5.1.7(7534.57.2), Opera(12.11), FF(17.0.1) 및 IE10(10.0.9200.16438)입니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

Flexbox를 사용하여 CSS에서 중앙 정렬 효과를 얻는 방법

CSS3을 사용하여 입력 상자 색상 그라데이션 및 글로우 효과를 얻는 방법

위 내용은 CSS3 애니메이션 효과 애니메이션 사용 지침 및 브라우저 호환성 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
@keyframes 및 @Media와 같이 @Rules는 얼마나 많은 특이성을 가지고 있습니까?@keyframes 및 @Media와 같이 @Rules는 얼마나 많은 특이성을 가지고 있습니까?Apr 18, 2025 am 11:34 AM

나는 다른 날이 질문을 받았다. 나의 첫 번째 생각은 : 이상한 질문입니다! 특이성은 선택기에 관한 것이며 At-Rules는 선택기가 아니므로 ... 무의미합니까?

@Media 및 @Support 쿼리를 중첩 할 수 있습니까?@Media 및 @Support 쿼리를 중첩 할 수 있습니까?Apr 18, 2025 am 11:32 AM

그렇습니다. 당신은 할 수 있습니다. 그리고 그것은 실제로 어떤 순서로 중요하지 않습니다. CSS 전 처리기가 필요하지 않습니다. 일반 CSS에서 작동합니다.

빠른 Gulp 캐시 파열빠른 Gulp 캐시 파열Apr 18, 2025 am 11:23 AM

CSS 및 JavaScript (및 이미지 및 글꼴 등)와 같은 자산에 멀리 떨어진 캐시 헤더를 설정해야합니다. 브라우저를 알려줍니다

CSS의 품질과 복잡성을 모니터링하는 스택을 찾아CSS의 품질과 복잡성을 모니터링하는 스택을 찾아Apr 18, 2025 am 11:22 AM

많은 개발자들은 CSS 코드베이스를 유지하는 방법에 대해 글을 썼지 만 코드베이스의 품질을 어떻게 측정하는지에 대해 많은 글을 쓰지 않습니다. 물론, 우리는 가지고 있습니다

Datalist는 가치를 시행하지 않고 값을 제안하는 것입니다Datalist는 가치를 시행하지 않고 값을 제안하는 것입니다Apr 18, 2025 am 11:08 AM

짧고 임의의 텍스트를 수락 해야하는 양식이 있습니까? 이름이나 다른 것 같습니다. 정확히 무엇을위한 것입니다. 많은 것이 있습니다

취리히에서 열린 전면 회의취리히에서 열린 전면 회의Apr 18, 2025 am 11:03 AM

나는 프론트 컨퍼런스를 위해 스위스 취리히로 향하게되어 매우 기쁩니다 (그 이름과 URL을 사랑합니다!). 나는 전에 스위스에 가본 적이 없기 때문에 나는 흥분했다

CloudFlare Workers와 함께 풀 스택 서버리스 애플리케이션 구축CloudFlare Workers와 함께 풀 스택 서버리스 애플리케이션 구축Apr 18, 2025 am 10:58 AM

소프트웨어 개발에서 제가 가장 좋아하는 개발 중 하나는 서버리스의 출현이었습니다. 세부 사항에 푹 빠지는 경향이있는 개발자로서

NUXT 응용 프로그램에서 동적 경로 생성NUXT 응용 프로그램에서 동적 경로 생성Apr 18, 2025 am 10:53 AM

이 게시물에서는 들어오는 데이터를 위해 동적 경로를 만드는 방법을 보여주기 위해 NetLify에 구축하고 배포 한 전자 상거래 상점 데모를 사용합니다. 상당히입니다

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 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

메모장++7.3.1

메모장++7.3.1

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

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.