JQuery 사용자 정의 CircleAnimation, Animate 메서드 연구 Notes_jquery
JQuery를 배우는 다른 학생들에게 도움이 되길 바라며 여기에 학습 결과를 게시하고, 나의 학습 상황도 기록합니다.
몇 가지 공식 JQuery 튜토리얼을 읽은 후 나는 이미 약간의 흥미를 느꼈기 때문에 직접 작성해 보기로 결정했습니다. 화려한 애니메이션 효과를 많이 보고, 원형 모션의 애니메이션 효과를 직접 써보기로 했습니다. 아래에 js 코드를 게시해 두겠습니다.
var CircleAnimation = function (center_left, center_top, id, clockwise, Duration) {
새 CircleAnimation.fn을 반환합니다. init(center_left, center_top, id, 시계방향, 기간);
CircleAnimation.fn = CircleAnimation.prototype = {
item: {},
init:
function (center_left, center_top, id, 시계방향, 기간) {
this.item = $("#" id "")
if (!this.item[0])
return;
x : this.item.css("left") == "auto" ? 0 : String(this.item.css("left")).replace("px", "") - center_left,
y: this.item.css("top") == "auto" ? 0 : String(this.item.css("top")).replace("px", "") - center_top
};
center_left = center_left;
if (currentPoint.x == 0 && currentPoint.y == 0)
return
r = .pow(currentPoint .x, 2) Math.pow(currentPoint.y, 2), 0.5);
var flag = false;
var caculateMiniAngle = function (angle) {
//최소값 계산 각도 차이, 두 점 사이의 거리가 1px 미만인 경우 이 2개의 포닛 각도가 최소 각도 차이여야 한다고 생각합니다.
if (Math.sin(angle / 2) * 2 * r > 1) {
return caculateMiniAngle(angle / 2)
}
else {
return angle;
}
}
miniAngle = caculateMiniAngle(Math.PI / 4)// dom 요소에 데이터 저장
this.item.data("currentPoint", currentPoint);
this.item.data("center_left", center_left)
this.item.data("center_top", center_top);
this.item.data("r", r);
this.item.data("clockwise", clockwise)
this.item.data("miniAngle", miniAngle) ;
this.item.data("기간", 기간);
//this.item.data("startX", this.startX)
},
시작:
function () {
var 요소;
if (this.id)
element = $("#" this.id.toString())
else
element = this.item ;
element.animate({ left: 1, top: 1 }, {
duration: element.data(
"duration"),
step: CircleAnimation.fn.caculateNextPoint
} );
},
caculateNextPoint:
function () {
var el
el = $(
"#" this.id.toString()); var sin = el .data("currentPoint").y / el.data("r");
var angle = Math.asin(sin);
if (el.data("currentPoint"). x < 0 )
angle = Math.PI - angle;//현재 점 각도와 다음 점 각도 사이의 각도 차이를 계산합니다.
varanglediff = el.data("miniAngle"); >if (el .data("duration") != 정의되지 않음)
anglediff = 2 * Math.PI * 13 / el.data(
"duration")
if (el.data(" 시계 방향"))
angle = angle - angleiff;
else
angle = angle angleiff;
var y = el.data("r") * Math.sin(angle);
var x = el .data("r") * Math.cos(angle);
var fx =args[1]//기간을 충분히 길게 설정하면 원 애니메이션이 멈추지 않습니다.
fx.options .duration = (
new Date).getTime() - fx.startTime 10000
if (fx.prop == "top")
fx.now = y el.data(
" center_top");
if (fx.prop == "left")
fx.now = x el.data(
"center_left");
el.data(
"currentPoint ", { x : x, y: y });
},
stop:
function () {
this.item.queue("fx", []);
this.item.stop();
}
}
CircleAnimation.fn.init.prototype =

핫 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)

뜨거운 주제











기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

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

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

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

이 기사는 소스 맵을 사용하여 원래 코드에 다시 매핑하여 미니어링 된 JavaScript를 디버그하는 방법을 설명합니다. 소스 맵 활성화, 브레이크 포인트 설정 및 Chrome Devtools 및 Webpack과 같은 도구 사용에 대해 설명합니다.

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

엔트리 레벨 타입 스크립트 자습서를 마스터 한 후에는 TypeScript를 지원하고 JavaScript로 컴파일하는 IDE에서 자신의 코드를 작성할 수 있어야합니다. 이 튜토리얼은 TypeScript의 다양한 데이터 유형으로 뛰어납니다. JavaScript에는 NULL, UNDEFINED, BOOLEAN, 번호, 문자열, 기호 (ES6에 의해 소개 됨) 및 객체의 7 가지 데이터 유형이 있습니다. TypeScript는이 기반으로 더 많은 유형을 정의 하며이 튜토리얼은이 모든 튜토리얼을 자세히 다룹니다. 널 데이터 유형 JavaScript와 마찬가지로 Null in TypeScript
