成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

AlloyTouch Button插件-不再愁click延遲和點擊態(tài)

dreamGong / 1423人閱讀

摘要:移動端不能使用,因為會有。然后并沒有解決點擊態(tài)用戶點擊的瞬間要有及時的外觀變化反饋的問題。利用偽類來設(shè)置某元素被點擊時的點擊態(tài)樣式。需要變成按鈕的的對象直接把創(chuàng)建的傳給的不阻止默認(rèn)事件。當(dāng)用戶傳入了參數(shù)時候,分別給綁定了和事件。

移動端不能使用click,因為click會有300ms。所有有了fastclick這樣的解決方案。然后fastclick并沒有解決點擊態(tài)(用戶點擊的瞬間要有及時的外觀變化反饋)的問題。hover會有不消失的問題,所有大家一般用:active。利用 :active 偽類來設(shè)置某元素被點擊時的點擊態(tài)樣式。
在IOS上使用active必須聲明下面js:

document.addEventListener("touchstart", function() {},false);

CSS中記得去掉highlight color:

-webkit-tap-highlight-color: rgba(0,0,0,0);

需要注意的是:Android 2.x 仍不支持:active。

那么就 fastclick + :active + 一堆聲明 + 放棄部分系統(tǒng)的兼容?

有沒有更好的解決方案?且看AlloyTouch Button插件~~

語法
  new AlloyTouch.Button(selector, onTap [,activeClass]) 

selector:需要變成按鈕的選擇器

onTap: 用戶點擊按鈕的回調(diào)函數(shù)

activeClass:可選參數(shù),點擊狀態(tài)下添加的class

使用方式
new AlloyTouch.Button("#button", function () {
    console.log("You tapped me.");
}, "active");
在線演示

原理
 AlloyTouch.Button = function (selector, tap, active) {
    var element = typeof selector === "string" ? document.querySelector(selector) : selector;
    var option = {
        touch: selector,
        tap: tap,
        preventDefault: false
    };
    if (active !== undefined) {
        option.touchStart = function ( ) {
            addClass(element, active);
        };
        touchMove = function ( ) {
            removeClass(element, active);
        };
        option.touchEnd = function ( ) {
            removeClass(element, active);
        };
        option.touchCancel = function () {
            removeClass(element, active);
        };
    }

    new AlloyTouch(option);
}

在創(chuàng)建Button對象實例的時候,其實創(chuàng)建了AlloyTouch對象實例。這里分析在option。

touch: selector 需要變成按鈕的的對象

tap: tap 直接把創(chuàng)建button的tap傳給alloytouch的tap

preventDefault: false 不阻止默認(rèn)事件。不然的話,手指放在button上時,頁面拖不動。

當(dāng)用戶傳入了active參數(shù)時候,分別給綁定了touchMove、toucStart、touchEnd和touchCancel事件。

touchMove、touchEnd和touchCancel均會移除active的class。

toucStart會增加active的class。

最后

更多例子演示和代碼可以在Github上找到。
Github:https://github.com/AlloyTeam/AlloyTouch

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/91329.html

相關(guān)文章

  • FED之必備技能

    摘要:在我們深入研究這項新鮮的技術(shù)之前,讓我們先快速的復(fù)習(xí)原理的相關(guān)知識。同時,希望本文能對大家有所幫助。工欲善其事,必先利其器。 flex.css快速入門,極速布局 什么是flex.css? css3 flex 布局相信很多人已經(jīng)聽說過甚至已經(jīng)在開發(fā)中使用過它,但是我想我們都會有一個共同的經(jīng)歷,面對它的各種版本,各種坑,傻傻的分不清楚,flex.css就是對flex布局的一種封裝,通過簡潔...

    Zachary 評論0 收藏0
  • FED之必備技能

    摘要:在我們深入研究這項新鮮的技術(shù)之前,讓我們先快速的復(fù)習(xí)原理的相關(guān)知識。同時,希望本文能對大家有所幫助。工欲善其事,必先利其器。 flex.css快速入門,極速布局 什么是flex.css? css3 flex 布局相信很多人已經(jīng)聽說過甚至已經(jīng)在開發(fā)中使用過它,但是我想我們都會有一個共同的經(jīng)歷,面對它的各種版本,各種坑,傻傻的分不清楚,flex.css就是對flex布局的一種封裝,通過簡潔...

    williamwen1986 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<