亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

dreamGong / 1434人閱讀

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

移動(dòng)端不能使用click,因?yàn)閏lick會(huì)有300ms。所有有了fastclick這樣的解決方案。然后fastclick并沒有解決點(diǎn)擊態(tài)(用戶點(diǎn)擊的瞬間要有及時(shí)的外觀變化反饋)的問題。hover會(huì)有不消失的問題,所有大家一般用:active。利用 :active 偽類來設(shè)置某元素被點(diǎn)擊時(shí)的點(diǎn)擊態(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ǎn)擊按鈕的回調(diào)函數(shù)

activeClass:可選參數(shù),點(diǎn)擊狀態(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對(duì)象實(shí)例的時(shí)候,其實(shí)創(chuàng)建了AlloyTouch對(duì)象實(shí)例。這里分析在option。

touch: selector 需要變成按鈕的的對(duì)象

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

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

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

touchMove、touchEnd和touchCancel均會(huì)移除active的class。

toucStart會(huì)增加active的class。

最后

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/91329.html

相關(guān)文章

  • FED之必備技能

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

    Zachary 評(píng)論0 收藏0
  • FED之必備技能

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

    williamwen1986 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<