我們平時製作移動端的web專案的時候通常會使用到zept,jqmobile這樣的移動端框架,他們都對觸控事件做好了封裝,也就是說不論你是滑鼠點選或者觸控都能得到響應。但是這些移動的框架有時候會顯得過於龐大,對於效能方面也會有影響,所以最好的辦法是自己定義觸控事件。
原理是首先檢測瀏覽器的觸控函式,如果存在就使用觸控,如果不存在就使用click,下面貼出**,**原始碼出自h5觸控一書。
(function() else if (typeof(window.onmspointerdown) != 'undefined') else function nodefacade(node) nodefacade.prototype.getdomnode = function() nodefacade.prototype.on = function(evt, callback) else if (evt === 'tapend') else return this; } nodefacade.prototype.off = function(evt, callback) else if (evt === 'tapend') else return this; } window.$ = function(selector) else } })();可以看到先定義了nodefacade的物件,這種叫做節點門面,就是說我定義好自己的事件,在最外面檢測完後獲得瀏覽器具體支援的事件,最終確定執行觸控還是點選。這裡乙個完整的觸控或者點選事件都是由相應的touchstart和touchend 或者mousedown,mouseup構成,只檢測一次瀏覽器支援的事件然後返回nodefacade物件,此時這個物件包含具體的事件型別,然後定義好此物件的on和off方法來註冊和取消事件。$('.button').on('tap', function(e) ).on('tapend', function(e) );
暑假乙個月學習心得(Arduino硬體)
不知不覺,暑假已經過去了一大半,馬上就快要開學了,在這邊也學習了乙個多月了,在開始這個暑假之前,我還只是乙個什麼都不知道的大一新生,雖然如果非要說我這乙個 多月來學到了什麼,我也說不出個什麼來,但是,從開始了這個暑假的訓練與學習,我從中學到了許多,在這裡,我非常感謝,讓我參與這次開發的老師,在這邊悉...
前端如何定義乙個常量
為什麼會這樣?實際上,const定義的變數儲存的是指向實際資料的指標,對於基本資料型別string boolean number undefined null symbol而言,其值儲存在棧記憶體中的簡單資料段,按值訪問,就是等同於常量。但是相對於引用資料型別而言,const只能保證指向儲存在堆記憶...
乙個簡單C語言點餐系統的學習心得
軟體工程綜合實踐專題個人部落格第一次作業,這個系統來自這是用c語言編寫的乙個點餐系統。首先附上源 1 include 2 3void main munu 6int i 7 printf s n a 0 8 for i 1 i 6 i 912 printf t0.點餐結束 n 13 1415 void...