- From: Ian Hickson <ian@hixie.ch>
- Date: Wed, 30 Jan 2013 19:43:56 +0000 (UTC)
- To: Mounir Lamouri <mounir@lamouri.fr>
- Cc: whatwg@lists.whatwg.org
On Wed, 30 Jan 2013, Ian Hickson wrote: > > Mounir and I discussed this on IRC, but we didn't have enough data to > come to a conclusion. > > [...] > > Does anyone have any examples of UIs that give "page up" and "page down" > controls to change values that can also be set to out-of-range values so > we can study how existing UIs handle this? In the meantime, I've changed the spec as follows: - if there's no valid values, the methods do nothing - if the current value isn't numeric, assume it's zero - if the current value isn't on a valid step, snap to the nearest valid one in the direction of the method (up or down) - otherwise, just go as many steps as the argument says to go - finally, clamp the value to the allowed range So if the range is 0..10, step 1: value stepDown(10) stepDown(1) stepUp(1) stepUp(10) 0 0 0 1 10 1 0 0 2 10 5 0 4 6 10 10 0 9 10 10 11 1 10 10 10 12 2 10 10 10 100 10 10 10 10 -1 0 0 0 9 -5 0 0 0 5 -10 0 0 0 0 -100 0 0 0 0 0.5 0 0 1 1 -0.5 0 0 0 0 5.00001 5 5 6 6 9.5 9 9 10 10 10.5 10 10 10 10 "" 0 0 1 10 It's kind of a compromise between what I think is ideal and what Mounir describes as what he wants. It has the advantage of being relatively simple to reason about. It has the disadvantage of meaning that hitting "up" sometimes brings the value down, and hitting "down" sometimes brings the value up, and it's not linear in the case of the value not being on a step when the algorithm starts. -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Wednesday, 30 January 2013 19:44:21 UTC