<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=“www.w3.org/1999/xhtml”> <head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>jQuery.scrollTo</title>
<meta name="keywords" content="javascript, jquery, plugins, scroll, scrollTo, smooth, animation, to, effect, ariel, flesler, window, overflow, element, navigation, customizable" />
<meta name="description" content="Demo of jQuery.scrollTo. Lightweight, cross-browser and highly customizable animated scrolling with jQuery, made by Ariel Flesler." />
<meta name="robots" content="index,follow" />
<link type="text/css" rel="stylesheet" href="css/style.css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript" src="../jquery.scrollTo.min.js"></script>
<script type="text/javascript">
        jQuery(function( $ ){
                /**
                 * Demo binding and preparation, no need to read this part
                 */
                        //borrowed from jQuery easing plugin
                        //http://gsgd.co.uk/sandbox/jquery.easing.php
                        $.easing.elasout = function(x, t, b, c, d) {
                                var s=1.70158;var p=0;var a=c;
                                if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
                                if (a < Math.abs(c)) { a=c; var s=p/4; }
                                else var s = p/(2*Math.PI) * Math.asin (c/a);
                                return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
                        };
                        $('a.back').click(function() {
                                $(this).parents('div.pane').scrollTo(0, 800, { queue:true });
                                $(this).parents('div.section').find('span.message').text( this.title);
                                return false;
                        });
                        //just for the example, to stop the click on the links.
                        $('ul.links').click(function(e){
                                var link = e.target;
                                if (link.target === '_blank') {
                                        return;
                                }
                                e.preventDefault();
                                link.blur();
                                if (link.title) {
                                        $(this).parent().find('span.message').text(link.title);
                                }
                        });
                // This one is important, many browsers don't reset scroll on refreshes
                // Reset all scrollable panes to (0,0)
                $('div.pane').scrollTo(0);
                // Reset the screen to (0,0)
                $.scrollTo(0);
                // TOC, shows how to scroll the whole window
                $('#toc a').click(function() {//$.scrollTo works EXACTLY the same way, but scrolls the whole screen
                        $.scrollTo(this.hash, 1500, { easing:'elasout' });
                        $(this.hash).find('span.message').text(this.title);
                        return false;
                });
                // Target examples bindings
                var $target = $('#pane-target');
                $('#target-examples a').click(function() {
                        $target.stop(true);
                });
                $('#relative-selector').click(function() {
                        $target.scrollTo('li:eq(7)', 800);
                });
                $('#jquery-object').click(function() {
                        $target.scrollTo($('#pane-target li:eq(14)') , 800);
                });
                $('#dom-element').click(function() {
                        $target.scrollTo(document.getElementById('twenty'), 800);
                });
                $('#absolute-number').click(function() {
                        $target.scrollTo(150, 800);
                });
                $('#absolute-number-hash').click(function() {
                        $target.scrollTo({ top:800, left:700}, 800);
                });
                $('#absolute-px').click(function() {
                        $target.scrollTo('520px', 800);
                });
                $('#absolute-px-hash').click(function() {
                        $target.scrollTo({top:'110px', left:'290px'}, 800);
                });
                $('#relative-px').click(function() {
                        $target.scrollTo('+=100', 500);
                });
                $('#relative-px-hash').click(function() {                               
                        $target.scrollTo({top:'-=100px', left:'+=100'}, 500);
                });
                $('#percentage-px').click(function() {                          
                        $target.scrollTo('50%', 800);
                });
                $('#percentage-px-hash').click(function() {                             
                        $target.scrollTo({top:'50%', left:'20%'}, 800);
                });
                // Settings examples bindings, they will all scroll to the same place, with different settings
                var $settings = $('#pane-settings');
                $('#settings-examples a').click(function() {
                        // before each animation, reset to (0,0), skip this.
                        $settings.stop(true).scrollTo(0);
                });
                $('#settings-no').click(function() {
                        $settings.scrollTo('li:eq(15)', 1000);
                });
                $('#settings-axis').click(function() {// only scroll horizontally
                        $settings.scrollTo('li:eq(15)', 1000, { axis:'x' });
                });
                $('#settings-duration').click(function() {// it's the same as specifying it in the 2nd argument
                        $settings.scrollTo('li:eq(15)', { duration: 3000 });
                });
                $('#settings-easing').click(function() {
                        $settings.scrollTo('li:eq(15)', 2500, { easing:'elasout' });
                });
                $('#settings-margin').click(function() {//scroll to the "outer" position of the element
                        $settings.scrollTo('li:eq(15)', 1000, { margin:true });
                });
                $('#settings-offset').click(function() {//same as { top:-50, left:-50 }
                        $settings.scrollTo('li:eq(15)', 1000, { offset:-50 });
                });
                $('#settings-offset-hash').click(function() {
                        $settings.scrollTo('li:eq(15)', 1000, { offset:{ top:-5, left:-30 } });
                });
                $('#settings-offset-function').click(function() {
                        $settings.scrollTo('li:eq(15)', 1000, {offset: function() { return {top:-30, left:-5}; }});
                });
                $('#settings-over').click(function() {//same as { top:-50, left:-50 }
                        $settings.scrollTo('li:eq(15)', 1000, { over:0.5 });
                });
                $('#settings-over-hash').click(function() {
                        $settings.scrollTo('li:eq(15)', 1000, { over:{ top:0.2, left:-0.5 } });
                });
                $('#settings-interrupt').click(function() {
                        $settings.scrollTo('li:eq(15)', 10000, { interrupt:true });
                });
                $('#settings-queue').click(function() {//in this case, having 'axis' as 'xy' or 'yx' matters.
                        $settings.scrollTo('li:eq(15)', 2000, { queue:true });
                });
                $('#settings-onAfter').click(function() {
                        $settings.scrollTo('li:eq(15)', 2000, { 
                                onAfter:function() {
                                        $('#settings-message').text('Got there!');
                                }
                        });
                });
                $('#settings-onAfterFirst').click(function() {//onAfterFirst exists only when queuing
                        $settings.scrollTo('li:eq(15)', 1600, { 
                                queue:true,
                                onAfterFirst:function() {
                                        $('#settings-message').text('Got there horizontally!');
                                },
                                onAfter:function() {
                                        $('#settings-message').text('Got there vertically!');
                                }
                        });
                });
                $('#settings-step').click(function() {
                        $settings.scrollTo('li:eq(15)', 2000, {step:function(now) {
                                $('#settings-message').text(now.toFixed(2));
                        }});
                });
                $('#settings-progress').click(function() {
                        $settings.scrollTo('li:eq(15)', 2000, {progress:function(_, now) {
                                $('#settings-message').text(Math.round(now*100) + '%');
                        }});
                });
                $('#settings-fail').click(function() {
                        $settings.scrollTo('li:eq(15)', 10000, {interrupt:true, fail:function() {
                                $('#settings-message').text('Scroll interrupted!');
                        }});
                });
        });
</script>

</head> <body>

<h1>jQuery.scrollTo&nbsp;<strong>by Ariel Flesler</strong></h1>
<div id="toc" class="part">
        <h3>Table of contents&nbsp;<strong>(try these)</strong></h3>
        <ul>
                <li><a title="$.scrollTo('#target-examples', 800, {easing:'elasout'});" href="#target-examples">Ways to specify the target</a></li>
                <li><a title="$.scrollTo('#settings-examples', 800, {easing:'elasout'});" href="#settings-examples">Settings</a></li>
        </ul>
</div>
<div id="links" class="part">
        <h3>Links</h3>
        <ul>
                <li><a target="_blank" href="https://github.com/flesler/jquery.scrollTo">Github</a></li>
                <li><a target="_blank" href="http://flesler.blogspot.com/2007/10/jqueryscrollto.html">Main blog article</a></li>
                <li><a target="_blank" href="http://demos.flesler.com/jquery/localScroll/">LocalScroll Demo</a></li>
                <li><a target="_blank" href="http://demos.flesler.com/jquery/serialScroll/">SerialScroll Demo</a></li>
                <li><a target="_blank" href="index.old.html">Old Demo</a></li>
        </ul>
</div>
<div id="target-examples" class="section part">
        <h3>Ways to specify the target&nbsp;<span id="target-message" class="message">Click an option, to see it in action</span></h3>
        <ul class="links">
                <li><a title="$(...).scrollTo('li:eq(7)', 800);" id="relative-selector" href="#">Relative selector</a></li>
                <li><a title="$(...).scrollTo($('div li:eq(14)'), 800);" id="jquery-object" href="#">jQuery object</a></li>
                <li><a title="$(...).scrollTo(document.getElementById('twenty'), 800);" id="dom-element" href="#">DOM Element</a></li>
                <li><a title="$(...).scrollTo(150, 800);" id="absolute-number" href="#">Absolute number</a></li>
                <li><a title="$(...).scrollTo({ top:800, left:700}, 800);" id="absolute-number-hash" href="#">Absolute number(hash)</a></li>
        </ul>
        <ul class="links">
                <li><a title="$(...).scrollTo('520px', 800);" id="absolute-px" href="#">Absolute px</a></li>
                <li><a title="$(...).scrollTo({top:'110px', left:'290px'}, 800);" id="absolute-px-hash" href="#">Absolute px(hash)</a></li>
                <li><a title="$(...).scrollTo('+=100px', 800);" id="relative-px" href="#">Relative px</a></li>
                <li><a title="$(...).scrollTo({top:'-=100px', left:'+=100'}, 800);" id="relative-px-hash" href="#">Relative px(hash)</a></li>
                <li><a title="$(...).scrollTo('50%', 800);" id="percentage-px" href="#">Percent</a></li>
                <li><a title="$(...).scrollTo({top:'50%', left:'20%'}, 800);" id="percentage-px-hash" href="#">Percent(hash)</a></li>
        </ul>
        <div id="pane-target" class="pane">
                <ul class="elements" style="height:1011px; width:1820px;">
                        <li><p>0</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>1</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>2</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>3</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>4</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>5</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>6</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>7</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>8</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>9</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>10</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>11</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>12</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>13</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>14</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>15</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>16</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>17</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>18</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>19</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li id="twenty"><p>20</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>21</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>22</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>23</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>24</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>25</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>26</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>27</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>28</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>29</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li>
                </ul>
        </div>
</div>
<div id="settings-examples" class="section part">
        <h3>Settings&nbsp;<span id="settings-message" class="message">The examples shown here, are summarized for brevity</span></h3>
        <ul class="links">
                <li><a title="$(...).scrollTo('li:eq(15)', 1000);" id="settings-no" href="#">no settings</a></li>
                <li><a title="$(...).scrollTo('li:eq(15)', 1000, {axis:'x'});//only scroll on this axis (can be x, y, xy or yx)" id="settings-axis" href="#">axis</a></li>
                <li><a title="$(...).scrollTo('li:eq(15)', 1000, {margin:true});//deduct the margin and border from the final position" id="settings-margin" href="#">margin</a></li>
                <li><a title="$(...).scrollTo('li:eq(15)', 1000, {offset:-50});//add or deduct from the final position" id="settings-offset" href="#">offset</a></li>
                <li><a title="$(...).scrollTo('li:eq(15)', 1000, {offset: {top:-5, left:-30} });" id="settings-offset-hash" href="#">offset(hash)</a></li>
                <li><a title="$(...).scrollTo('li:eq(15)', 1000, {offset: function() { return {top:-30, left:-5}; }});" id="settings-offset-function" href="#">offset(function)</a></li>
                <li><a title="$(...).scrollTo('li:eq(15)', 1000, {over:0.5});//add or deduct a fraction of its height/width" id="settings-over" href="#">over</a></li>
                <li><a title="$(...).scrollTo('li:eq(15)', 1000, {over:{top:0.2, left:-0.5});" id="settings-over-hash" href="#">over(hash)</a></li>
                <li><a title="Scroll manually to interrupt the animation" id="settings-interrupt" href="#">interrupt</a></li>
                <li><a title="$(...).scrollTo('li:eq(15)', 1600, {onAfter:function() { } });//called after the scrolling ends" id="settings-onAfter" href="#">onAfter</a></li>
                <li><a title="$(...).scrollTo('li:eq(15)', 1600, {queue:true, onAfterFirst:function() { } });//called after the first axis scrolled" id="settings-onAfterFirst" href="#">onAfterFirst</a></li>
        </ul>
        <h4>Settings inherited from <a href="http://api.jquery.com/animate/#animate-properties-options" target="_blank">$().animate()</a></h4>
        <ul class="links">
                <li><a title="$(...).scrollTo('li:eq(15)', {duration:3000});//another way of calling the plugin" id="settings-duration" href="#">duration</a></li>
                <li><a title="$(...).scrollTo('li:eq(15)', 2500, {easing:'elasout'});//specify an easing equation" id="settings-easing" href="#">easing</a></li>
                <li><a title="$(...).scrollTo('li:eq(15)', 1600, {queue:true});//scroll one axis, then the other" id="settings-queue" href="#">queue</a></li>
                <li><a title="$(...).scrollTo('li:eq(15)', 2500, {step:function() { }'});//specify a step function" id="settings-step" href="#">step</a></li>
                <li><a title="$(...).scrollTo('li:eq(15)', 2500, {progress:function() { }'});//specify a progress function" id="settings-progress" href="#">progress</a></li>
                <li><a title="Scroll manually to interrupt and trigger the callback" id="settings-fail" href="#">fail</a></li>
                <li><a href="http://api.jquery.com/animate/#animate-properties-options" target="_blank">more</a></li>
        </ul>
        <div id="pane-settings" class="pane">
                <ul class="elements" style="height:1062px;width:1877px;">
                        <li><p>0</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>1</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>2</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>3</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>4</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>5</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>6</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>7</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>8</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>9</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>10</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>11</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>12</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>13</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>14</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>15</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>16</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>17</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>18</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>19</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>20</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>21</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>22</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>23</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>24</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>25</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>26</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>27</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>28</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li><li><p>29</p><a href="#" title="$(...).scrollTo(0, 800, {queue:true});" class="back">go back</a></li>
                </ul>
        </div>
</div>

</body> </html>