<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width initial-scale=1 user-scalable=no maximum-scale=1">
<title>Kinetic Scrolling</title>
<link rel="stylesheet" href="../css/pure-nr-min.css">
<link rel="stylesheet" href="../css/style.css">
<script src="../js/raf.js"></script>
<script src="scroll.js"></script>
</head>
<body>
<div id="indicator"></div>
<div class="pure-g" id="content">
<div class="pure-u-1" id="view">
<table class="pure-u-1 pure-table pure-table-striped pure-table-horizontal">
<tbody>
<tr class="blue"><td>Kinetic scrolling with momentum</td></tr>
<tr class="blue"><td>With edge bouncing effect</td></tr>
<tr><td> </td></tr>
<tr><td>Abby <b>Riley</b></td></tr>
<tr><td>Adela <b>Lewis</b></td></tr>
<tr><td>Adriana <b>Bailey</b></td></tr>
<tr><td>Aileen <b>Munoz</b></td></tr>
<tr><td>Alba <b>Wiggins</b></td></tr>
<tr><td>Alexandria <b>Morales</b></td></tr>
<tr><td>Alicia <b>Richardson</b></td></tr>
<tr><td>Alison <b>Wells</b></td></tr>
<tr><td>Allyson <b>Kennedy</b></td></tr>
<tr><td>Alyce <b>Gutierrez</b></td></tr>
<tr><td>Amanda <b>Mcconnell</b></td></tr>
<tr><td>Amparo <b>Ross</b></td></tr>
<tr><td>Andrea <b>Finch</b></td></tr>
<tr><td>Angelica <b>Lee</b></td></tr>
<tr><td>Angelita <b>Bernard</b></td></tr>
<tr><td>Anna <b>Hendrix</b></td></tr>
<tr><td>Annie <b>Orr</b></td></tr>
<tr><td>April <b>Huff</b></td></tr>
<tr><td>Ashlee <b>Cochran</b></td></tr>
<tr><td>Augusta <b>Wright</b></td></tr>
<tr><td>Ava <b>Hester</b></td></tr>
<tr><td>Beatrice <b>Britt</b></td></tr>
<tr><td>Benita <b>Fischer</b></td></tr>
<tr><td>Berta <b>Thornton</b></td></tr>
<tr><td>Bessie <b>Simpson</b></td></tr>
<tr><td>Bette <b>Nicholson</b></td></tr>
<tr><td>Beulah <b>Bright</b></td></tr>
<tr><td>Billie <b>Hodge</b></td></tr>
<tr><td>Bobbie <b>Cooley</b></td></tr>
<tr><td>Brandie <b>Vincent</b></td></tr>
<tr><td>Brianna <b>Nichols</b></td></tr>
<tr><td>Brigitte <b>George</b></td></tr>
<tr><td>Brooke <b>Gould</b></td></tr>
<tr><td>Candace <b>Hughes</b></td></tr>
<tr><td>Carey <b>Whitney</b></td></tr>
<tr><td>Carly <b>Stevens</b></td></tr>
<tr><td>Carol <b>Olson</b></td></tr>
<tr><td>Carolyn <b>Ellis</b></td></tr>
<tr><td>Cassandra <b>Rodgers</b></td></tr>
<tr><td>Cathleen <b>Petersen</b></td></tr>
<tr><td>Cecile <b>Mueller</b></td></tr>
<tr><td>Celina <b>Koch</b></td></tr>
<tr><td>Charlotte <b>Oneil</b></td></tr>
<tr><td>Cheri <b>Mcgowan</b></td></tr>
<tr><td>Chris <b>Buckner</b></td></tr>
<tr><td>Christie <b>Faulkner</b></td></tr>
<tr><td>Chrystal <b>Farmer</b></td></tr>
<tr><td>Clare <b>Edwards</b></td></tr>
<tr><td>Claudia <b>Clark</b></td></tr>
<tr><td>Colette <b>Pennington</b></td></tr>
<tr><td>Connie <b>Gill</b></td></tr>
<tr><td>Corina <b>Yang</b></td></tr>
<tr><td>Corrine <b>Black</b></td></tr>
<tr><td>Cynthia <b>Gilmore</b></td></tr>
<tr><td>Danielle <b>Copeland</b></td></tr>
<tr><td>Darlene <b>Armstrong</b></td></tr>
<tr><td>Deanna <b>Pena</b></td></tr>
<tr><td>Deborah <b>Schmidt</b></td></tr>
<tr><td>Deidre <b>Sharp</b></td></tr>
<tr><td>Delores <b>Mcgee</b></td></tr>
<tr><td>Desiree <b>Berg</b></td></tr>
<tr><td>Dianna <b>Cohen</b></td></tr>
<tr><td>Dixie <b>Dunlap</b></td></tr>
<tr><td>Dominique <b>Flynn</b></td></tr>
<tr><td>Doreen <b>York</b></td></tr>
<tr><td>Dorthy <b>Maynard</b></td></tr>
<tr><td>Ebony <b>Farrell</b></td></tr>
<tr><td>Edwina <b>Burnett</b></td></tr>
<tr><td>Elba <b>Mccormick</b></td></tr>
<tr><td>Elisa <b>Brown</b></td></tr>
<tr><td>Elizabeth <b>Roberson</b></td></tr>
<tr><td>Elnora <b>Hammond</b></td></tr>
<tr><td>Elva <b>Townsend</b></td></tr>
<tr><td>Emily <b>Logan</b></td></tr>
<tr><td>Ericka <b>Langley</b></td></tr>
<tr><td>Erna <b>Christian</b></td></tr>
<tr><td>Essie <b>Herring</b></td></tr>
<tr><td>Ester <b>Booth</b></td></tr>
<tr><td>Eugenia <b>Sullivan</b></td></tr>
<tr><td>Evangelina <b>Bennett</b></td></tr>
<tr><td>Faith <b>Ramirez</b></td></tr>
<tr><td>Faye <b>Hogan</b></td></tr>
<tr><td>Flora <b>Holder</b></td></tr>
<tr><td>Fran <b>Norris</b></td></tr>
<tr><td>Francis <b>Buck</b></td></tr>
<tr><td>Freida <b>Estes</b></td></tr>
<tr><td>Gail <b>Frost</b></td></tr>
<tr><td>Gena <b>Baldwin</b></td></tr>
<tr><td>Georgia <b>Savage</b></td></tr>
<tr><td>Gilda <b>Carney</b></td></tr>
<tr><td>Glenda <b>Mckay</b></td></tr>
<tr><td>Grace <b>Dodson</b></td></tr>
<tr><td>Gretchen <b>Rojas</b></td></tr>
<tr><td>Haley <b>Frye</b></td></tr>
<tr><td>Harriett <b>Manning</b></td></tr>
<tr><td>Heidi <b>Cooper</b></td></tr>
<tr><td>Helga <b>Allison</b></td></tr>
<tr><td>Hilary <b>Lawrence</b></td></tr>
<tr><td>Holly <b>Colon</b></td></tr>
<tr><td>Ilene <b>Kent</b></td></tr>
<tr><td>Ines <b>Page</b></td></tr>
<tr><td>Iris <b>Jarvis</b></td></tr>
<tr><td>Isabelle <b>Figueroa</b></td></tr>
<tr><td>Jacklyn <b>Garrison</b></td></tr>
<tr><td>Jaime <b>Shaffer</b></td></tr>
<tr><td>Jan <b>Benson</b></td></tr>
<tr><td>Janelle <b>Key</b></td></tr>
<tr><td>Janie <b>Solis</b></td></tr>
<tr><td>Jannie <b>Blake</b></td></tr>
<tr><td>Jeanette <b>Waters</b></td></tr>
<tr><td>Jeannette <b>Woodard</b></td></tr>
<tr><td>Jenna <b>Winters</b></td></tr>
<tr><td>Jeri <b>Bass</b></td></tr>
<tr><td>Jessie <b>Hurley</b></td></tr>
<tr><td>Jillian <b>Boyd</b></td></tr>
<tr><td>Joann <b>Weeks</b></td></tr>
<tr><td>Jodi <b>Campbell</b></td></tr>
<tr><td>John <b>Kelley</b></td></tr>
<tr><td>Jordan <b>Ayers</b></td></tr>
<tr><td>Josie <b>Lyons</b></td></tr>
<tr><td>Juanita <b>Lane</b></td></tr>
<tr><td>Juliana <b>Stein</b></td></tr>
<tr><td>Juliette <b>Eaton</b></td></tr>
<tr><td>Kara <b>Curtis</b></td></tr>
<tr><td>Karina <b>Trevino</b></td></tr>
<tr><td>Kate <b>Chen</b></td></tr>
<tr><td>Katheryn <b>Powell</b></td></tr>
<tr><td>Kathryn <b>Duncan</b></td></tr>
<tr><td>Katrina <b>Simmons</b></td></tr>
<tr><td>Kayla <b>Watts</b></td></tr>
<tr><td>Kellie <b>Maxwell</b></td></tr>
<tr><td>Kenya <b>Cameron</b></td></tr>
<tr><td>Kim <b>Haney</b></td></tr>
<tr><td>Kitty <b>Griffin</b></td></tr>
<tr><td>Kristi <b>Lynn</b></td></tr>
<tr><td>Kristine <b>Rowe</b></td></tr>
<tr><td>Lacy <b>Serrano</b></td></tr>
<tr><td>Lana <b>Holcomb</b></td></tr>
<tr><td>Latonya <b>Long</b></td></tr>
<tr><td>Lauren <b>Riddle</b></td></tr>
<tr><td>Lavonne <b>Sweet</b></td></tr>
<tr><td>Leann <b>Parks</b></td></tr>
<tr><td>Leigh <b>Larson</b></td></tr>
<tr><td>Lena <b>Lamb</b></td></tr>
<tr><td>Leona <b>Justice</b></td></tr>
<tr><td>Leslie <b>Turner</b></td></tr>
<tr><td>Leticia <b>Gay</b></td></tr>
<tr><td>Lilia <b>Singleton</b></td></tr>
<tr><td>Lillie <b>Todd</b></td></tr>
<tr><td>Linda <b>Arnold</b></td></tr>
<tr><td>Liz <b>Moody</b></td></tr>
<tr><td>Lola <b>Kemp</b></td></tr>
<tr><td>Lorena <b>Franks</b></td></tr>
<tr><td>Lorie <b>Fowler</b></td></tr>
<tr><td>Lottie <b>Church</b></td></tr>
<tr><td>Louise <b>Mcdonald</b></td></tr>
<tr><td>Lucile <b>Stark</b></td></tr>
<tr><td>Luella <b>Nolan</b></td></tr>
<tr><td>Luz <b>Graham</b></td></tr>
<tr><td>Lynn <b>Abbott</b></td></tr>
<tr><td>Mable <b>Sellers</b></td></tr>
<tr><td>Madge <b>Russo</b></td></tr>
<tr><td>Mai <b>Barlow</b></td></tr>
<tr><td>Mandy <b>Odonnell</b></td></tr>
<tr><td>Marci <b>Lancaster</b></td></tr>
<tr><td>Margaret <b>Conner</b></td></tr>
<tr><td>Margo <b>Delacruz</b></td></tr>
<tr><td>Maria <b>Leach</b></td></tr>
<tr><td>Maribel <b>Hahn</b></td></tr>
<tr><td>Marilyn <b>Wallace</b></td></tr>
<tr><td>Marisol <b>Haley</b></td></tr>
<tr><td>Marla <b>Stuart</b></td></tr>
<tr><td>Marta <b>Browning</b></td></tr>
<tr><td>Mary <b>Sharpe</b></td></tr>
<tr><td>Marylou <b>Hays</b></td></tr>
<tr><td>Maura <b>Benton</b></td></tr>
<tr><td>May <b>Dickson</b></td></tr>
<tr><td>Meghan <b>Leonard</b></td></tr>
<tr><td>Melisa <b>Mccarty</b></td></tr>
<tr><td>Mercedes <b>Mccullough</b></td></tr>
<tr><td>Michael <b>Griffith</b></td></tr>
<tr><td>Mildred <b>Riggs</b></td></tr>
<tr><td>Minerva <b>William</b></td></tr>
<tr><td>Misty <b>Jacobson</b></td></tr>
<tr><td>Mona <b>Mcfarland</b></td></tr>
<tr><td>Muriel <b>Mcneil</b></td></tr>
<tr><td>Nadia <b>Barrett</b></td></tr>
<tr><td>Nannie <b>Hurst</b></td></tr>
<tr><td>Natasha <b>Monroe</b></td></tr>
<tr><td>Nettie <b>Gallegos</b></td></tr>
<tr><td>Nikki <b>Morrison</b></td></tr>
<tr><td>Noemi <b>Dudley</b></td></tr>
<tr><td>Noreen <b>Santana</b></td></tr>
<tr><td>Ola <b>Hodges</b></td></tr>
<tr><td>Ollie <b>Cote</b></td></tr>
<tr><td>Paige <b>Burt</b></td></tr>
<tr><td>Pat <b>Lara</b></td></tr>
<tr><td>Patsy <b>Mckinney</b></td></tr>
<tr><td>Paulette <b>Oconnor</b></td></tr>
<tr><td>Peggy <b>Vaughan</b></td></tr>
<tr><td>Phoebe <b>Jenkins</b></td></tr>
<tr><td>Queen <b>Ball</b></td></tr>
<tr><td>Rae <b>Grimes</b></td></tr>
<tr><td>Reba <b>Hale</b></td></tr>
<tr><td>Rena <b>Meyer</b></td></tr>
<tr><td>Reyna <b>Rogers</b></td></tr>
<tr><td>Rita <b>Cobb</b></td></tr>
<tr><td>Robin <b>Banks</b></td></tr>
<tr><td>Rosa <b>Galloway</b></td></tr>
<tr><td>Rosalyn <b>Crane</b></td></tr>
<tr><td>Rose <b>Frazier</b></td></tr>
<tr><td>Rosemary <b>Herrera</b></td></tr>
<tr><td>Rowena <b>Holt</b></td></tr>
<tr><td>Ruth <b>Ware</b></td></tr>
<tr><td>Sallie <b>Mcfadden</b></td></tr>
<tr><td>Sandy <b>Barnett</b></td></tr>
<tr><td>Saundra <b>Ramos</b></td></tr>
<tr><td>Serena <b>Bradshaw</b></td></tr>
<tr><td>Shari <b>Stanton</b></td></tr>
<tr><td>Shauna <b>Adkins</b></td></tr>
<tr><td>Sheila <b>Lindsay</b></td></tr>
<tr><td>Shelly <b>Soto</b></td></tr>
<tr><td>Sherrie <b>Neal</b></td></tr>
<tr><td>Silvia <b>Pope</b></td></tr>
<tr><td>Sondra <b>Jackson</b></td></tr>
<tr><td>Sophia <b>Dillard</b></td></tr>
<tr><td>Stacie <b>Barry</b></td></tr>
<tr><td>Stephanie <b>Hull</b></td></tr>
<tr><td>Susana <b>Wynn</b></td></tr>
<tr><td>Suzanne <b>Levine</b></td></tr>
<tr><td>Tabatha <b>Ratliff</b></td></tr>
<tr><td>Tamera <b>Phillips</b></td></tr>
<tr><td>Tammie <b>Murray</b></td></tr>
<tr><td>Tanisha <b>Brewer</b></td></tr>
<tr><td>Taylor <b>Patrick</b></td></tr>
<tr><td>Terri <b>Kramer</b></td></tr>
<tr><td>Thelma <b>Reilly</b></td></tr>
<tr><td>Tiffany <b>Farley</b></td></tr>
<tr><td>Toni <b>Oneill</b></td></tr>
<tr><td>Traci <b>Bates</b></td></tr>
<tr><td>Trina <b>Bradley</b></td></tr>
<tr><td>Ursula <b>Erickson</b></td></tr>
<tr><td>Vanessa <b>Gross</b></td></tr>
<tr><td>Veronica <b>Wilder</b></td></tr>
<tr><td>Victoria <b>Snider</b></td></tr>
<tr><td>Virgie <b>Rivas</b></td></tr>
<tr><td>Wanda <b>Barr</b></td></tr>
<tr><td>Wilda <b>Ferguson</b></td></tr>
<tr><td>Winifred <b>Dejesus</b></td></tr>
<tr><td>Young <b>Frank</b></td></tr>
</tbody>
</table>
</div>
</div>
</body>
</html>
aside {
background: #1f8dd6;
padding: 0.6em 1em;
color: #fff;
}
#content {
overflow: hidden;
width: 100%;
height: 100%;
position: absolute;
top: 0px;
left: 0px;
}
#view table {
display: table;
}
#view p {
margin-left: 1em;
margin-right: 1em;
}
#view table td {
line-height: 200%;
padding-left: 2em;
}
.large-text {
font-size: 120%;
}
div#indicator {
position: absolute;
z-index: 99;
top: 0px;
left: 3px;
width: 4px;
height: 20px;
background-color: #888;
border: none;
margin: 5px 0 5px 0;
}
div#overlay {
position: absolute;
z-index: 99;
top: 100px;
left: 0px;
background-color: rgba(128, 128, 128, 0.2);
user-select: none;
user-select: none;
user-select: moz-none;
user-select: none;
user-select: none;
}
div#overlay table {
display: table;
}
div#overlay table tr {
border: 1px solid #888;
line-height: 200%;
text-align: right;
color: #333;
}
tr:nth-child(2n-1).blue td, tr.blue td {
background: #1f8dd6 !important;
color: #fff;
}
img.leftcard {
position: absolute;
top: 0;
left: 0;
z-index: 2;
}
img.centercard {
position: absolute;
top: 0;
left: 0;
z-index: 1;
}
img.rightcard {
position: absolute;
top: 0;
left: 0;
z-index: 2;
}
div#stash {
visibility: hidden;
}
div.cover {
perspective: 500px;
perspective: 500px;
transform-style: preserve-3d;
transform-style: preserve-3d;
}
div.cover img {
width: 200px;
position: absolute;
top: 0;
left: 0;
opacity: 0;
border: none;
box-reflect: below 0px gradient(linear, left top, left bottom,from(transparent), color-stop(70%, transparent), to(rgba(255,255,255,0.4)));
}
/*!
Pure v0.2.1
Copyright 2013 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
https://github.com/yui/pure/blob/master/LICENSE.md
*/
/*!
normalize.css v1.1.2 | MIT License | git.io/normalize
Copyright (c) Nicolas Gallagher and Jonathan Neal
*/
/*! normalize.css v1.1.2 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;text-size-adjust:100%;text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:1em 40px}dfn{font-style:italic}hr{box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{appearance:textfield;box-sizing:content-box;box-sizing:content-box;box-sizing:content-box}input[type=search]::search-cancel-button,input[type=search]::search-decoration{appearance:none}button::focus-inner,input::focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}
.pure-button{display:inline-block;*display:inline;zoom:1;line-height:normal;white-space:nowrap;vertical-align:baseline;text-align:center;cursor:pointer;user-drag:none;user-select:none;user-select:none;user-select:none;user-select:none}.pure-button::focus-inner{padding:0;border:0}.pure-button{font-size:100%;*font-size:90%;*overflow:visible;padding:.5em 1.5em;color:#444;color:rgba(0,0,0,.8);*color:#444;border:1px solid #999;border:0 rgba(0,0,0,0);background-color:#E6E6E6;text-decoration:none;border-radius:2px;font-smoothing:antialiased;transition:.1s linear box-shadow;transition:.1s linear box-shadow;transition:.1s linear box-shadow;transition:.1s linear box-shadow;transition:.1s linear box-shadow}.pure-button-hover,.pure-button:hover,.pure-button:focus{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000', GradientType=0);background-image:gradient(linear,0 0,0 100%,from(transparent),color-stop(40%,rgba(0,0,0,.05)),to(rgba(0,0,0,.1)));background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:linear-gradient(top,rgba(0,0,0,.05) 0,rgba(0,0,0,.1));background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1))}.pure-button:focus{outline:0}.pure-button-active,.pure-button:active{box-shadow:0 0 0 1px rgba(0,0,0,.15) inset,0 0 6px rgba(0,0,0,.2) inset}.pure-button[disabled],.pure-button-disabled,.pure-button-disabled:hover,.pure-button-disabled:focus,.pure-button-disabled:active{border:0;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);filter:alpha(opacity=40);opacity:.4;opacity:.4;opacity:.4;cursor:not-allowed;box-shadow:none}.pure-button-hidden{display:none}.pure-button::focus-inner{padding:0;border:0}.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{background-color:#0078e7;color:#fff}
.pure-form{margin:0}.pure-form fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}.pure-form legend{border:0;padding:0;white-space:normal;*margin-left:-7px}.pure-form button,.pure-form input,.pure-form select,.pure-form textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.pure-form button,.pure-form input{line-height:normal}.pure-form button,.pure-form input[type=button],.pure-form input[type=reset],.pure-form input[type=submit]{appearance:button;cursor:pointer;*overflow:visible}.pure-form button[disabled],.pure-form input[disabled]{cursor:default}.pure-form input[type=checkbox],.pure-form input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}.pure-form input[type=search]{appearance:textfield;box-sizing:content-box;box-sizing:content-box;box-sizing:content-box}.pure-form input[type=search]::search-cancel-button,.pure-form input[type=search]::search-decoration{appearance:none}.pure-form button::focus-inner,.pure-form input::focus-inner{border:0;padding:0}.pure-form textarea{overflow:auto;vertical-align:top}.pure-form input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color],.pure-form select,.pure-form textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;font-size:.8em;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;transition:.3s linear border;transition:.3s linear border;transition:.3s linear border;transition:.3s linear border;transition:.3s linear border;box-sizing:border-box;box-sizing:border-box;box-sizing:border-box;font-smoothing:antialiased}.pure-form input[type=text]:focus,.pure-form input[type=password]:focus,.pure-form input[type=email]:focus,.pure-form input[type=url]:focus,.pure-form input[type=date]:focus,.pure-form input[type=month]:focus,.pure-form input[type=time]:focus,.pure-form input[type=datetime]:focus,.pure-form input[type=datetime-local]:focus,.pure-form input[type=week]:focus,.pure-form input[type=number]:focus,.pure-form input[type=search]:focus,.pure-form input[type=tel]:focus,.pure-form input[type=color]:focus,.pure-form select:focus,.pure-form textarea:focus{outline:0;outline:thin dotted \9;border-color:#129FEA}.pure-form input[type=file]:focus,.pure-form input[type=radio]:focus,.pure-form input[type=checkbox]:focus{outline:thin dotted #333;outline:1px auto #129FEA}.pure-form .pure-checkbox,.pure-form .pure-radio{margin:.5em 0;display:block}.pure-form input[type=text][disabled],.pure-form input[type=password][disabled],.pure-form input[type=email][disabled],.pure-form input[type=url][disabled],.pure-form input[type=date][disabled],.pure-form input[type=month][disabled],.pure-form input[type=time][disabled],.pure-form input[type=datetime][disabled],.pure-form input[type=datetime-local][disabled],.pure-form input[type=week][disabled],.pure-form input[type=number][disabled],.pure-form input[type=search][disabled],.pure-form input[type=tel][disabled],.pure-form input[type=color][disabled],.pure-form select[disabled],.pure-form textarea[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly],.pure-form input[readonly]:focus,.pure-form select[readonly]:focus,.pure-form textarea[readonly]:focus{background:#eee;color:#777;border-color:#ccc}.pure-form input:focus:invalid,.pure-form textarea:focus:invalid,.pure-form select:focus:invalid{color:#b94a48;border:1px solid #ee5f5b}.pure-form input:focus:invalid:focus,.pure-form textarea:focus:invalid:focus,.pure-form select:focus:invalid:focus{border-color:#e9322d}.pure-form input[type=file]:focus:invalid:focus,.pure-form input[type=radio]:focus:invalid:focus,.pure-form input[type=checkbox]:focus:invalid:focus{outline-color:#e9322d}.pure-form select{border:1px solid #ccc;background-color:#fff}.pure-form select[multiple]{height:auto}.pure-form label{margin:.5em 0 .2em;font-size:90%}.pure-form fieldset{margin:0;padding:.35em 0 .75em;border:0}.pure-form legend{display:block;width:100%;padding:.3em 0;margin-bottom:.3em;font-size:125%;color:#333;border-bottom:1px solid #e5e5e5}.pure-form-stacked input[type=text],.pure-form-stacked input[type=password],.pure-form-stacked input[type=email],.pure-form-stacked input[type=url],.pure-form-stacked input[type=date],.pure-form-stacked input[type=month],.pure-form-stacked input[type=time],.pure-form-stacked input[type=datetime],.pure-form-stacked input[type=datetime-local],.pure-form-stacked input[type=week],.pure-form-stacked input[type=number],.pure-form-stacked input[type=search],.pure-form-stacked input[type=tel],.pure-form-stacked input[type=color],.pure-form-stacked select,.pure-form-stacked label,.pure-form-stacked textarea{display:block;margin:.25em 0}.pure-form-aligned input,.pure-form-aligned textarea,.pure-form-aligned select,.pure-form-aligned .pure-help-inline,.pure-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.pure-form-aligned .pure-control-group{margin-bottom:.5em}.pure-form-aligned .pure-control-group label{text-align:right;display:inline-block;vertical-align:middle;width:10em;margin:0 1em 0 0}.pure-form-aligned .pure-controls{margin:1.5em 0 0 10em}.pure-form input.pure-input-rounded,.pure-form .pure-input-rounded{border-radius:2em;padding:.5em 1em}.pure-form .pure-group fieldset{margin-bottom:10px}.pure-form .pure-group input{display:block;padding:10px;margin:0;border-radius:0;position:relative;top:-1px}.pure-form .pure-group input:focus{z-index:2}.pure-form .pure-group input:first-child{top:1px;border-radius:4px 4px 0 0}.pure-form .pure-group input:last-child{top:-2px;border-radius:0 0 4px 4px}.pure-form .pure-group button{margin:.35em 0}.pure-form .pure-input-1{width:100%}.pure-form .pure-input-2-3{width:66%}.pure-form .pure-input-1-2{width:50%}.pure-form .pure-input-1-3{width:33%}.pure-form .pure-input-1-4{width:25%}.pure-form .pure-help-inline,.pure-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:90%}.pure-form-message{display:block;color:#666;font-size:90%}
.pure-g{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed}.opera-only :prefocus,.pure-g{word-spacing:-.43em}.pure-u{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1,.pure-u-1-2,.pure-u-1-3,.pure-u-2-3,.pure-u-1-4,.pure-u-3-4,.pure-u-1-5,.pure-u-2-5,.pure-u-3-5,.pure-u-4-5,.pure-u-1-6,.pure-u-5-6,.pure-u-1-8,.pure-u-3-8,.pure-u-5-8,.pure-u-7-8,.pure-u-1-12,.pure-u-5-12,.pure-u-7-12,.pure-u-11-12,.pure-u-1-24,.pure-u-5-24,.pure-u-7-24,.pure-u-11-24,.pure-u-13-24,.pure-u-17-24,.pure-u-19-24,.pure-u-23-24{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1{width:100%}.pure-u-1-2{width:50%}.pure-u-1-3{width:33.33333%}.pure-u-2-3{width:66.66666%}.pure-u-1-4{width:25%}.pure-u-3-4{width:75%}.pure-u-1-5{width:20%}.pure-u-2-5{width:40%}.pure-u-3-5{width:60%}.pure-u-4-5{width:80%}.pure-u-1-6{width:16.666%}.pure-u-5-6{width:83.33%}.pure-u-1-8{width:12.5%}.pure-u-3-8{width:37.5%}.pure-u-5-8{width:62.5%}.pure-u-7-8{width:87.5%}.pure-u-1-12{width:8.3333%}.pure-u-5-12{width:41.6666%}.pure-u-7-12{width:58.3333%}.pure-u-11-12{width:91.6666%}.pure-u-1-24{width:4.1666%}.pure-u-5-24{width:20.8333%}.pure-u-7-24{width:29.1666%}.pure-u-11-24{width:45.8333%}.pure-u-13-24{width:54.1666%}.pure-u-17-24{width:70.8333%}.pure-u-19-24{width:79.1666%}.pure-u-23-24{width:95.8333%}
.pure-menu ul{position:absolute;visibility:hidden}.pure-menu.pure-menu-open{visibility:visible;z-index:2;width:100%}.pure-menu ul{left:-10000px;list-style:none;margin:0;padding:0;top:-10000px;z-index:1}.pure-menu>ul{position:relative}.pure-menu-open>ul{left:0;top:0;visibility:visible}.pure-menu-open>ul:focus{outline:0}.pure-menu li{position:relative}.pure-menu a,.pure-menu .pure-menu-heading{display:block;color:inherit;line-height:1.5em;padding:5px 20px;text-decoration:none;white-space:nowrap}.pure-menu.pure-menu-horizontal>.pure-menu-heading{display:inline-block;*display:inline;zoom:1;margin:0;vertical-align:middle}.pure-menu.pure-menu-horizontal>ul{display:inline-block;*display:inline;zoom:1;vertical-align:middle;height:2.4em}.pure-menu li a{padding:5px 20px}.pure-menu-can-have-children>.pure-menu-label:after{content:'\25B8';float:right;font-family:'Lucida Grande','Lucida Sans Unicode','DejaVu Sans',sans-serif;margin-right:-20px;margin-top:-1px}.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-separator{background-color:#dfdfdf;display:block;height:1px;font-size:0;margin:7px 2px;overflow:hidden}.pure-menu-hidden{display:none}.pure-menu-fixed{position:fixed;top:0;left:0;width:100%}.pure-menu-horizontal li{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu-horizontal li li{display:block}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label:after{content:"\25BE"}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-horizontal li.pure-menu-separator{height:50%;width:1px;margin:0 7px}.pure-menu-horizontal li li.pure-menu-separator{height:1px;width:auto;margin:7px 2px}.pure-menu.pure-menu-open,.pure-menu.pure-menu-horizontal li .pure-menu-children{background:#fff;border:1px solid #b7b7b7}.pure-menu.pure-menu-horizontal,.pure-menu.pure-menu-horizontal .pure-menu-heading{border:0}.pure-menu a{border:1px solid transparent;border-left:0;border-right:0}.pure-menu a,.pure-menu .pure-menu-can-have-children>li:after{color:#777}.pure-menu .pure-menu-can-have-children>li:hover:after{color:#fff}.pure-menu .pure-menu-open{background:#dedede}.pure-menu li a:hover,.pure-menu li a:focus{background:#eee}.pure-menu li.pure-menu-disabled a:hover,.pure-menu li.pure-menu-disabled a:focus{background:#fff;color:#bfbfbf}.pure-menu .pure-menu-disabled>a{background-image:none;border-color:transparent;cursor:default}.pure-menu .pure-menu-disabled>a,.pure-menu .pure-menu-can-have-children.pure-menu-disabled>a:after{color:#bfbfbf}.pure-menu .pure-menu-heading{color:#565d64;text-transform:uppercase;font-size:90%;margin-top:.5em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dfdfdf}.pure-menu .pure-menu-selected a{color:#000}.pure-menu.pure-menu-open.pure-menu-fixed{border:0;border-bottom:1px solid #b7b7b7}.pure-paginator{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;list-style:none;margin:0;padding:0}.opera-only :prefocus,.pure-paginator{word-spacing:-.43em}.pure-paginator li{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-paginator .pure-button{border-radius:0;padding:.8em 1.4em;vertical-align:top;height:1.1em}.pure-paginator .pure-button:focus,.pure-paginator .pure-button:active{outline-style:none}.pure-paginator .prev,.pure-paginator .next{color:#C0C1C3;text-shadow:0 -1px 0 rgba(0,0,0,.45)}.pure-paginator .prev{border-radius:2px 0 0 2px}.pure-paginator .next{border-radius:0 2px 2px 0}
.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:6px 12px}.pure-table td:first-child,.pure-table th:first-child{border-left-width:0}.pure-table thead{background:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child td,.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}
window.onload = function () {
'use strict';
var view, indicator, relative,
min, max, offset, reference, pressed, xform,
velocity, frame, timestamp, ticker,
amplitude, target, timeConstant;
function ypos(e) {
// touch event
if (e.targetTouches && (e.targetTouches.length >= 1)) {
return e.targetTouches[0].clientY;
}
// mouse event
return e.clientY;
}
function scroll(y) {
// remove the edge restrictions from the scroll
offset = y;
view.style[xform] = 'translateY(' + (-offset) + 'px)';
indicator.style[xform] = 'translateY(' + (offset * relative) + 'px)';
}
function track() {
var now, elapsed, delta, v;
now = Date.now();
elapsed = now - timestamp;
timestamp = now;
delta = offset - frame;
frame = offset;
v = 1000 * delta / (1 + elapsed);
velocity = 0.8 * v + 0.2 * velocity;
}
function autoScroll() {
var elapsed, delta, trgt;
if (amplitude) {
elapsed = Date.now() - timestamp;
delta = -amplitude * Math.exp(-elapsed / timeConstant);
// add the edge restrictions to auto scroll instead
if (delta > 0.5 || delta < 0.5) {
scroll(target + delta);
window.requestAnimationFrame(autoScroll);
} else {
scroll(target);
}
}
}
function tap(e) {
pressed = true;
reference = ypos(e);
velocity = amplitude = 0;
frame = offset;
timestamp = Date.now();
clearInterval(ticker);
ticker = setInterval(track, 100);
e.preventDefault();
e.stopPropagation();
return false;
}
function drag(e) {
var y, delta;
if (pressed) {
y = ypos(e);
delta = reference - y;
if (delta > 2 || delta < -2) {
reference = y;
scroll(offset + delta);
}
}
e.preventDefault();
e.stopPropagation();
return false;
}
function release(e) {
pressed = false;
clearInterval(ticker);
if (velocity > 10 || velocity < -10) {
target = Math.round(offset + (0.8 * velocity));
target = target > max ? max : target < min ? min : target;
amplitude = target - offset;
timestamp = Date.now();
requestAnimationFrame(autoScroll);
}
e.preventDefault();
e.stopPropagation();
return false;
}
view = document.getElementById('view');
if (typeof window.ontouchstart !== 'undefined') {
view.addEventListener('touchstart', tap);
view.addEventListener('touchmove', drag);
view.addEventListener('touchend', release);
}
view.addEventListener('mousedown', tap);
view.addEventListener('mousemove', drag);
view.addEventListener('mouseup', release);
max = parseInt(getComputedStyle(view).height, 10) - innerHeight;
offset = min = 0;
pressed = false;
timeConstant = 325; // ms
indicator = document.getElementById('indicator');
relative = (innerHeight - 30) / max;
xform = 'transform';
['webkit', 'Moz', 'O', 'ms'].every(function (prefix) {
var e = prefix + 'Transform';
if (typeof view.style[e] !== 'undefined') {
xform = e;
return false;
}
return true;
});
};
/*
* raf.js
* https://github.com/ngryman/raf.js
*
* original requestAnimationFrame polyfill by Erik Möller
* inspired from paul_irish gist and post
*
* Copyright (c) 2013 ngryman
* Licensed under the MIT license.
*/
(function(window) {
var lastTime = 0,
vendors = ['webkit', 'moz'],
requestAnimationFrame = window.requestAnimationFrame,
cancelAnimationFrame = window.cancelAnimationFrame,
i = vendors.length;
// try to un-prefix existing raf
while (--i >= 0 && !requestAnimationFrame) {
requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame'];
cancelAnimationFrame = window[vendors[i] + 'CancelRequestAnimationFrame'];
}
// polyfill with setTimeout fallback
// heavily inspired from @darius gist mod: https://gist.github.com/paulirish/1579671#comment-837945
if (!requestAnimationFrame || !cancelAnimationFrame) {
requestAnimationFrame = function(callback) {
var now = +Date.now(),
nextTime = Math.max(lastTime + 16, now);
return setTimeout(function() {
callback(lastTime = nextTime);
}, nextTime - now);
};
cancelAnimationFrame = clearTimeout;
}
// export to window
window.requestAnimationFrame = requestAnimationFrame;
window.cancelAnimationFrame = cancelAnimationFrame;
}(window));
Output
You can jump to the latest bin by adding /latest
to your URL
Keyboard Shortcuts
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + ] | Indents selected lines |
ctrl + [ | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |