AlloyTouch 전체 화면 스크롤 플러그인으로 30초 만에 부드러운 H5 페이지 생성
사용 제스처
개발자가 전체 화면 스크롤 플러그인을 설계할 때 다음과 같은 작업을 수행할 수 있기를 바랍니다.
스크립트를 작성하지 않고도 신속하게 정교한 H5를 생성
PC 스크롤 휠 및 모바일 터치 지원
멋진 전환 효과
유연한 타임라인 관리
모든 것이 구성 가능
하지만 스크립팅은 없습니다. 유연성이 없나요? ! 아니요. 여기서는 HTML의 일부 매개변수를 구성할 수 있을 뿐만 아니라 플러그인의 콜백 기능을 통해 일부 로직을 삽입할 수도 있습니다. AlloyTouch.FullPage의 사용 자세를 분석하기 위해 코드를 스캔하여 위에서 본 예제의 부분 HTML을 살펴보겠습니다.
<div id="fullpage"> <div> <div> <div class="animated" data-show="bounceInLeft" data-hide="bounceOutLeft">AlloyTouch Introduction</div> <div class="animated" data-delay="500" data-show="bounceInUp" data-hide="zoomOut"><img src="asset/alloytouch.png"></div> <div class="animated" data-delay="1200" data-show="bounceIn" data-hide="bounceOut">By AlloyTeam</div> </div> </div> <div> <div> <div class="animated" data-delay="100" data-show="flipInY" data-hide="flipOutY" >Powerful Features</div> <div class="animated" data-delay="400" data-show="zoomIn" data-hide="zoomOut"><img src="asset/power.png"></div> </div> </div> ... ... ... </div>
위 내용은 HTML의 일부일 뿐이라는 점에 유의하세요. , 플러그인 구성과 관련 없는 일부 HTML이 제거되었습니다. 하나씩 분석해 보겠습니다.
class="animated"는 animate.css의 규칙을 준수합니다. 이 클래스를 추가하면 애니메이션이 있다는 의미입니다.
data-delay는 페이지로 스크롤한 후 애니메이션 재생을 시작하기 전에 표시된 DOM 요소가 기다리는 시간을 나타냅니다. 개발자가 표시하지 않으면 기본값은 0입니다.
data-show는 표시된 DOM 요소에 의해 표시되는 애니메이션 유형을 나타냅니다.
data-hide는 표시된 DOM 요소의 숨겨진 애니메이션 유형을 나타냅니다(보통 사용자에게는 표시되지 않지만 표시 시간의 경우). 스무딩, 일반적으로 데이터 표시와 반대 유형으로 설정)
너무 많아, 너무 많은 구성, 너무 많은 구성! ! 충분히 간단합니다! !
물론 js에서 초기화해야 합니다.
new AlloyTouch.FullPage("#fullpage",{ animationEnd:function () { }, leavePage: function (index) { console.log("leave"+index) }, beginToPage: function (index) { console.log("to"+index); pb.to(index / (this.length-1)); } });
animationEnd는 스크롤이 끝난 후의 콜백 함수입니다.
leavePage는 a를 떠나는 것을 나타냅니다. 특정 페이지의 콜백 함수
beginToPage는 특정 페이지로 이동하는 콜백 함수를 나타냅니다
위의 pb는 탐색의 진행률이나 진행률을 설정하는 데 사용됩니다. 지금은 이것. 필요한 경우 사용자는 진행률 표시줄 구성 요소 자체를 캡슐화할 수 있습니다.
원리 분석
여기서 주로 분석을 위한 AlloyTouch.FullPage의 핵심 코드를 추출합니다.
new AlloyTouch({ touch: this.parent, target: this.parent, property: "translateY", min: (1 - this.length) * this.stepHeight, max: 0, step: this.stepHeight, inertia: false, bindSelf : true, touchEnd: function (evt, v, index) { var step_v = index * this.step * -1; var dx = v - step_v; if (v < this.min) { this.to(this.min); } else if (v > this.max) { this.to(this.max); } else if (Math.abs(dx) < 30) { this.to(step_v); }else if (dx > 0) { self.prev(); } else { self.next(); } return false; }, animationEnd: function () { option.animationEnd.apply(this,arguments); self.moving = false; } });
여기서 터치해서 이동한 Dom은 전체 페이지 DOM, 즉 this.parent
위에서 위아래로 스크롤하므로 이동의 속성은 번역Y
min 할 수 있습니다. window.innerHeight를 통과하고 총 페이지 수에서 계산됩니다. this.stepHeight는 window.innerHeight
max는 분명히 0입니다
step은 분명히 window.innerHeight, 즉 this.stepHeight입니다.
inertia: False는 관성 동작을 비활성화한다는 의미입니다. 즉, 사용자가 손을 떼고 비활성 스크롤을 하지 않는다는 의미입니다.
bindSelf는 touchmove, touchend 및 touchcancel이 모두 this.parent 자체에 바인딩되어 있지 않고 바인딩되어 있음을 의미합니다. 창문으로. BindSelf가 설정되지 않으면 touchmove, touchend 및 touchcancel이 모두 창에 바인딩됩니다.
여기서 자세히 설명해야 합니다. 이 바인딩Self 구성은 예를 들어 AlloyTouch 중첩 문제를 해결하는 데 매우 유용합니다. 예를 들어 위 코드를 스캔하여 본 예에서 AlloyTouch가 중첩된 데모는 다음과 같습니다.
이것은 실제로 중첩 스크롤입니다. 안쪽을 굴리면 바깥쪽도 굴러가나요? 어떻게 해결하나요? 내부 스크롤은 반드시 BindSelf를 추가하고 버블링을 방지해야 합니다.
내부 스크롤의 자세한 코드를 살펴보겠습니다.
var scroller = document.querySelector("#scroller"); Transform(scroller,true); new AlloyTouch({ touch:"#demo0", target: scroller, property: "translateY", min:250-2000, max: 0 , touchStart:function(evt){ evt.stopPropagation(); }, touchMove:function(evt){ evt.stopPropagation(); }, bindSelf:true })
이 경우 중첩된 HTML 내부 중첩된 AlloyTouch는 버블링되지 않습니다. 즉, 내부 스크롤은 외부 스크롤을 트리거하지 않습니다.
계속해서 FullPage 소스 코드 분석:
touchEnd는 사용자의 손가락이 화면을 떠난 후의 콜백 함수입니다. 여기에는 경계 처리 논리가 있습니다.
최소값과 최대값을 초과하면 해당하는 최소값과 최대값이 수정됩니다.
단계 보정, 절대값이 30px 미만이면 재설정됩니다.
단계 보정, 절대값이 30px보다 크고 0보다 크면
단계 보정, 절대값이 30px보다 크면, 0보다 작으면 다음 페이지로 이동합니다.
false를 반환하면 모션 보정 로직이 실행됩니다. AlloyTouch를 놓으면 손이 실행되지 않습니다.
animationEnd는 모션이 끝난 후의 콜백입니다. 이 함수는 AlloyTouch.FullPage에서 사용자가 전달한 animationEnd를 실행합니다. 거짓으로 이동합니다.
AlloyTouch.FullPage의 여정을 시작하세요
Github: https://github.com/AlloyTeam/AlloyTouch
위 내용은 이 글의 전체 내용입니다. , 모든 사람에게 도움이 되기를 바랍니다. 학습이 도움이 되었으며, 모든 사람이 PHP 중국어 웹사이트를 지원하기를 바랍니다.
더 많은 AlloyTouch 전체 화면 스크롤 플러그인을 보려면 30초 만에 부드러운 H5 페이지를 만들 수 있습니다. 관련 기사는 PHP 중국어 웹사이트를 참고하세요!

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

뜨거운 주제











H5 프로젝트를 실행하려면 다음 단계가 필요합니다. Web Server, Node.js, 개발 도구 등과 같은 필요한 도구 설치. 개발 환경 구축, 프로젝트 폴더 작성, 프로젝트 초기화 및 코드 작성. 개발 서버를 시작하고 명령 줄을 사용하여 명령을 실행하십시오. 브라우저에서 프로젝트를 미리보고 개발 서버 URL을 입력하십시오. 프로젝트 게시, 코드 최적화, 프로젝트 배포 및 웹 서버 구성을 설정하십시오.

H5 Page 프로덕션은 HTML5, CSS3 및 JavaScript와 같은 기술을 사용하여 크로스 플랫폼 호환 웹 페이지의 생성을 말합니다. 핵심은 브라우저의 구문 분석 코드, 렌더링 구조, 스타일 및 대화식 기능에 있습니다. 일반적인 기술에는 애니메이션 효과, 반응 형 디자인 및 데이터 상호 작용이 포함됩니다. 오류를 피하려면 개발자를 디버깅해야합니다. 성능 최적화 및 모범 사례에는 이미지 형식 최적화, 요청 감소 및 코드 사양 등이 포함됩니다. 로딩 속도 및 코드 품질을 향상시킵니다.

이 기사에서는 Viewport Meta 태그를 사용하여 모바일 장치의 페이지 스케일링을 제어하여 폭과 최적의 응답 성 및 성능을위한 초기 스케일과 같은 설정에 중점을 둡니다. character count : 159

이 기사에서는 HTML5 페이지 가시성 API를 사용하여 페이지 가시성을 감지하고 사용자 경험을 향상 시키며 리소스 사용량을 최적화하는 것에 대해 설명합니다. 주요 측면에는 미디어 일시 정지, CPU 부하 감소 및 가시성 변경에 기반한 분석 관리가 포함됩니다.

이 기사는 지리적 위치 API를 사용하여 사용자 위치 개인 정보 및 권한 관리, 권한 요청, 데이터 보안 보장 및 개인 정보 보호법 준수에 대한 모범 사례를 강조하는 것에 대해 설명합니다.

이 기사는 HTML5 드래그 앤 드롭 API를 사용하여 대화식 사용자 인터페이스를 생성하고 요소를 드래그 가능하게 만들고 주요 이벤트를 처리하며 사용자 정의 피드백으로 사용자 경험을 향상시키는 방법을 자세히 설명합니다. 또한 일반적인 함정에 대해 설명합니다

코드 취약점, 브라우저 호환성, 성능 최적화, 보안 업데이트 및 사용자 경험 개선과 같은 요소로 인해 H5 페이지를 지속적으로 유지해야합니다. 효과적인 유지 관리 방법에는 완전한 테스트 시스템 설정, 버전 제어 도구 사용, 페이지 성능을 정기적으로 모니터링하고 사용자 피드백 수집 및 유지 관리 계획을 수립하는 것이 포함됩니다.

H5 (HTML5)는 마케팅 캠페인 페이지, 제품 디스플레이 페이지 및 기업 프로모션 마이크로 웨스 사이트와 같은 가벼운 응용 프로그램에 적합합니다. 그것의 장점은 교차 성형 및 풍부한 상호 작용에있어 있지만, 그 한계는 복잡한 상호 작용 및 애니메이션, 로컬 리소스 액세스 및 오프라인 기능에 있습니다.
