자바스크립트 애니메이션 구현 원리에 대한 간략한 분석_javascript 기술
다음과 같은 애니메이션 기능 요구 사항이 있다고 가정해 보겠습니다. div의 너비를 100px에서 200px로 변경하세요. 작성된 코드는 다음과 같습니다.
함수 animate1(요소, endValue, 기간) {
var startTime = 새 날짜(),
startValue =parseInt(element.style.width),
단계 = 1;
var 타이머Id = setInterval(function() {
var nextValue = parseInt(element.style.width) 단계;
element.style.width = nextValue 'px';
If (nextValue >= endValue) {
clearInterval(timerId);
// 애니메이션을 표시하는데 시간이 걸립니다
element.innerHTML = 새 날짜 - startTime;
}
}, 기간 / (endValue - startValue) * 단계);
}
animate1(document.getElementById('test1'), 200, 1000);
200px이 될 때까지 일정한 간격으로 1px씩 늘려가는 것이 원칙입니다. 하지만 애니메이션 종료 후 표시 시간이 1초 이상(보통 1.5초 정도)입니다. 그 이유는 setInterval이 실행 간격을 엄격하게 보장하지 않기 때문입니다.
더 좋은 방법이 있나요? 초등학교 수학 문제를 살펴보겠습니다.
A동과 B동은 100m 떨어져 있습니다. 한 사람이 A동에서 B동까지 일정한 속도로 걸어가서 5분 동안 목적지에 도달합니다.
등속운동의 특정 순간의 거리를 계산하는 계산식은 거리 * 현재 시간 / 시간입니다. 따라서 답은 100 * 3/5 = 60 이어야 합니다.
이 질문에서 영감을 얻은 것은 특정 순간의 거리가 특정 공식을 통해 계산될 수 있다는 것입니다. 마찬가지로 애니메이션 진행 중 특정 순간의 값도 누적하는 대신 공식을 통해 계산할 수 있습니다.
함수 animate2(요소, endValue, 기간) {
var startTime = 새 날짜(),
startValue =parseInt(element.style.width);
var 타이머Id = setInterval(function() {
var 백분율 = (새 날짜 - 시작 시간) / 기간;
var stepValue = startValue (endValue - startValue) * 백분율;
element.style.width = stepValue 'px';
if (백분율 >= 1) {
clearInterval(timerId);
element.innerHTML = 새 날짜 - startTime;
}
}, 13);
}
animate2(document.getElementById('test2'), 200, 1000);
이번 개선 이후에는 애니메이션 실행 시간이 최대 10ms 정도의 오차만 발생하는 것을 확인할 수 있습니다. 그러나 문제가 완전히 해결되지는 않았습니다. 브라우저 개발 도구에서 test2 요소를 확인하면 test2의 최종 너비가 200px 이상이 될 수 있음을 알 수 있습니다. animate2 함수의 코드를 주의 깊게 살펴보면 다음과 같은 사실이 드러납니다.
1.percentage의 값은 1보다 클 수 있는데, 이는 Math.min을 통해 최대값을 제한하여 해결할 수 있습니다.
2. 백분율 값이 1보다 크지 않음이 보장되더라도 endValue 또는 startValue가 소수이면 (endValue - startValue) * 백분율 값은 Javascript 소수 연산의 정밀도가 다음과 같기 때문에 여전히 오류가 발생할 수 있습니다. 충분하지 않습니다. 실제로 우리가 보장하고 싶은 것은 최종 값의 정확성이므로 백분율이 1인 경우 endValue를 직접 사용하면 됩니다.
따라서 animate2 함수의 코드는 다음과 같이 수정됩니다.
함수 animate2(요소, endValue, 기간) {
var startTime = 새 날짜(),
startValue =parseInt(element.style.width);
var 타이머Id = setInterval(function() {
// 백분율이 1보다 크지 않은지 확인하세요
var 백분율 = Math.min(1, (새 날짜 - 시작 시간) / 기간);
var stepValue;
If (백분율 >= 1) {
// 최종 값의 정확성 보장
stepValue = endValue;
} else {
stepValue = startValue (endValue - startValue) * 백분율;
}
element.style.width = stepValue 'px';
if (백분율 >= 1) {
clearInterval(timerId);
element.innerHTML = 새 날짜 - startTime;
}
}, 13);
}
마지막 질문이 하나 있습니다. setInterval 간격이 13ms로 설정된 이유는 무엇입니까? 그 이유는 현재 모니터의 주사율이 일반적으로 75Hz를 넘지 않기 때문입니다. 즉, 초당 75회, 즉 약 13ms마다 주사율을 동기화하는 것이 좋습니다.

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제










![PowerPoint에서 애니메이션이 작동하지 않음 [수정됨]](https://img.php.cn/upload/article/000/887/227/170831232982910.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
프레젠테이션을 만들려고 하는데 애니메이션을 추가할 수 없나요? Windows PC의 PowerPoint에서 애니메이션이 작동하지 않는 경우 이 문서가 도움이 될 것입니다. 이것은 많은 사람들이 불평하는 일반적인 문제입니다. 예를 들어 Microsoft Teams에서 프레젠테이션을 진행하거나 화면을 녹화하는 동안 애니메이션이 작동하지 않을 수 있습니다. 이 가이드에서는 Windows용 PowerPoint에서 애니메이션이 작동하지 않는 문제를 해결하는 데 도움이 되는 다양한 문제 해결 기술을 살펴보겠습니다. PowerPoint 애니메이션이 작동하지 않는 이유는 무엇입니까? Windows에서 PowerPoint의 애니메이션이 작동하지 않는 문제를 일으킬 수 있는 몇 가지 가능한 이유는 다음과 같습니다.

우리는 일상 업무에서 PPT를 자주 사용하는데, PPT의 모든 조작 기능에 대해 잘 알고 계시나요? 예를 들면: ppt에서 애니메이션 효과를 설정하는 방법, 전환 효과를 설정하는 방법, 각 애니메이션의 효과 지속 시간은 어떻게 되나요? 각 슬라이드가 자동으로 재생되고, ppt 애니메이션에 들어갔다가 나올 수 있는지 등이 있습니다. 이번 호에서는 먼저 ppt 애니메이션에 들어가고 나가는 구체적인 단계를 알려드리겠습니다. 친구 여러분, 한 번 살펴보세요. 바라보다! 1. 먼저 컴퓨터에서 ppt를 열고 텍스트 상자 밖을 클릭하여 텍스트 상자를 선택합니다(아래 그림의 빨간색 원 참조). 2. 그런 다음 메뉴 바에서 [애니메이션]을 클릭하고 [삭제] 효과를 선택합니다(그림의 빨간색 원 참조). 3. 다음으로 [

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

이 사이트는 1월 26일 국내 3D 애니메이션 영화 '얼랑선:심해룡'이 최신 스틸컷을 공개하며 7월 13일 개봉을 공식 발표했다고 보도했다. "얼랑신: 심해 용"은 Mihuxing (Beijing) Animation Co., Ltd., Horgos Zhonghe Qiancheng Film Co., Ltd., Zhejiang Hengdian Film Co., Ltd., Zhejiang Gongying Film에서 제작한 것으로 이해됩니다. Co., Ltd., Chengdu Tianhuo Technology Co., Ltd.와 Huawen Image (Beijing) Film Co., Ltd.가 제작하고 Wang Jun이 감독한 애니메이션 영화는 원래 2022년 7월 22일 중국 본토에서 개봉될 예정이었습니다. . 이 사이트의 음모 개요 : 봉신 전투 후 강자야는 "봉신 목록"을 가져와 신을 나누고, 봉신 목록은 큐슈 심해 아래 천상 법원에서 봉인했습니다. 비밀 영역. 실제로, 신의 직위를 수여하는 것 외에도 부여신 목록에 봉인된 강력한 악령도 많이 있습니다.

본 사이트 소식에 따르면 미야자키 하야오 감독의 애니메이션 영화 '뽀코 로쏘'가 개봉일을 2024년 1월 16일로 연장한다고 밝혔습니다. 앞서 본 사이트는 '뽀코 로쏘'가 국립미술연맹 스페셜 라인 시네마에 론칭됐다고 보도한 바 있습니다. 11월 17일 누적 박스오피스 2,000~10,000 이상, 도우반 평점 8.6, 평점 4, 5점 85.8%를 기록했다. '로쏘'는 스튜디오 지브리가 제작하고 미야자키 하야오, 가토 토키코, 오츠카 아키오, 오카무라 아케미 등이 더빙에 참여한 작품이다. 이 영화는 미야자키 하야오의 만화 "비행선의 시대"를 각색한 것으로, 마법에 의해 돼지로 변신한 이탈리아 공군 에이스 조종사 폴록 로젠의 이야기를 담고 있습니다. 그 후 그는 현상금 사냥꾼이 되어 공중 강도와 싸우고 주변 사람들을 보호했습니다. 줄거리: 로젠은 제1차 세계대전에 참전한 군인입니다.

JavaScript 및 WebSocket: 효율적인 실시간 일기 예보 시스템 구축 소개: 오늘날 일기 예보의 정확성은 일상 생활과 의사 결정에 매우 중요합니다. 기술이 발전함에 따라 우리는 날씨 데이터를 실시간으로 획득함으로써 보다 정확하고 신뢰할 수 있는 일기예보를 제공할 수 있습니다. 이 기사에서는 JavaScript 및 WebSocket 기술을 사용하여 효율적인 실시간 일기 예보 시스템을 구축하는 방법을 알아봅니다. 이 문서에서는 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 우리

최고의 무료 AI 애니메이션 아트 생성기를 찾고 싶다면 검색을 종료할 수 있습니다. 애니메이션 예술의 세계는 독특한 캐릭터 디자인, 매혹적인 색상, 매혹적인 줄거리로 수십 년 동안 관객을 사로잡았습니다. 그러나 애니메이션 아트를 만드는 데는 재능과 기술, 그리고 많은 시간이 필요합니다. 그러나 인공 지능(AI)의 지속적인 발전으로 이제 최고의 무료 AI 애니메이션 아트 생성기의 도움으로 복잡한 기술을 탐구할 필요 없이 애니메이션 아트의 세계를 탐험할 수 있습니다. 이것은 당신의 창의력을 발휘할 수 있는 새로운 가능성을 열어줄 것입니다. AI 애니메이션 아트 생성기란 무엇입니까? AI 애니메이션 아트 생성기는 정교한 알고리즘과 기계 학습 기술을 활용하여 광범위한 애니메이션 작품 데이터베이스를 분석합니다. 이러한 알고리즘을 통해 시스템은 다양한 애니메이션 스타일을 학습하고 식별합니다.

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용
