Axure技巧:單擊和長按交互沖突解決方法

13 評論 9686 瀏覽 28 收藏 3 分鐘

看見標(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é)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. Axure 8最新版實(shí)測,一個(gè)元器件設(shè)置點(diǎn)按和長按兩個(gè)動作,并不會出現(xiàn)這個(gè)問題。

    來自北京 回復(fù)
    1. 但是拖拽會出現(xiàn)和長按沖突

      來自北京 回復(fù)
    2. 是8.1.0.3375嗎?還是測試中的最新版本?我這個(gè)就是3375做的哦~

      來自北京 回復(fù)
    3. 我用的3372。

      之前設(shè)置錯(cuò)了,拖拽頁眉發(fā)現(xiàn)問題,你看看。

      https://ryuh2r.axshare.com

      來自北京 回復(fù)
    4. https://uva7p9.axshare.com
      我做了一個(gè),你看下吧。

      來自北京 回復(fù)
    5. 應(yīng)該可以通過dragX函數(shù)解決

      來自北京 回復(fù)
  2. 感謝分享 但是標(biāo)題里的Axure寫錯(cuò)了~

    來自遼寧 回復(fù)
    1. 標(biāo)題不是我寫的,是編輯寫的 ? 我也沒辦法~

      來自北京 回復(fù)
  3. 可以設(shè)置初始變量值==0,單擊時(shí)候,判斷變量值為0時(shí)候觸發(fā)A事件,同時(shí)改變變量值變?yōu)?,長按的時(shí)候,判斷值為1觸發(fā)B事件,在同一個(gè)按鈕沖突的情況下,用變量來解決沖突問題,我一年前就在用咯,文章很棒,希望你的文章能幫助更多的人 ??

    來自福建 回復(fù)
    1. 老鐵穩(wěn) 。

      來自上海 回復(fù)
    2. 哈哈,何出此言哈 ??

      來自福建 回復(fù)
  4. 666

    來自浙江 回復(fù)