Javascript 완벽 한 운동 애니메이션 프레임 워 크 실현
2364 단어 JavaScript프레임애니메이션스 탠 더 드운동 틀
운동 은 사실 한 동안 top, bottom, left, right, width, height, opacity 의 값 을 바 꾸 고 목적지 에 도착 한 후에 멈 추 는 것 이다.
운동 프레임 워 크 의 실현 코드:
function getStyle(element, attr) {
//IE
if (element.currentStyle) {
return element.currentStyle[attr];
} else {
//
return getComputedStyle(element, false)[attr];
}
}
function startMove(element, json, time,func) {
var flag = true; // .
clearInterval(element.timer);
element.timer = setInterval(function () {
for (var attr in json) {
//1. 。
var iCurrent = 0;
if (attr === "opacity") { // 。
iCurrent = Math.round(parseFloat(getStyle(element, attr)) * 100);
} else { //
iCurrent = parseInt(getStyle(element, attr)); //
}
//2. ,
var iSpeed = (json[attr] - iCurrent) / 10; //( - )/ =
iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed); //
//3. ,
if (iCurrent != json[attr]) {
flag = false; //
if (attr === "opacity") { // ,
element.style.filter = "alpha(opacity:" + (iCurrent + iSpeed) + ")"; //IE
element.style.opacity = (iCurrent + iSpeed) / 100; //
} else { //
element.style[attr] = iCurrent + iSpeed + "px";
}
}
//4. ,
if (flag) {
clearInterval(element.timer);
if (func) {
func();
}
}
}
}, time);
}
운동 프레임 의 각 인터페이스:
element: 운동 을 수행 해 야 할 대상
json: 어떤 운동 을 실행 합 니까? 예 를 들 어 {"width": "100"} 은 너비 가 100 으로 변 하 는 운동 입 니 다. 여러 개의 동시 운동 을 할 때 괄호 안에 사용 하고 분리 하 십시오.
time: 타이머, 애니메이션 실행 지속 시간
func: 리 셋 함수, 체인 운동 실행 가능
jQuery 를 사용 하면 쉽게 실현 할 수 있 습 니 다.
... 와 같다
<pre name="code" class="html">$(function(){
$(" ").mouseenter(function(){
$(this).animate({"top":"-25px","opacity":"0"},300,function(){// 25 , 0
$(this).animate({"top":"20px","opacity":"1"},200);// 20 , 1
})
})
});
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.