A few months ago, I had blogged about some Storyline slider interactions for a technical training project. I had a bit of time on my hands and decided to expand my ‘collection’ of slider interactions to include some more complex examples. For example, I wanted to figure out how to build a range slider that lets users select both a low and high-range value. That sounds easy enough (“just take a regular slider and add another one”), but there are some unique challenges. For one thing, a range slider needs to prevent the high value to be less than the low value and vice versa. For instance, if the low value is ’40’, you should not be able to drag the high-value slider to a position that is less than that, let’s say ’25’. Also, both sliders should be set up so that they always keep a minimum distance and can’t be dragged on top of each other.
Based on a simple slider setup (shown at the top of the screen), I created the second slider element and then descended into ‘trigger madness’ to create the range slider functionality. I ended up with two dozen draggable objects and several hundred triggers. In hindsight, it may have been easier to use a JavaScript-based slider (like these JQuery sliders) and display it as a webobject inside Storyline.
Once the range slider was completed, I wanted to try out two more slider variations: 1.) a dial that can be rotated and 2.) a vertical slider where the indicator is moved up and down by buttons. One challenge for the dial was to have the rotation stop once the highest value (in my example 400%) was reached and only allow rotation back to a lower value.
The dial too required dozens of drag objects and several hundred triggers. The good news was that even with that many elements and triggers on a single slide, Storyline did not buckle. Especially the range slider could have been improved with a bit more troubleshooting, but I had learned enough about the concepts involved and left it as ‘good enough’. In any case, slider interaction are a great alternative to the usual multiple choice, multiple response or drag-and-drop input types and the extra development effort is well worth it.
Here is the published example.