웹 프론트엔드 H5 튜토리얼 AlloyTouch 전체 화면 스크롤 플러그인으로 30초 만에 부드러운 H5 페이지 생성

AlloyTouch 전체 화면 스크롤 플러그인으로 30초 만에 부드러운 H5 페이지 생성

Jan 11, 2017 am 09:42 AM

사용 제스처

개발자가 전체 화면 스크롤 플러그인을 설계할 때 다음과 같은 작업을 수행할 수 있기를 바랍니다.

스크립트를 작성하지 않고도 신속하게 정교한 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가 중첩된 데모는 다음과 같습니다.

AlloyTouch全屏滚动插件 30秒搞定顺滑H5页

이것은 실제로 중첩 스크롤입니다. 안쪽을 굴리면 바깥쪽도 굴러가나요? 어떻게 해결하나요? 내부 스크롤은 반드시 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 중국어 웹사이트를 참고하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

H5 프로젝트를 실행하는 방법 H5 프로젝트를 실행하는 방법 Apr 06, 2025 pm 12:21 PM

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

H5 페이지 제작은 정확히 무엇을 의미합니까? H5 페이지 제작은 정확히 무엇을 의미합니까? Apr 06, 2025 am 07:18 AM

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

뷰포트 메타 태그를 사용하여 모바일 장치에서 페이지 스케일링을 제어하려면 어떻게합니까? 뷰포트 메타 태그를 사용하여 모바일 장치에서 페이지 스케일링을 제어하려면 어떻게합니까? Mar 13, 2025 pm 08:00 PM

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

HTML5 페이지 가시성 API를 사용하여 페이지가 표시되는시기를 감지하려면 어떻게합니까? HTML5 페이지 가시성 API를 사용하여 페이지가 표시되는시기를 감지하려면 어떻게합니까? Mar 13, 2025 pm 07:51 PM

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

Geolocation API로 사용자 위치 개인 정보 및 권한을 어떻게 처리합니까? Geolocation API로 사용자 위치 개인 정보 및 권한을 어떻게 처리합니까? Mar 18, 2025 pm 02:16 PM

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

대화식 사용자 인터페이스에 HTML5 드래그 앤 드롭 API를 어떻게 사용합니까? 대화식 사용자 인터페이스에 HTML5 드래그 앤 드롭 API를 어떻게 사용합니까? Mar 18, 2025 pm 02:17 PM

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

H5 페이지 생산에는 지속적인 유지 보수가 필요합니까? H5 페이지 생산에는 지속적인 유지 보수가 필요합니까? Apr 05, 2025 pm 11:27 PM

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

H5 페이지 제작에 적합한 응용 프로그램 시나리오 H5 페이지 제작에 적합한 응용 프로그램 시나리오 Apr 05, 2025 pm 11:36 PM

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

See all articles