AlloyTouch 무한 루프 선택 플러그인
앞에 쓰기
알람시계의 초를 맞추는 등 스크롤 내용이 많은 경우 총 60개의 항목이 있습니다. 59ms에서 01ms로 뒤로 스크롤하는 것은 사용자에게 매우 고통스럽습니다.
목록 항목이 너무 많으면 무한 루프 스크롤이 가능하기를 바랍니다. 00ms와 01ms는 원활하게 연결됩니다. 아래와 같습니다:
온라인 데모
http://www.php.cn/
플러그인은 먼저
을 사용하여 종속 JS 및 CSS 파일을 참조합니다.
<link rel="stylesheet" href="select.css" /><script src="../../transformjs/transform.js"></script><script src="../../alloy_touch.js"></script><script src="alloy_touch.select.infinite.js"></script>
Then:
var i = 0, options = [];for (; i < 60; i++) { options.push({ value: i, text: i < 10 ? "0" + i+" ms" : i + " ms" });}var iselect = new AlloyTouch.Select({ options: options, selectedIndex: 11, change: function (item, index) { }, complete: function (item, index) { document.body.insertAdjacentHTML("beforeEnd", "<br/>选了第" + index + "项<br/>value:" + item.value + "<br/>text:" + item.text); }})iselect.show();
options는 모든 항목의 집합입니다. 위의 시뮬레이션된 60개 항목은 해당 ms를 나타냅니다
selectedIndex는 초기 선택된 항목의 인덱스
변경 사항입니다. 변경된 콜백
complete는 완료버튼
핵심원리
를 클릭하는 콜백입니다. 원리를 살펴보면서 DOM의 속성 의 변경 사항을 살펴보겠습니다.
new AlloyTouch({ touch: container, target: { y: -1 * preSelectedIndex * step }, property: "y", vertical: true, step: step, change: function (value) { correction(value); }, touchStart: function (evt, value) { }, touchMove: function (evt, value) { }, touchEnd: function (evt, value) { }, tap: function (evt, value) { }, pressMove: function (evt, value) { }, animationEnd: function (value) { }})function correction(value) { value %= scrollerHeight; if (Math.abs(value) > scrollerHeight-90) { if (value > 0) { value -= scrollerHeight; } else { value += scrollerHeight; } } scroll.translateY = value - scrollerHeight;}
AlloyTouch 인스턴스를 초기화할 때 리바운드가 필요하지 않기 때문에 최소 및 최대 매개변수가 없는 것을 확인할 수 있습니다.
교정을 사용하여 박동 주기 효과를 만들어 보세요. (참고: 값은 한 사이클씩 점프하지만 DOM 렌더링 성능은 점프를 볼 수 없습니다.)
여기서 대상은 y 속성을 포함하는 객체 리터럴이고
scroll은 객체를 스크롤하는 것입니다. transfrom의 관련 속성과 혼합되었으므로 수직 변위는 scroll.translateY를 통해 직접 설정할 수 있습니다.
요약
360도 회전은 자동으로 주기를 처리하지 않기 때문에 모션 개체 리터럴 {y:xx}를 직접 전달한 다음 스크롤 개체의 수정을 통해 번역하여 주기성을 제어합니다.
후속 작업도 안내해 드립니다:
AlloyTouch의 다중 계단식 선택 연습
AlloyTouch의 3D 효과 선택 연습
위 내용은 AlloyTouch 무한 루프 선택 플러그인의 상세 내용입니다. 자세한 내용은 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)

뜨거운 주제











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

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

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

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

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

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

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

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