Roundabout: Coverflow, entertaining, interactive, turntable-like areas.

Roundabout is a jQuery plugin that easily converts unordered lists & other nested HTML structures into entertaining, interactive, turntable-like areas.

It’s ready-to-go straight out of the box, but if you want to get crazy, Roundabout is highly-customizable with an extensive API that allows for some pretty amazing results.

Roundabout requires jQuery (at least version 1.2, successfully tested through version 1.7.2). It works in all major modern browsers and even some of the older, not-so-modern ones.

It’s open source and released under the BSD license, meaning that it’s free to use in your personal or commercial projects.

For a more granular change-log, please follow along on GitHub.

Download: https://github.com/fredleblanc/roundabout

Demonstration:

Plugin homepage: https://github.com/fredleblanc/roundabout

Implementation:

1. FIRST, INCLUDE THE CSS & JQUERY FILES

<!-- CSS -->
<style type="text/css">
   .roundabout-holder {
      list-style: none;
      padding: 0;
      margin: 0;
      height: 5em;
      width: 5em;
   }
   .roundabout-moveable-item {
      height: 4em;
      width: 4em;
      cursor: pointer;
      background-color: #ccc;
      border: 1px solid #999;
   }
   .roundabout-in-focus {
      cursor: auto;
   }
</style>
 
<!-- jQuery files -->
<script src="jquery.js"></script>
<script src="jquery.roundabout.js"></script>

2. ADD YOUR HTML

<!-- A simple unordered list -->
<ul class="roudabout">
   <li></li>
   <li></li>
   <li></li>
   <li></li>
   <li></li>
</ul>

3. NOW, CALL THE SELECTYZE PLUGIN

<script type="text/javascript">
    $(document).ready(function(){
      // Simple call
      $('.roundabout').roundabout();
 
      // Call with options
      $('.roundabout').roundabout({
         btnNext: ".next",
         duration: 2000,
         reflect: true
      });
    });
</script>

Options:

bearingFloatDefault The starting direction in which Roundabout should face relative to the ‘focusBearing’ option.
tiltFloatDefault Slightly alters the calculations of moving elements. In the default “shape” option, it adjusts the apparent tilt. Other shapes will differ.
minZIntegerDefault 100 The lowest z-index that will be assigned to moving element. This occurs when the moving element is opposite of (that is, 180° away from) the ‘focusBearing’ option.
maxZIntegerDefault 280 The greatest z-index that will be assigned to a moving element. This occurs when the moving element is at the same bearing as the ‘focusBearing’ option.
minOpacityFloatDefault 0. The lowest opacity that will be assigned to a moving element This occurs when the moving element is opposite of (that is, 180° away from) the “focusBearing” option.
maxOpacityFloatDefault The greatest opacity that will be assigned to moving element. This occurs when the moving element is at the same bearing as the ‘focusBearing’ option.
minScaleFloatDefault The lowest size (relative to its starting size) that will be assigned to a moving element This occurs when the moving element is opposite of (that is, 180° away from) the ‘focusBearing’ option.
maxScaleFloatDefault The greatest size (relative to its starting size) that will be assigned to moving element. This occurs when the moving element is at the same bearing as the ‘focusBearing’ option
durationIntegerDefault 600 The length of time Roundabout will take to move from one child element being in focus to another (when an animation is triggered). This value acts as the default for Roundabout, but each animation action can be given a custom duration for that animation.
btnNextStringDefault nul AjQuery selector of page elements that, when clicked, will trigger the Roundabout to animate to the next moving element
btnNextCallbackFunctionA function that will be called once the animation triggered by a btnNext-related click has finished.
btnPrevStringDefault nul AjQuery selector of page elements that, when clicked, will trigger the Roundabout to animate to the previous moving element.
btnPreyCallbackFunctionA function that will be called once the animation triggered by a btnPrev-releated click has finished.
btn ToggleAutoplayStringDefault nul A jQuery selector of page elements that, when clicked, will toggle the Roundabout’s autoplay state (either starting or stopping).
btn StartAutoplayStringDefault nul AQQUERY selector of page elements that, when clicked, will start the Roundabout’s autoplay feature (if it’s currently stopped).
btn StopAutoplayStringDefault nul A jQuery selector of page elements that, when clicked, will stop the Roundabout’s autoplay feature (if it’s current playing)
easingStringDefault swing The easing function to use when animating Roundabout.
clickToFocusBooleanDefault true When true, Roundabout will bring non-focused moving elements into focus when they’re clicked Otherwise, click events won’t be captured and will be passed through to the moving child elements
clickToFocusCallbackFunctionA function that will be called once the clickToFocus animation has completed.
focusBearingFloatDefault The bearing that Roundabout will use as the focus point. All animations that move Roundabout between children will animate the given child element to this bearing.
shapeStringDefault : The path that moving elements follow. By default, Roundabout comes with one shape, which is lazySusan. When using Roundabout with the Roundabout Shapes plugin, there are many other shapes available
debugBooleanDefault false When true, Roundabout will replace the contents of moving elements with information about the moving elements themselves
childSelectorStringDefault i- A jQuery selector of child elements within the elements Roundabout is called upon that will become the moving elements within Roundabout By default, Roundabout works on unordered lists, but it can be changed to work with any nested set of child elements.
startingChildIntegerDefault 0 – The child element that will start at the Roundabout’s focusBearing on load. This is a zero-based counter based on the order of markup.
reflectBooleanDefault false When true, reverses the direction in which Roundabout will operate. By default, next animations will rotate moving elements in a clockwise direction and previous animations will be counterclockwise Using reflect will flip the two.
floatComparisonThrésholdFloatDefault 0.001 The maximum distance two values can be from one another to still be considered equal by Roundabout’s standards This prevents JavaScript rounding errors.
autoplayBooleanDefault When true, Roundabout will automatically advance the moving elements to the next child at regular interval (settable as autoplayDuration).
autoplayInitialDelayIntegerDefault 1000 The length of time (in milliseconds) between animation triggers when a Roundabout’s autoplay is playing.
autoplayDurationIntegerDefault 1000 The length of time (in milliseconds) between animation triggers when a Roundabout’s autoplay is playing.
autoplayPauseOnHoverBooleanDefault false When true, Roundabout will pause autoplay when the user moves the cursor over the Roundabout container.
enableDragBooleanDefault false Requires event.drag and event.drop plugins by ThreeDubMedia Allows a user to rotate Roundabout be clicking and dragging the Roundabout area itself.
dropDurationIntegerDefault 600 The length of time (in milliseconds) the animation will take to animate Roundabout to the appropriate child when the Roundabout is “dropped.”
dropEasingStringDefault swing The easing function to use when animating Roundabout after it has been “dropped.”
dropAnimate ToStringDefault neares The animation method to use when a dragged Roundabout is “dropped.” Valid values are next, previous, or nearest.
dropCallbackFunctionA function that will be called once the dropped animation has completed.
dragAxisStringDefault The axis along which drag events are measured. Valid values are X and y.
dragFactorIntegerDefault Alters the rate at which dragging moves the Roundabout’s moving elements. Higher numbers will cause the moving elements to move less
triggerFocusEventsBooleanDefault true When true, a focus event will be triggered on the child element that moves into focus when does so.
triggerBlurEventsBooleanDefault true When true, a blur event will be triggered on the child element that moves out of the focused position when it does so.
responsiveBooleanDefault : When true, attaches a resize event onto the window and will automatically relayout Roundabout’s child elements as the holder element changes size.

Screenshots: