최근 진행하고 있던 앱 프로젝트에서 Overflow:Hidden 사용으로 인해 많은 문제가 발생하여 HTML5의 터치 이벤트에 대해 연구하게 되었습니다. html5 터치에 관한 글은 많지만 대부분 터치 이벤트나 아주 짧은 데모를 소개하고 있습니다.
위아래로 슬라이딩하는 비교적 포괄적인 소규모 데모로, 코드는 비교적 간단합니다.
다음은 전체 코드입니다. 중요한 부분을 빨간색으로 표시했습니다
XML/HTML 코드클립보드에 콘텐츠 복사
-
>
-
<html lang="ko" >
-
<머리>
-
<메타 문자 집합="UTF- 8">
-
<메타 이름="뷰포트" 콘텐츠="width=device-width,initial-scale=1 user-scalable=0" />
-
<제목>2014-4-29제목>
-
<스타일>
-
* {여백: 0; 패딩: 0;}
-
#외부{ 너비:90%; 높이: 490px; 배경: #000; 여백: 자동; 오버플로: hidden;}
-
#inner{너비:80%; 높이: 2000px; 배경: #f67d42; 여백: 자동; 위치:상대적; 상단:0; }
-
스타일>
-
<스크립트 src='jquery- 1.9.1.min.js'>스크립트>
-
머리>
-
<몸>
-
-
<div id="spText" >div>
-
<div id="외부" >
-
<div id="내부" >
-
123<br> 123<br> 개그<br> af <br> 123<br> 123<br> 123<br> 123<br> 123 <br> 123<br> 123<br> 123<br> 123<br> 123 <br> 123<br> yryyr<br> ryry<br> 123<br> 123 <br> 123<br> 123<br> 123<br> sdff<br> fef <br> 123<br> 시간<br> 시간<br> 5년<br> 123 <br> 어<br> ert<br> 123<br> rgdgdg<br> 123 <br> 123<br> 123<br> 123<br> 123<br> 123 <br> gfgfgfgfgfgf<br> sdsdsdsdsdsd<br> SF<br> 123<br> 123<br > 123<br> 123< br> 123<br> 123<br> 123<br > 123<br> gdggdgdg< br> 123<br> drgdrgd<br> 123<br > 123<br> 123< br> 유유유유유이<br> hjkhjkhkhkhjkhkh<br> kjkjk<br >123<br> 123< br> 개그<br> af<br> 123<br > 123<br> 123< br> 123<br> 123<br> 123<br > 123<br> 123< br> 123<br> 123<br> 123<br > yryyr<br> ryry< br> 123<br> 123<br> 123<br > 123<br> 123< br> sdff<br> fef<br> 123<br> 시간<br > 시간<br> 5년< br> 123<br> er<br> ert<br > 123<br> rgdgdg< br> 123<br> 123<br> 123<br > 123<br> 123< br> 123<br> gfgfgfgfgfgf<br> sdsdsdsdsdsd<br > sf<br> 123< br> 123<br> 123<br> 123<br > 123<br> 123< br> 123<br> 123<br> gdggdgdg<br > 123<br> drgdrgd< br> 123<br> 123<br> 123<br > 유유유유유이<br> hjkhjkhkhkhjkhkh< br> kjkjk<br>
-
div>
-
div>
-
-
<스크립트>
-
var startX, //터치 시 좌표
-
시작Y,
-
x, //슬라이딩 거리
-
와,
-
aboveY=0 //마지막 내부 블록 슬라이드 위치를 기록하는 전역 변수 설정
-
-
var inner=document.getElementById("inner")
-
기능 touchSattt(e){//touch -
e.preventDefault() -
var -
touch=e.touches[0]
🎜>
-
touchMove(e){//슬라이드 기능
e.preventDefault() -
var - 터치
= - e
.touches[0];
-
y-
= 터치.pageY - startY;//슬라이딩 거리
//
inner.style.webkitTransform-
= 'translate(' 0 'px, 'y'px )'; //css3을 사용할 수도 있습니다.
inner.style.top-
=aboveY y "px"는 이 문장에서; 마지막 슬라이드 이후 내부 위치
}
-
-
touchEnd(e) 기능{//손가락이 화면에서 벗어남
- e.preventDefault();
-
aboveY=parseInt(inner.style.top);//터치 후 내부 슬라이더 기록 완료됨 슬라이딩 위치는 전역 변수에 반영되며 반드시 ParseInt()를 사용하여 정수로 변환되어야 합니다.
-
}// -
document.getElementById("outer").addEventListener('touchstart', touchSatrt,false) -
document.getElementById("outer").addEventListener('touchmove', touchMove,false) -
document.getElementById("outer").addEventListener('touchend', touchEnd,false) -
-
스크립트>
-
몸>
-
-
html>
위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.
원문:
http://www.cnblogs.com/leinov/p/3701951.html