2 ms·
Actually you can just click NEXT multiple times in a row. Imagine you are on item 1 but really want to see item 5. You would have to click next, wait for transi
by hannib 6y ago
Actually you can just click NEXT multiple times in a row. Imagine you are on item 1 but really want to see item 5. You would have to click next, wait for transition to finish, click next, wait, etc.
(I found this because I already read the first 2-3 laws and closed the page, reopened to see the "Details" and wanted to quickly navigate to the middle/end of the list. Instantly the site felt super sluggish and unresponsive)
I totally agree with you BTW, clicking a button and having a quick (<200ms in my eyes) visual response is completely fine, even if that response is just a CSS transition. I do this all the time.
The specific problem I had is the NEXT button stops responding during that CSS transition which might not technically break rule #2 but definitely makes the UI feel sluggish and non responsive.
- dahart 6y agoYeah I completely agree with all of that. Note that scrolling in some browsers is a specific interaction that disables JavaScript and all other interactions while scrolling in order to maintain high frame rates and smooth scrolling. This might be an unintentional bug or side-effect of using scrolling at all, and some people consider it a browser bug. It does mean it's important to think before triggering a scroll, OTOH, the interaction here of jumping instantly to another item without scrolling could be disorienting to some people. Maybe the whole issue would be fixed by changing the transition time from 400ms to 200ms? I'd also note that rule #2 serves a more specific purpose than avoiding any wait times. It's there to avoid confusion about what's happening in response to a click, not to eliminate all waiting, nor to eliminate all annoyances in UX delays. With a transition, it's annoying that you can't interact while the animation plays, but it's not (in this case) confusing about what's happening. I know why the button isn't working, and very quickly I know how long I have to wait before it works again, even though I'd rather that it did work instantly.