cari
Rumahhujung hadapan webTutorial H5Pengenalan kepada evolusi acara sentuh HTML5 ketik kemahiran tutorial event_html5

Acara sentuh ialah acara HTML5 yang unik untuk penyemak imbas mudah alih Walaupun acara klik lebih biasa pada PC dan terminal mudah alih, akan ada kelewatan 300ms pada terminal mudah alih, yang menjejaskan pengalaman pengguna. Kelewatan 300ms datang daripada menilai klik dua kali dan tekan lama, kerana hanya Peristiwa klik tidak akan dicetuskan sehingga masa menunggu lalai telah berlalu untuk memastikan tiada tindakan seterusnya berlaku. Jadi tindak balas acara sentuh lebih pantas dan pengalaman lebih baik.

Jenis acara sentuhan:

Untuk membezakan perubahan keadaan berkaitan sentuhan, terdapat berbilang jenis acara sentuhan. Anda boleh menentukan jenis acara semasa dengan memeriksa atribut <font face="NSimsun">TouchEvent.type</font> acara sentuh.

Nota: Dalam banyak kes, peristiwa sentuhan dan peristiwa tetikus akan dicetuskan pada masa yang sama (tujuannya adalah untuk membenarkan kod yang tidak dioptimumkan untuk peranti sentuh masih berfungsi seperti biasa semasa sentuhan peranti). Jika anda menggunakan acara sentuh, anda boleh memanggil <font face="NSimsun">event.preventDefault()</font> untuk mengelakkan peristiwa tetikus daripada dicetuskan.

Acara sentuhan standard

Nama acara Penerangan Mengandungi tatasusunan sentuhan

touchstart

Dicetuskan apabila pengguna meletakkan titik sentuh pada permukaan sentuh. Sasaran <font face="NSimsun">elemen</font> acara akan menjadi <font face="NSimsun">elemen</font> sasaran di kod lokasi sentuh> Ya

touchmove

事件名称 描述 包含touches数组

touchstart

当用户在触摸平面上放置了一个触点时触发。事件的目标 <font face="NSimsun">element</font> 将是触点位置上的那个目标 <font face="NSimsun">element</font>

touchmove

当用户在触摸平面上移动触点时触发。

事件的目标 <font face="NSimsun">element</font> 和这个<font face="NSimsun"> touchmove </font>事件对应的 <font face="NSimsun">touchstart 事件的目标</font> <font face="NSimsun">element</font> 相同,

哪怕当 <font face="NSimsun">touchmove</font> 事件触发时,触点已经移出了该 <font face="NSimsun">element</font> 。

touchend

当一个触点被用户从触摸平面上移除(当用户将一个手指离开触摸平面)时触发。

当触点移出触摸平面的边界时也将触发。例如用户将手指划出屏幕边缘。

已经被从触摸平面上移除的触点,可以在 changedTouches 属性定义的 TouchList 中找到。

touchenter

当触点进入某个 <font face="NSimsun">element</font> 时触发。此事件没有冒泡过程。

touchleave

当触点离开某个 <font face="NSimsun">element</font> 时触发。此事件没有冒泡过程。

touchcancel

当触点由于某些原因被中断时触发。有几种可能的原因如下(具体的原因根据不同的设备和浏览器有所不同):

  • 由于某个事件取消了触摸:例如触摸过程被一个模态的弹出框打断。
  • 触点离开了文档窗口,而进入了浏览器的界面元素、插件或者其他外部内容区域。
  • 当用户产生的触点个数超过了设备支持的个数,从而导致 <font face="NSimsun">TouchList</font> 中最早的 <font face="NSimsun">Touch</font> 对象被取消。
Dipecat apabila pengguna mengalihkan titik sentuhan pada permukaan sentuh. Sasaran acara <font face="NSimsun">elemen</font> sepadan dengan <font face="NSimsun"> touchmove </font>ini > acara Sasaran <font face="NSimsun">touchstart event</font> adalah sama dengan <font face="NSimsun">elemen</font> kod> , Walaupun apabila peristiwa <font face="NSimsun">touchmove</font> dicetuskan, titik sentuh telah dialih keluar daripada elemen <font face="NSimsun"> </font>.
Ya

touchend

Dipecat apabila titik sentuh dikeluarkan dari permukaan sentuh oleh pengguna (apabila pengguna mengangkat jari dari permukaan sentuh). Juga dicetuskan apabila sesentuh bergerak di luar sempadan satah sentuh. Sebagai contoh, pengguna menarik jari mereka keluar dari tepi skrin. Sentuhan yang telah dialih keluar daripada satah sentuh boleh didapati dalam atribut changedTouches yang ditakrifkan dalam TouchList . Ya

touchenter

Dicetuskan apabila kenalan memasuki <font face="NSimsun">elemen</font>. Acara ini tidak mempunyai proses menggelegak. Ya

touchleave

Dipecat apabila kenalan meninggalkan <font face="NSimsun">elemen</font>. Acara ini tidak mempunyai proses menggelegak. Ya

touchcancel

Dipecat apabila kenalan diganggu atas sebab tertentu. Terdapat beberapa sebab yang mungkin seperti berikut (sebab khusus berbeza mengikut peranti dan penyemak imbas):
  • Sentuhan telah dibatalkan disebabkan oleh peristiwa: contohnya, proses sentuhan telah diganggu oleh kotak pop timbul modal.
  • Titik sentuh meninggalkan tetingkap dokumen dan memasuki elemen antara muka penyemak imbas, pemalam atau kawasan kandungan luaran yang lain.
  • Apabila bilangan titik sentuh yang dijana oleh pengguna melebihi bilangan yang disokong oleh peranti, menghasilkan <font face="NSimsun">TouchList</font> code> ="NSimsun">Touch objek dibatalkan.
Ya

Sifat objek sentuh

).
<font face="NSimsun">Touch.identifier</font> Mengembalikan nilai yang secara unik mengenal pasti titik yang bersentuhan dengan satah sentuh Nilai ini kekal konsisten merentas semua peristiwa yang dicetuskan oleh jari ini (atau stylus, dsb.) sehingga ia meninggalkan satah sentuh.
<font face="NSimsun">Touch.screenX</font> Koordinat X titik sentuh berbanding dengan tepi kiri skrin Sifat baca sahaja.
<font face="NSimsun">Touch.screenY</font> Koordinat Y bagi titik sentuh berbanding dengan tepi atas skrin Sifat baca sahaja.
<font face="NSimsun">Touch.clientX</font> Koordinat X bagi titik sentuh berbanding dengan tepi kiri port pandangan yang boleh dilihat
<font face="NSimsun">Touch.clientY</font> Koordinat Y bagi titik sentuh berbanding tepi atas port pandangan yang boleh dilihat tidak termasuk sebarang pengimbangan tatal Sifat baca sahaja.
<font face="NSimsun">Touch.pageX</font> Koordinat X bagi titik sentuh berbanding dengan tepi kiri dokumen HTML Apabila terdapat mendatarscrollingoffset, Nilai ini mengandungi offset tatal mendatar</code.></font> <strong>Harta baca sahaja.</strong> </td> </tr> <tr> <td><code><font face="NSimsun">Touch.pageY</font> Koordinat Y bagi titik sentuh relatif kepada tepi atas dokumen HTML <font face="NSimsun">Apabila terdapat pengimbangan skrol mendatar, nilai ini termasuk pengimbangan skrol menegak</font> <strong>Atribut baca sahaja.</strong>
<font face="NSimsun">Touch.radiusX</font> Jejari paksi mendatar (paksi-X) elips terkecil yang boleh menutup permukaan sentuhan antara pengguna dan permukaan sentuh Unit nilai ini adalah sama dengan <font face="NSimsun"> screenX. </font>Atribut baca sahaja.
<code><font face="NSimsun">Touch.force</font> Jumlah tekanan yang ditekan oleh jari pada permukaan sentuh, nombor titik terapung daripada 0.0 (tiada tekanan) kepada 1.0 (tekanan maksimum Sifat baca sahaja.
<code><font face="NSimsun">Touch.radiusY</font> Jejari paksi menegak (paksi-Y) elips terkecil yang boleh menutup permukaan sentuhan antara pengguna dan permukaan sentuh Unit nilai ini adalah sama dengan <font face="NSimsun"> screenY. </font>Atribut baca sahaja.
<code><code><font face="NSimsun">Touch.target</font>
<font face="NSimsun">Touch.identifier</font> 返回一个可以唯一地识别和触摸平面接触的点的值. 这个值在这根手指(或触摸笔等)所引发的所有事件中保持一致, 直到它离开触摸平面.
<font face="NSimsun">Touch.screenX</font> 触点相对于屏幕左边沿的的X坐标. 只读属性.
<font face="NSimsun">Touch.screenY</font> 触点相对于屏幕上边沿的的Y坐标. 只读属性.
<font face="NSimsun">Touch.clientX</font> 触点相对于可见视区左边沿的的X坐标. 不包括任何滚动偏移. 只读属性.
<font face="NSimsun">Touch.clientY</font> 触点相对于可见视区上边沿的的Y坐标. 不包括任何滚动偏移. 只读属性.
<font face="NSimsun">Touch.pageX</font> 触点相对于HTML文档左边沿的的X坐标. 当存在水平滚动的偏移时, 这个值包含了水平滚动的偏移只读属性.
<font face="NSimsun">Touch.pageY</font> 触点相对于HTML文档上边沿的的Y坐标. <font face="NSimsun">当存在水平滚动的偏移时, 这个值包含了垂直滚动的偏移</font>只读属性.
<font face="NSimsun">Touch.radiusX</font> 能够包围用户和触摸平面的接触面的最小椭圆的水平轴(X轴)半径. 这个值的单位和<font face="NSimsun"> screenX 相同. </font>只读属性.
<code><font face="NSimsun">Touch.force</font> 手指挤压触摸平面的压力大小, 从0.0(没有压力)到1.0(最大压力)的浮点数. 只读属性.
<code><font face="NSimsun">Touch.radiusY</font> 能够包围用户和触摸平面的接触面的最小椭圆的垂直轴(Y轴)半径. 这个值的单位和<font face="NSimsun"> screenY 相同. </font>只读属性.
<code><code><font face="NSimsun">Touch.target</font>

当这个触点最开始被跟踪时(在 <font face="NSimsun">touchstart</font> 事件中), 触点位于的HTML元素. 哪怕在触点移动过程中, 触点的位置已经离开了这个元素的有效交互区域,

或者这个元素已经被从文档中移除. 需要注意的是, 如果这个元素在触摸过程中被移除, 这个事件仍然会指向它, 但是不会再冒泡这个事件到 <font face="NSimsun">window</font> 或 <font face="NSimsun">document</font> 对象.

因此, 如果有元素在触摸过程中可能被移除, 最佳实践是将触摸事件的监听器绑定到这个元素本身, 防止元素被移除后, 无法再从它的上一级元素上侦测到从该元素冒泡的事件. 只读属性.

Apabila titik sentuh ini pada mulanya dijejaki (dalam acara <font face="NSimsun">touchstart</font>), titik sentuh terletak dalam elemen HTML Walaupun sentuhan itu titik bergerak Semasa proses, kedudukan titik sentuh telah meninggalkan kawasan interaksi berkesan elemen ini,

Atau elemen ini telah dialih keluar daripada dokumen Perlu diingat bahawa jika elemen ini dialih keluar semasa proses sentuhan, acara ini akan tetap menghalakannya, tetapi acara ini tidak lagi akan menggelembung ke tetingkap atau objek <font face="NSimsun">dokumen</font>.

Oleh itu, jika terdapat elemen yang mungkin dialih keluar semasa proses sentuhan, amalan terbaik ialah mengikat pendengar peristiwa sentuhan kepada elemen itu sendiri untuk mengelakkan elemen itu daripada dialih keluar daripada elemen induknya Satu peristiwa telah dikesan menggelegak daripada elemen ini. Atribut baca sahaja.

IE指针事件
事件名称 描述(在触摸设备上)
MSPointerDown 触摸开始
MSPointerMove 接触点移动
MSPointerUp 触摸结束
MSPointerOver 触摸点移动到元素内,相当于mouseover
MSPointerOut 触摸点离开元素,相当于mouseout
Acara sentuh dalam IE10

Harta MSPointerEvent

属性 描述
hwTimestamp 创建事件的时间(ms)
isPrimary 标识该指针是不是主指针
pointerId 指针的唯一ID(类似于触摸事件的标识符)
pointerType 一个整数,标识了该事件来自鼠标、手写笔还是手指
pressure 笔的压力,0-255,只有手写笔输入时才可用
rotation 0-359的整数,光标的旋转度(如果支持的话)
tiltX/tiltY 手写笔的倾斜度,只有用手写笔输入时才支持

Acara yang setara

鼠标 触摸 键盘
mousedown touchstart keydown
mousemove touchmove keydown
mouseup touchend keyup
mouseover   focus

Jelas sekali, urutan tindakan sentuh: touchstart-touchmove-touchend dan jujukan tetikus: mousedown-mousemove-mouseup dan urutan papan kekunci: keydown-keypress-keyup adalah sangat serupa. Ini bukan kebetulan, kerana ketiga-tiga corak interaksi boleh diterangkan untuk mula-gerak-henti.

Setelah berkata demikian, klik perlu melalui proses touchstart-touchmove-touchend, dengan kelewatan 300ms, jadi acara ketik diperlukan Ketik bermakna menyentuh titik yang sama untuk masa yang singkat.

Acara ketik dan ketik panjang yang dirangkumkan

Kod XML/HTMLSalin kandungan ke papan keratan
  1. (fungsi() {    
  2.     var SENTUH MULA, SENTUH;    
  3.     jika (typeof(window.ontouchstart) != 'undefined') {    
  4.         SENTUH MULA = 'sentuh mula';    
  5.         SENTUHAN = 'sentuh';    
  6.         TOUCHMOVE='touchmove';    
  7.      
  8.     } lain jika (typeof(window.onmspointerdown) != 'undefined') {    
  9.         SENTUH MULA = 'MSPointerDown';    
  10.         SENTUHAN = 'MSPointerUp';    
  11.         TOUCHMOVE='MSPointerMove';    
  12.     } lain {    
  13.         SENTUH MULA = 'turun tetikus';    
  14.         SENTUHAN = 'mouseup';    
  15.         TOUCHMOVE = 'mouseemove';    
  16.     }    
  17.     fungsi NodeTouch(nod) {    
  18.         ni._nod = nod;    
  19.     }    
  20.     fungsi ketik(nod,panggilan balik,skop) {    
  21.         node.addEventListener(TOUCHSTART, fungsi(e) {    
  22.              x = e.sentuhan[0].pageX;    
  23.              y = e.touches[0].pageY;    
  24.         });    
  25.         node.addEventListener(TOUCHEND, fungsi(e) {    
  26.             e.stopPropagation();    
  27.             e.preventDefault();    
  28.              var curx = e.changedTouches[0].pageX;    
  29.              var cury = e.changedTouches[0].pageY;    
  30.             jika (Math.abs(curx - x)  6 && Math.ab y)  6) {    
  31.                 panggilan balik.apply(skop, hujah);    
  32.             }    
  33.         });    
  34.     }    
  35.     fungsi longTap(nod, panggil balik, skop) {    
  36.         var x,y,Masa mula=0,Masa tamat=0,in_dis=palsu;    
  37.         node.addEventListener(TOUCHSTART, fungsi(e) {    
  38.              x = e.sentuhan[0].pageX;    
  39.              y = e.touches[0].pageY;    
  40.             Masa mula=(Tarikh baru()).getTime();    
  41.         });    
  42.         node.addEventListener(TOUCHEND, fungsi(e) {    
  43.             e.stopPropagation();    
  44.             e.preventDefault();    
  45.              var curx = e.changedTouches[0].pageX;    
  46.              var cury = e.changedTouches[0].pageY;    
  47.             jika (Math.abs(curx - x)  6 && Math.ab y)  6) {    
  48.                 in_dis=benar;    
  49.             }lain{    
  50.                 in_dis=salah;    
  51.             }    
  52.             Masa tamat=(Tarikh baru()).getTime();    
  53.             jika (masa tamat - masa mula > 300 && dalam_dis) {    
  54.                 panggilan balik.apply(skop, hujah);    
  55.             }    
  56.         });    
  57.     }    
  58.     NodeTouch.prototype.on = fungsi(evt, panggilan balik, skop) {    
  59.         var skopObj;    
  60.         var x,y;    
  61.         jika (!skop) {    
  62.             skopObj = ini._nod;    
  63.         } lain {    
  64.              skopskopObj = skop;    
  65.         }    
  66.         jika (evt === 'ketik') {    
  67.             ketik (nod._ini, panggil balik, skop);    
  68.         } else if(evt === 'longtap'){    
  69.             longTap(this._node, panggil balik, skop);    
  70.         } lain {    
  71.             ini._node.addEventListener(evt, function() {    
  72.                 panggilan balik.apply(skop, hujah);    
  73.             });    
  74.         }    
  75.         kembali ini;    
  76.     }    
  77.     tetingkap.$ = fungsi(pemilih) {    
  78.         var nod = dokumen.querySelector(selector);    
  79.         jika (nod) {    
  80.             kembali baru NodeTouch(nod);    
  81.         } lain {    
  82.             pulangan null;    
  83.         }    
  84.     }    
  85. })();    
  86. var kotak=$("#kotak");    
  87. box.on("longtap",function(){    
  88.     console.log("你已经长按了");    
  89. },kotak)  

以上这篇HTML5触摸事件演化tap事件介绍就是小编分享给大家的全部内容了的全部内容了。考,也希望大家多多支持脚本之家。

原文地址:http://www.cnblogs.com/hutuzhu/archive/2016/03/25/5315638.html

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
html5的div一行可以放两个吗html5的div一行可以放两个吗Apr 25, 2022 pm 05:32 PM

html5的div元素默认一行不可以放两个。div是一个块级元素,一个元素会独占一行,两个div默认无法在同一行显示;但可以通过给div元素添加“display:inline;”样式,将其转为行内元素,就可以实现多个div在同一行显示了。

html5中列表和表格的区别是什么html5中列表和表格的区别是什么Apr 28, 2022 pm 01:58 PM

html5中列表和表格的区别:1、表格主要是用于显示数据的,而列表主要是用于给数据进行布局;2、表格是使用table标签配合tr、td、th等标签进行定义的,列表是利用li标签配合ol、ul等标签进行定义的。

html5怎么让头和尾固定不动html5怎么让头和尾固定不动Apr 25, 2022 pm 02:30 PM

固定方法:1、使用header标签定义文档头部内容,并添加“position:fixed;top:0;”样式让其固定不动;2、使用footer标签定义尾部内容,并添加“position: fixed;bottom: 0;”样式让其固定不动。

html5中不支持的标签有哪些html5中不支持的标签有哪些Mar 17, 2022 pm 05:43 PM

html5中不支持的标签有:1、acronym,用于定义首字母缩写,可用abbr替代;2、basefont,可利用css样式替代;3、applet,可用object替代;4、dir,定义目录列表,可用ul替代;5、big,定义大号文本等等。

HTML5中画布标签是什么HTML5中画布标签是什么May 18, 2022 pm 04:55 PM

HTML5中画布标签是“<canvas>”。canvas标签用于图形的绘制,它只是一个矩形的图形容器,绘制图形必须通过脚本(通常是JavaScript)来完成;开发者可利用多种js方法来在canvas中绘制路径、盒、圆、字符以及添加图像等。

html5废弃了哪个列表标签html5废弃了哪个列表标签Jun 01, 2022 pm 06:32 PM

html5废弃了dir列表标签。dir标签被用来定义目录列表,一般和li标签配合使用,在dir标签对中通过li标签来设置列表项,语法“<dir><li>列表项值</li>...</dir>”。HTML5已经不支持dir,可使用ul标签取代。

Html5怎么取消td边框Html5怎么取消td边框May 18, 2022 pm 06:57 PM

3种取消方法:1、给td元素添加“border:none”无边框样式即可,语法“td{border:none}”。2、给td元素添加“border:0”样式,语法“td{border:0;}”,将td边框的宽度设置为0即可。3、给td元素添加“border:transparent”样式,语法“td{border:transparent;}”,将td边框的颜色设置为透明即可。

html5为什么只需要写doctypehtml5为什么只需要写doctypeJun 07, 2022 pm 05:15 PM

因为html5不基于SGML(标准通用置标语言),不需要对DTD进行引用,但是需要doctype来规范浏览器的行为,也即按照正常的方式来运行,因此html5只需要写doctype即可。“!DOCTYPE”是一种标准通用标记语言的文档类型声明,用于告诉浏览器编写页面所用的标记的版本。

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod