私が最近取り組んでいたアプリプロジェクトでは、overflow:hidden の使用により多くの問題が発生したため、HTML5 の touch イベントについて研究することにしました。包括的な投稿を見つけるのは困難です。HTML5 タッチに関する記事は数多くありますが、そのほとんどはタッチ イベントや非常に短いデモを紹介しています。
上下にスライドする比較的包括的な小さなデモで、コードは比較的単純です。
XML/HTML コードコンテンツをクリップボードにコピー
-
>
-
<html lang="en" >
- <頭>
-
<メタ charset="UTF- 8">
- <メタ 名前="ビューポート" コンテンツ="width=device-width,initial-scale=1 user-scalable=0" />
-
<タイトル>2014-4-29タイトル>
-
<スタイル>
-
* {margin: 0; パディング: 0;}
-
#outer{ width:90%; 高さ: 490ピクセル; 背景: #000; マージン: 自動; オーバーフロー: 非表示;}
-
#inner{width:80%; 高さ: 2000ピクセル; 背景: #f67d42; マージン: 自動; 位置:相対; トップ:0; }
-
スタイル>
-
<script src='jquery- 1.9.1.min.js'>スクリプト>
-
頭>
-
<ボディ>
-
-
<div id="spText" >div>
-
<div id="アウター" >
- <div id="inner" >
- 123<br> 123<br> ギャグ<br> af <br> 123br> 123<br> 123<br> 123<br> 123 <br> 123br> 123<br> 123<br> 123<br> 123 <br> 123br> yryyr<br> ryry<br> 123<br> 123 <br> 123br> 123<br> 123<br> sdff<br> fef <br> 123br> hr<br> hrh<br> 5y<br> 123 <br>えー<br> ert<br> 123<br> rgdgdg<br> 123 <br> 123br> 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> yuyuyuyuyuy<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 > hrh<br> 5y< 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 > yuyuyuyuyuy<br> hjkhjkhkhkhjkhkh< br> kjkjk<br>
-
div>
-
div>
-
-
<スクリプト>
-
var startX, //タッチ時の座標
-
startY、
-
x, //スライド距離
-
はい、
-
aboveY=0 // 最後の内部ブロック スライドの位置を記録するグローバル変数を設定します。
-
-
var inner=ドキュメント.getElementById("inner");
-
関数 touchSatrt(e){//touch
-
e.preventDefault();
- var
touch-
=e.touches[0];
🎜>
-
関数 touchMove(e){//Slide
e.preventDefault();
var - touch
= - e
.touches[0];
-
y- =
touch-
.pageY - startY;// スライド距離
//inner.style.webkitTransform =
'translate('-
0 'px, ' y 'px )'; //css3 も使用できます。
inner.style.top=aboveY
y "px"; //この文の AboveY は最後のスライド後のインナーの位置
-
}
-
-
function 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>
以上がこの記事の全内容です。皆様の学習のお役に立てれば幸いです。