Coverflow - external controls

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.js"></script>
<script src="https://rawgit.com/vanderlee/coverflow/master/jquery.coverflow.js"></script>
<script src="https://rawgit.com/vanderlee/coverflow/master/jquery.mousewheel.js"></script>
<div id="numbers">
    <div>Zero</div>
    <div>One</div>
    <div>Two</div>
    <div>Three</div>
    <div>Four</div>
    <div>Five</div>
    <div>Six</div>
    <div>Seven</div>
    <div>Eight</div>
    <div>Nine</div>
</div>

<div class="controls">
    <div class="button first">&laquo;</div>
    <div class="button previous">&lt;</div>
    <span class="dots">
        <div class="current"></div>    <div></div>    <div></div>    <div></div>    <div></div>
        <div></div>    <div></div>    <div></div>    <div></div>    <div></div>
    </span>
    <div class="button next">&gt;</div>
    <div class="button last">&raquo;</div>
</div>

CSS

#numbers {
    background-color: #eee;
    padding: 10px;
}
#numbers > * {
    width: 100px;
    height: 100px;
    border: solid 2px black;
    text-align: center;
    line-height: 100px;
    font-size: 25px;
    background-color: rgba(123,45,67,.5);
    cursor: pointer;
}

.controls {
    background-color: #ccc;
    font-family: "Segoe UI", Verdana, Arial, sans-serif;
    font-size: 20px;
    font-weight: bold;
    padding: 5px;
    text-align: center;
}
.button {
    display: inline-block;
    padding: 10px;
    color: #999;
    cursor:pointer;
}
.button:hover {
    color: #333;
}
.dots > * {
    display: inline-block;
    background-color: #999;
    border-radius: 100%;
    width: 10px;
    height: 10px;
    margin: 1px;
    cursor:pointer;
}
.dots > *.current {
    background-color: rgb(123,45,67);
}
.dots > *:hover {
    background-color: #333;
}

JavaScript

$('#numbers').coverflow({
    select: function(event, cover, index) {
        $('.dots > *').removeClass('current').eq(index).addClass('current');
    }
});

$('.first').click(function() {
    $('#numbers').coverflow('index', 0);
});

$('.last').click(function() {
    $('#numbers').coverflow('index', -1);
});

$('.previous').click(function() {
    $('#numbers').coverflow('index', Math.max(0, $('#numbers').coverflow('index') - 1));
});

$('.next').click(function() {
    $('#numbers').coverflow('index', $('#numbers').coverflow('index') + 1);
});

$('.dots > *').click(function() {
    $('#numbers').coverflow('index', $(this).index());
});