Jquery Horizontal Scroll / Slide on Hover

by blowsie

HTML

<script src="http://patrickwolf.com/hq/wp-content/themes/patrickwolf/js/jquery.scrollTo-1.4.2-min.js"></script>
<script src="http://patrickwolf.com/hq/wp-content/themes/patrickwolf/js/jquery.mousewheel.min.js"></script>
<div class="slidebox">
    <div class="slider">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>10</li>
        <li>11</li>
    </ul>
</div>
    <a class="sbtn up">up</a>&nbsp;<a class="sbtn down">down</a>
</div>
<div class="slidebox">
    <ul class='slider'>
        <li>1</li>
        <li>x</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>10</li>
        <li>11</li>
        <li>11</li>
        <li>12</li>
        <li>13</li>
        <li>14</li>
        <li>15</li>
        <li>16</li>
        <li>17</li>
        <li>18</li>
        <li>19</li>
        <li>20</li>
        <li>21</li>
        <li>22</li>
        <li>23</li>
        <li>24</li>
        <li>25</li>
        <li>26</li>
        <li>27</li>
        <li>28</li>
        <li>29</li>
        <li>30</li>
        <li>31</li>
        <li>32</li>
        <li>33</li>
        <li>34</li>
        <li>35</li>
        <li>36</li>
        <li>37</li>
        <li>38</li>
        <li>39</li>
        <li>40</li>
    </ul>
    <a class="sbtn up">up</a>&nbsp;<a class="sbtn down">down</a>
</div>
<div class="slidebox">
    <ul class='slider'>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>10</li>
        <li>11</li>
        <li>11</li>
        <li>12</li>
        <li>13</li>
        <li>14</li>
        <li>15</li>
        <li>16</li>
        <li>17</li>
        <li>18</li>
        <li>19</li>
        <li>20</li>
        <li>21</li>
  ...

CSS

.slidebox {float:left}
.slider {width: 100px; height:60px; overflow:hidden; white-space:nowrap}
.slidebox li  {border:1px solid #ccc; padding:10px;margin:5px; background:#eee; display:inline; float:left;}
.sbtn {padding:2px; background:#333; border: 1px solid #111; color:#eee; margin:5px; cursor:pointer }

JavaScript

$('.slidebox').each(function() {
    var slider = $(this).find('.slider');
    var items = $(this).find('li')
    $(this).find('ul').width([42 * items.length])
    $(this).find('.up').hover(function() {
        slider.scrollTo('-=20000px', 30000);
    }, function() {
        slider.stop();
    });
    $(this).find('.down').hover(function() {
        slider.stop().scrollTo('+=20000px', 30000);
    }, function() {
        slider.stop();
    });
    $(this).bind('mousewheel', function(event, delta) {
        var change = 0 + delta;
        if (delta > 0) {
            slider.stop().scrollTo('-=75px', 0);
          event.preventDefault();

        }
        else {
            slider.stop().scrollTo('+=75px', 0);
             event.preventDefault();

        }
    });
});

$('.slider').each(function() {
    $(this).find('li').each(function() {
        var index = $(this).index();
        $(this).html(index);
    });
});