要理解事件雙重觸發(fā)先要明白什么是事件穿透,所謂事件穿透就是利用click事件在移動(dòng)設(shè)備上觸發(fā)有300ms左右延遲的特性,我們可以在touchstart事件中快速移除當(dāng)前層元素,讓事件短時(shí)間內(nèi)穿透到下層從而觸發(fā)下層的click動(dòng)畫,請(qǐng)參考下圖示意。
<!-- 事件穿透 -->
<svg style="height:0;">
<rect>
<animate
attributeName="opacity"
to="0"
begin="click"
dur="1s">
</animate>
</rect>
</svg>
<svg>
<rect>
<animate
attributeName="visibility"
to="hidden"
begin="touchstart"
dur="0.001ms">
</animate>
</rect>
</svg>
<svg>
<!-- 伸長(zhǎng)動(dòng)畫 -->
<animate
attributeName="width"
values="100%;100%;200%"
begin="touchstart"
fill="freeze"
dur="0.75s"
></animate>
<!-- 返回動(dòng)畫 -->
<animate
attributeName="width"
values="200%;100%;100%"
begin="click"
fill="freeze"
dur="0.75s"
></animate>
</svg>
當(dāng)我們將這2段開(kāi)關(guān)動(dòng)畫寫在一起時(shí),我們會(huì)發(fā)現(xiàn)系統(tǒng)只選擇touchstart事件動(dòng)畫執(zhí)行而選擇性忽略了click事件動(dòng)畫,這是因?yàn)閠ouchstart沒(méi)有click事件的延遲,這就好比2個(gè)人前后腳到蛋糕店買蛋糕,而這時(shí)蛋糕店只剩下一塊蛋糕,老板自然是會(huì)給先到店的那個(gè)人。
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答:H5開(kāi)發(fā)、小程序開(kāi)發(fā)、網(wǎng)站建設(shè)、APP開(kāi)發(fā)、SVG開(kāi)發(fā)
惠爾科技是一家以提供H5開(kāi)發(fā)、網(wǎng)站建設(shè)、SVG開(kāi)發(fā)、APP開(kāi)發(fā)、小程序開(kāi)發(fā)、網(wǎng)絡(luò)營(yíng)銷推廣為主的互聯(lián)網(wǎng)開(kāi)發(fā)公司。以客戶需求為導(dǎo)向,客戶利益為出發(fā)點(diǎn),結(jié)合自身設(shè)計(jì)及專業(yè)建站優(yōu)勢(shì),為客戶提供從基礎(chǔ)建設(shè)到營(yíng)銷推廣的一整套解決方案,探索并實(shí)現(xiàn)客戶商業(yè)價(jià)值較大化,為所有謀求長(zhǎng)遠(yuǎn)發(fā)展的企業(yè)貢獻(xiàn)全部力量。