Axure技巧:單擊和長按交互沖突解決方法
看見標(biāo)題的時(shí)候我知道你一定不相信,明明交互動作里有鼠標(biāo)單擊時(shí)也有鼠標(biāo)長按時(shí),怎么會有沖突呢?實(shí)際上長按后兩個(gè)交互都會觸發(fā),所以,該如何解決?
如果一個(gè)元件上既有單擊交互,又有長按交互的時(shí)候,就會發(fā)生沖突,長按時(shí)2個(gè)交互都會觸發(fā)。如下面左圖:
我們希望的正常效果是右圖那樣的,感謝小樓老師提供了解決的思路,為了讓大家也理解思路,我給大家詳細(xì)講一下!
要想解決這個(gè)問題,就要先明白什么是單擊,什么是長按。
- 單擊:按下鼠標(biāo)再松開鼠標(biāo),鼠標(biāo)松開后觸發(fā)交互內(nèi)容。
- 長按:按下鼠標(biāo)達(dá)到一定時(shí)長后,觸發(fā)交互內(nèi)容。
- 按時(shí)段分,整個(gè)流程可以分為2段:短按時(shí)段與長按時(shí)段。
- 按操作分,整個(gè)流程有2個(gè)操作:按下鼠標(biāo),松開鼠標(biāo)。
開始之后,會同時(shí)執(zhí)行鼠標(biāo)單擊時(shí)、鼠標(biāo)松開時(shí)、鼠標(biāo)長按時(shí)3個(gè)交互。
- 鼠標(biāo)單擊事件觸發(fā):全局變量的初始值為0,按下鼠標(biāo)后,如果還沒進(jìn)入長按,就不會改變變量,那么此時(shí)變量依舊是0,松開鼠標(biāo)后判斷變量是≠1的,所以觸發(fā)鼠標(biāo)單擊事件。
- 鼠標(biāo)長按事件觸發(fā):按下鼠并且進(jìn)入長按時(shí)段后,設(shè)置變量為1,并且會觸發(fā)鼠標(biāo)長按事件。松開鼠標(biāo)后會去觸發(fā)鼠標(biāo)單擊事件,可這個(gè)事件的條件是變量≠1,所以無法觸發(fā)。
最后,為了不影響下一次點(diǎn)擊時(shí)的交互,要在鼠標(biāo)松開時(shí)將變量重置為0。
作者:Synmo夢兒,公眾號:夢話Axure
本文由 @Synmo夢兒? 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 unsplash,基于 CC0 協(xié)議
評論
Axure 8最新版實(shí)測,一個(gè)元器件設(shè)置點(diǎn)按和長按兩個(gè)動作,并不會出現(xiàn)這個(gè)問題。
但是拖拽會出現(xiàn)和長按沖突
是8.1.0.3375嗎?還是測試中的最新版本?我這個(gè)就是3375做的哦~
我用的3372。
之前設(shè)置錯(cuò)了,拖拽頁眉發(fā)現(xiàn)問題,你看看。
https://ryuh2r.axshare.com
https://uva7p9.axshare.com
我做了一個(gè),你看下吧。
應(yīng)該可以通過dragX函數(shù)解決
感謝分享 但是標(biāo)題里的Axure寫錯(cuò)了~
標(biāo)題不是我寫的,是編輯寫的 ? 我也沒辦法~
可以設(shè)置初始變量值==0,單擊時(shí)候,判斷變量值為0時(shí)候觸發(fā)A事件,同時(shí)改變變量值變?yōu)?,長按的時(shí)候,判斷值為1觸發(fā)B事件,在同一個(gè)按鈕沖突的情況下,用變量來解決沖突問題,我一年前就在用咯,文章很棒,希望你的文章能幫助更多的人 ??
老鐵穩(wěn) 。
哈哈,何出此言哈 ??
666