JavaScript 단순 여유 플러그인(소스 코드 패키징)_javascript 기술
요구 사항은 다음과 같습니다.
시작, 일시 정지(선형 및 비선형 트윈 모두 지원), 계속, 종료 가능
여러 스타일을 병렬로 지원
특정 프레임워크에 의존하지 않는 것이 가장 좋습니다. 실행
파일 크기가 클수록 작을수록 좋습니다
기존 플러그인이나 라이브러리를 검색했지만 그 중 만족스럽거나 상대적으로 균형 잡힌 것이 거의 없었습니다. 이 요구 사항에 따라 기본적으로 비교적 간단한 애니메이션 구성 요소를 작성했습니다. 이 요구 사항을 충족했습니다. 첫 번째 코드
온라인 데모: http://demo.jb51.net/js/2012/animate/
패키지 다운로드: animate_jquery.rar
html 부분 :
>
코드 복사
this.onContinue = options.onContinue || .onPause = options .onPause || 비어 있음;
var element = options.element;
var Duration = options.duration || 300;//총 변경 기간은 ms입니다.
var 보류 중 = false;//예 일시 중지되지 않았지만 아직 시작되지 않은 경우 값도 true입니다.
var time = null
var mixin = options.mix
var defaultState = this.from || getState(element, this .to);//원본 데이터
varthiz = this
//초기 스타일 가져오기
function getState(ele, targetStyles){
var obj = {};
var i = 0;
for(targetStyles의 var p)
{
i
obj[p] =parseFloat(mixin.getStyle(ele, p) );
}
if(i == 0){
return null;
}
return obj; animate(from, to, elapse) {
var startTime = (new Date).getTime() (elapse ? - elapse : 0);//일시정지에서 시작함을 증명하는 세 번째 매개변수가 있는 경우, 그런 다음 startTime을 현재 시간에서 임시 시간의 경과 시간을 뺀 값으로 설정합니다. 매개변수가 2개뿐이면 경과 시간은 0입니다.
timer = setInterval(function(){
var endTime = (new Date) .getTime();
if( endTime - startTime < 기간){
thiz.onAnimate()
currentElapse = endTime - startTime
for(var p in from); if(from.hasOwnProperty(p)){
var currentPropertyStyle = mixin.compute(currentElapse, from[p], to[p]-from[p], 기간)
mixin.setStyle(element, p , currentPropertyStyle);
}
}
else{
thiz.stop(thiz.to)
}
}, 16); 🎜>this.start = function(){
if(보류 중){
this.resume()
}
else{
this.onStart()
animate( defaultState, this.to);
}
}
this.stop = function(){
clearInterval(timer)
var styles =
for(var 스타일의 p){
if( styles.hasOwnProperty(p)){
mixin.setStyle(element, p, styles[p])
}
}
this.onStop( );
}
this .pause = function(){
clearInterval(timer);
pending = true; 이력서 = 함수(){
pending = false;
this.onContinue();
animate(defaultState, this.to, currentElapse)
}
使사용부분:
var mixinT = {
getStyle:baidu.dom.getStyle,
setStyle:baidu.dom.setStyle,
compute:function(t, b, c, d){
//return t*c/d b;
if (t==0) 반환 b;
if (t==d) return b c;
if ((t/=d/2) return c/2 * (-Math.pow(2, -10 * --t) 2) b;
}
};
var mixinJQ = {
getStyle:function(ele, styleName){
return $(ele).css(styleName);
},
setStyle:function(ele, styleName, styleValue){
$(ele).css(styleName, styleValue);
},
compute:function(t, b, c, d){
return b t*c/d;
}
};
var an = new animate({
element:document.getElementById('anim'),
//from:{'width':100, 'height':100, left:0, top: 30},
끝:{왼쪽:500},
mix:mixinT,
기간:2000
});
if(/demo=1/.test(location.search)){
var decolink = baidu.g('demolink');
demolink.href= 'animate.html';
demolink.innerHTML = '뒤로';
an.start();
setTimeout(function(){
an.pause();
resume();
}, 1200);
함수 재개(){
setTimeout(function(){an.resume()}, 1000);
}
}
상면是一个完整demo的代码。做几点说明:
代码尺寸足够小了,一共才100行,gzip后连1kduc不到.
满足了可以시작, 일시중지, 재개, 중지하기一个mixin变weight,传进来三个函数需要에서 执行动画时的操作,getStyle、setStyle、compute,我感觉这三个确实와 个择有关系,前两个可能와框架有关,第三个和用户采用变化计算方式有关, 之所以传进去 4个参数 主要是 와 主流的tween类能适应起来,可以参考http://www.robertpenner.com/easing/和http://www.actionscript.org/resources/articles/170/1 /Flash-MX-2004-Undocumented-TweenEasing-Classes-Documented/Page1.html了.
일체는 "확실히" 많은 양을 가지고 있으며, 더 많은 것을 사용하고 있습니다.每个实例都维护自己적 방법입니다.
使候,可以不提供options.from,函数会根据额options.to,来计算from中对应样式 的值,这很大程島上依赖于mixin提供적 방법은 없습니다.够强大,所以这一块还是有bug 的, 80%의 효과가 없습니다.

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

기술 및 산업 요구에 따라 Python 및 JavaScript 개발자에 대한 절대 급여는 없습니다. 1. 파이썬은 데이터 과학 및 기계 학습에서 더 많은 비용을 지불 할 수 있습니다. 2. JavaScript는 프론트 엔드 및 풀 스택 개발에 큰 수요가 있으며 급여도 상당합니다. 3. 영향 요인에는 경험, 지리적 위치, 회사 규모 및 특정 기술이 포함됩니다.

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.

동일한 ID로 배열 요소를 JavaScript의 하나의 객체로 병합하는 방법은 무엇입니까? 데이터를 처리 할 때 종종 동일한 ID를 가질 필요가 있습니다 ...

이 기사에서 시차 스크롤 및 요소 애니메이션 효과 실현에 대한 토론은 Shiseido 공식 웹 사이트 (https://www.shiseido.co.jp/sb/wonderland/)와 유사하게 달성하는 방법을 살펴볼 것입니다.

Console.log 출력의 차이의 근본 원인에 대한 심층적 인 논의. 이 기사에서는 Console.log 함수의 출력 결과의 차이점을 코드에서 분석하고 그에 따른 이유를 설명합니다. � ...

JavaScript를 배우는 것은 어렵지 않지만 어려운 일입니다. 1) 변수, 데이터 유형, 기능 등과 같은 기본 개념을 이해합니다. 2) 마스터 비동기 프로그래밍 및 이벤트 루프를 통해이를 구현하십시오. 3) DOM 운영을 사용하고 비동기 요청을 처리합니다. 4) 일반적인 실수를 피하고 디버깅 기술을 사용하십시오. 5) 성능을 최적화하고 모범 사례를 따르십시오.

프론트 엔드에서 VSCODE와 같은 패널 드래그 앤 드롭 조정 기능의 구현을 탐색하십시오. 프론트 엔드 개발에서 VSCODE와 같은 구현 방법 ...
