add stuff
11
component.json
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"name": "podcast",
|
||||
"version": "1.0.0",
|
||||
"main": "css/core.css",
|
||||
"ignore": [
|
||||
],
|
||||
"dependencies": {
|
||||
"iscroll": "d1e642c1d6751877ca0b2b13faf6c2bd512bf473"
|
||||
},
|
||||
"devDependencies": {}
|
||||
}
|
3
components/iscroll/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
.DS_Store
|
||||
dist/*.js
|
||||
node_modules
|
36
components/iscroll/README.md
Normal file
|
@ -0,0 +1,36 @@
|
|||
iScroll v4.2.5 - 2012-10-26
|
||||
===========================
|
||||
|
||||
The overflow:scroll for mobile webkit. Project started because webkit for iPhone does not provide a native way to scroll content inside a fixed size (width/height) div. So basically it was impossible to have a fixed header/footer and a scrolling central area. Until now. Read more at [cubiq.org](http://cubiq.org).
|
||||
|
||||
## Ender support
|
||||
Using [Ender](http://ender.no.de), add it to your existing build
|
||||
|
||||
$ ender add iscroll
|
||||
|
||||
Use it like this:
|
||||
|
||||
``` js
|
||||
var myScroll = $('#doc').iScroll(options)
|
||||
```
|
||||
|
||||
## Credits and Special thanks
|
||||
iScroll is evolving thank to the help of all those who sent suggestions, bug reports and ideas on [github](https://github.com/cubiq/iscroll), my [blog](http://cubiq.org) and [googlecode](http://code.google.com/p/iscroll-js/). This is by no means the work of a sole man.
|
||||
|
||||
In completely random order:
|
||||
|
||||
- All Github [contributors](https://github.com/cubiq/iscroll/contributors)
|
||||
- [beedesk](http://beedesk.com) for bug squashing in the pull to refresh feature
|
||||
- [Daniel J. Pinter](http://twitter.com/#!/HeadDZombie) for continued support, bug reports and for killing zombies
|
||||
- [Aseem Kishore](http://about.me/aseemk) for help with the zoom functionality
|
||||
- [Alex Gibson](http://miniapps.co.uk/) for continued support and bug reports
|
||||
- [Christoph Pojer](http://cpojer.net) for ideas, suggestions and bug reports
|
||||
- [Shimon Dookdin](https://github.com/shimondoodkin) for help with wheel support
|
||||
- [Will Bailey](http://blog.thirtymontgomery.com/) for commonJS compatibility
|
||||
- [Aaron Reisman](https://github.com/lifeiscontent) for bug reports and continued support
|
||||
- [David Haslem](https://github.com/therabidbanana) for suggestions and bug reports
|
||||
- [gingertom](https://github.com/gingertom) for suggestions and bug reports
|
||||
- [David Alan Hjelle](https://github.com/dahjelle) for bug squashing
|
||||
- [iangilman](https://github.com/iangilman) for help with the zoom functionality
|
||||
- All those who supported, linked, loved the iScroll
|
||||
- I'm sure I'm missing someone, sorry about that. If you helped in the script development and you don't see your name here, please drop me a line
|
0
components/iscroll/bin/make-dist
Normal file
9
components/iscroll/component.json
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"name": "iscroll",
|
||||
"version": "0.0.0",
|
||||
"commit": "d1e642c1d6751877ca0b2b13faf6c2bd512bf473",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/cubiq/iscroll.git"
|
||||
}
|
||||
}
|
170
components/iscroll/examples/carousel/index.html
Normal file
|
@ -0,0 +1,170 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: Carousel</title>
|
||||
|
||||
<script type="text/javascript" src="../../src/iscroll.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var myScroll;
|
||||
|
||||
function loaded() {
|
||||
myScroll = new iScroll('wrapper', {
|
||||
snap: true,
|
||||
momentum: false,
|
||||
hScrollbar: false,
|
||||
onScrollEnd: function () {
|
||||
document.querySelector('#indicator > li.active').className = '';
|
||||
document.querySelector('#indicator > li:nth-child(' + (this.currPageX+1) + ')').className = 'active';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', loaded, false);
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
body,ul,li {
|
||||
padding:10px;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
width:300px;
|
||||
height:160px;
|
||||
|
||||
float:left;
|
||||
position:relative; /* On older OS versions "position" and "z-index" must be defined, */
|
||||
z-index:1; /* it seems that recent webkit is less picky and works anyway. */
|
||||
overflow:hidden;
|
||||
|
||||
background:#aaa;
|
||||
-webkit-border-radius:10px;
|
||||
-moz-border-radius:10px;
|
||||
-o-border-radius:10px;
|
||||
border-radius:10px;
|
||||
background:#e3e3e3;
|
||||
}
|
||||
|
||||
#scroller {
|
||||
width:2100px;
|
||||
height:100%;
|
||||
float:left;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#scroller ul {
|
||||
list-style:none;
|
||||
display:block;
|
||||
float:left;
|
||||
width:100%;
|
||||
height:100%;
|
||||
padding:0;
|
||||
margin:0;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
#scroller li {
|
||||
-webkit-box-sizing:border-box;
|
||||
-moz-box-sizing:border-box;
|
||||
-o-box-sizing:border-box;
|
||||
box-sizing:border-box;
|
||||
display:block; float:left;
|
||||
width:300px; height:160px;
|
||||
text-align:center;
|
||||
font-family:georgia;
|
||||
font-size:18px;
|
||||
line-height:140%;
|
||||
}
|
||||
|
||||
#nav {
|
||||
width:300px;
|
||||
float:left;
|
||||
}
|
||||
|
||||
#prev, #next {
|
||||
float:left;
|
||||
font-weight:bold;
|
||||
font-size:14px;
|
||||
padding:5px 0;
|
||||
width:80px;
|
||||
}
|
||||
|
||||
#next {
|
||||
float:right;
|
||||
text-align:right;
|
||||
}
|
||||
|
||||
#indicator, #indicator > li {
|
||||
display:block; float:left;
|
||||
list-style:none;
|
||||
padding:0; margin:0;
|
||||
}
|
||||
|
||||
#indicator {
|
||||
width:110px;
|
||||
padding:12px 0 0 30px;
|
||||
}
|
||||
|
||||
#indicator > li {
|
||||
text-indent:-9999em;
|
||||
width:8px; height:8px;
|
||||
-webkit-border-radius:4px;
|
||||
-moz-border-radius:4px;
|
||||
-o-border-radius:4px;
|
||||
border-radius:4px;
|
||||
background:#ddd;
|
||||
overflow:hidden;
|
||||
margin-right:4px;
|
||||
}
|
||||
|
||||
#indicator > li.active {
|
||||
background:#888;
|
||||
}
|
||||
|
||||
#indicator > li:last-child {
|
||||
margin:0;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="scroller">
|
||||
<ul id="thelist">
|
||||
<li><strong>1.</strong> <em>A robot may not injure a human being or, through inaction, allow a human being to come to harm.</em></li>
|
||||
<li><strong>2.</strong> <em>A robot must obey any orders given to it by human beings, except where such orders would conflict with the First Law.</em></li>
|
||||
<li><strong>3.</strong> <em>A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.</em></li>
|
||||
<li><strong>Zeroth Law:</strong> <em>A robot may not harm humanity, or, by inaction, allow humanity to come to harm.</em></li>
|
||||
<li><strong>Lyuben Dilov's Forth law:</strong> <em>A robot must establish its identity as a robot in all cases.</em></li>
|
||||
<li><strong>Harry Harrison's Forth law:</strong> <em>A robot must reproduce. As long as such reproduction does not interfere with the First or Second or Third Law.</em></li>
|
||||
<li><strong>Nikola Kesarovski's Fifth law:</strong> <em>A robot must know it is a robot.</em></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="nav">
|
||||
<div id="prev" onclick="myScroll.scrollToPage('prev', 0);return false">← prev</div>
|
||||
<ul id="indicator">
|
||||
<li class="active">1</li>
|
||||
<li>2</li>
|
||||
<li>3</li>
|
||||
<li>4</li>
|
||||
<li>5</li>
|
||||
<li>6</li>
|
||||
<li>7</li>
|
||||
</ul>
|
||||
<div id="next" onclick="myScroll.scrollToPage('next', 0);return false">next →</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
172
components/iscroll/examples/check-dom-changes/index.html
Normal file
|
@ -0,0 +1,172 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: Check DOM Changes</title>
|
||||
|
||||
<script type="text/javascript" src="../../src/iscroll.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var myScroll;
|
||||
function loaded() {
|
||||
myScroll = new iScroll('wrapper', { checkDOMChanges: true });
|
||||
|
||||
setInterval(function () {
|
||||
if (myScroll.isReady())
|
||||
document.getElementById('thelist').innerHTML += '<li>new row</li>';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
document.addEventListener('DOMContentLoaded', loaded, false);
|
||||
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
body,ul,li {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
}
|
||||
|
||||
#header {
|
||||
position:absolute; z-index:2;
|
||||
top:0; left:0;
|
||||
width:100%;
|
||||
height:45px;
|
||||
line-height:45px;
|
||||
background-color:#d51875;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
|
||||
background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
padding:0;
|
||||
color:#eee;
|
||||
font-size:20px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#header a {
|
||||
color:#f3f3f3;
|
||||
text-decoration:none;
|
||||
font-weight:bold;
|
||||
text-shadow:0 -1px 0 rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
#footer {
|
||||
position:absolute; z-index:2;
|
||||
bottom:0; left:0;
|
||||
width:100%;
|
||||
height:48px;
|
||||
background-color:#222;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
|
||||
background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
|
||||
background-image:-o-linear-gradient(top, #999, #666 2%, #222);
|
||||
padding:0;
|
||||
border-top:1px solid #444;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
position:absolute; z-index:1;
|
||||
top:45px; bottom:48px; left:0;
|
||||
width:100%;
|
||||
background:#aaa;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#scroller {
|
||||
position:absolute; z-index:1;
|
||||
/* -webkit-touch-callout:none;*/
|
||||
-webkit-tap-highlight-color:rgba(0,0,0,0);
|
||||
width:100%;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#scroller ul {
|
||||
list-style:none;
|
||||
padding:0;
|
||||
margin:0;
|
||||
width:100%;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
#scroller li {
|
||||
padding:0 10px;
|
||||
height:40px;
|
||||
line-height:40px;
|
||||
border-bottom:1px solid #ccc;
|
||||
border-top:1px solid #fff;
|
||||
background-color:#fafafa;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
#myFrame {
|
||||
position:absolute;
|
||||
top:0; left:0;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
|
||||
<div id="wrapper">
|
||||
<div id="scroller">
|
||||
<ul id="thelist">
|
||||
<li>Pretty row 1</li>
|
||||
<li>Pretty row 2</li>
|
||||
<li>Pretty row 3</li>
|
||||
<li>Pretty row 4</li>
|
||||
<li>Pretty row 5</li>
|
||||
<li>Pretty row 6</li>
|
||||
<li>Pretty row 7</li>
|
||||
<li>Pretty row 8</li>
|
||||
<li>Pretty row 9</li>
|
||||
<li>Pretty row 10</li>
|
||||
<li>Pretty row 11</li>
|
||||
<li>Pretty row 12</li>
|
||||
<li>Pretty row 13</li>
|
||||
<li>Pretty row 14</li>
|
||||
<li>Pretty row 15</li>
|
||||
<li>Pretty row 16</li>
|
||||
<li>Pretty row 17</li>
|
||||
<li>Pretty row 18</li>
|
||||
<li>Pretty row 19</li>
|
||||
<li>Pretty row 20</li>
|
||||
<li>Pretty row 21</li>
|
||||
<li>Pretty row 22</li>
|
||||
<li>Pretty row 23</li>
|
||||
<li>Pretty row 24</li>
|
||||
<li>Pretty row 25</li>
|
||||
<li>Pretty row 26</li>
|
||||
<li>Pretty row 27</li>
|
||||
<li>Pretty row 28</li>
|
||||
<li>Pretty row 29</li>
|
||||
<li>Pretty row 30</li>
|
||||
<li>Pretty row 31</li>
|
||||
<li>Pretty row 32</li>
|
||||
<li>Pretty row 33</li>
|
||||
<li>Pretty row 34</li>
|
||||
<li>Pretty row 35</li>
|
||||
<li>Pretty row 36</li>
|
||||
<li>Pretty row 37</li>
|
||||
<li>Pretty row 38</li>
|
||||
<li>Pretty row 39</li>
|
||||
<li>Pretty row 40</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="footer"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
172
components/iscroll/examples/custom-scrollbar/index.html
Normal file
|
@ -0,0 +1,172 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: custom scrollbar</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="scrollbar.css">
|
||||
|
||||
<script type="application/javascript" src="../../src/iscroll.js?v4"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var myScroll;
|
||||
function loaded() {
|
||||
myScroll = new iScroll('wrapper', { scrollbarClass: 'myScrollbar' });
|
||||
}
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
|
||||
document.addEventListener('DOMContentLoaded', loaded, false);
|
||||
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
body,ul,li {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
}
|
||||
|
||||
#header {
|
||||
position:absolute;
|
||||
top:0; left:0;
|
||||
width:100%;
|
||||
height:45px;
|
||||
line-height:45px;
|
||||
background-color:#d51875;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
|
||||
background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
padding:0;
|
||||
color:#eee;
|
||||
font-size:20px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#header a {
|
||||
color:#f3f3f3;
|
||||
text-decoration:none;
|
||||
font-weight:bold;
|
||||
text-shadow:0 -1px 0 rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
#footer {
|
||||
position:absolute;
|
||||
bottom:0; left:0;
|
||||
width:100%;
|
||||
height:48px;
|
||||
background-color:#222;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
|
||||
background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
|
||||
background-image:-o-linear-gradient(top, #999, #666 2%, #222);
|
||||
padding:0;
|
||||
border-top:1px solid #444;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
position:absolute; z-index:1;
|
||||
top:45px; bottom:48px; left:0;
|
||||
width:100%;
|
||||
background:#aaa;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#scroller {
|
||||
position:relative;
|
||||
/* -webkit-touch-callout:none;*/
|
||||
-webkit-tap-highlight-color:rgba(0,0,0,0);
|
||||
|
||||
float:left;
|
||||
width:100%;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#scroller ul {
|
||||
position:relative;
|
||||
list-style:none;
|
||||
padding:0;
|
||||
margin:0;
|
||||
width:100%;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
#scroller li {
|
||||
padding:0 10px;
|
||||
height:40px;
|
||||
line-height:40px;
|
||||
border-bottom:1px solid #ccc;
|
||||
border-top:1px solid #fff;
|
||||
background-color:#fafafa;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
#scroller li > a {
|
||||
display:block;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
|
||||
<div id="wrapper">
|
||||
<div id="scroller">
|
||||
<ul id="thelist">
|
||||
<li>Pretty row 1</li>
|
||||
<li id="aaa">Pretty row 2</li>
|
||||
<li>Pretty row 3</li>
|
||||
<li>Pretty row 4</li>
|
||||
<li>Pretty row 5</li>
|
||||
<li>Pretty row 6</li>
|
||||
<li>Pretty row 7</li>
|
||||
<li>Pretty row 8</li>
|
||||
<li>Pretty row 9</li>
|
||||
<li>Pretty row 10</li>
|
||||
<li>Pretty row 11</li>
|
||||
<li>Pretty row 12</li>
|
||||
<li>Pretty row 13</li>
|
||||
<li>Pretty row 14</li>
|
||||
<li>Pretty row 15</li>
|
||||
<li>Pretty row 16</li>
|
||||
<li>Pretty row 17</li>
|
||||
<li>Pretty row 18</li>
|
||||
<li>Pretty row 19</li>
|
||||
<li>Pretty row 20</li>
|
||||
<li>Pretty row 21</li>
|
||||
<li>Pretty row 22</li>
|
||||
<li>Pretty row 23</li>
|
||||
<li>Pretty row 24</li>
|
||||
<li>Pretty row 25</li>
|
||||
<li>Pretty row 26</li>
|
||||
<li>Pretty row 27</li>
|
||||
<li>Pretty row 28</li>
|
||||
<li>Pretty row 29</li>
|
||||
<li>Pretty row 30</li>
|
||||
<li>Pretty row 31</li>
|
||||
<li>Pretty row 32</li>
|
||||
<li>Pretty row 33</li>
|
||||
<li>Pretty row 34</li>
|
||||
<li>Pretty row 35</li>
|
||||
<li>Pretty row 36</li>
|
||||
<li>Pretty row 37</li>
|
||||
<li>Pretty row 38</li>
|
||||
<li>Pretty row 39</li>
|
||||
<li>Pretty row 40</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
91
components/iscroll/examples/custom-scrollbar/scrollbar.css
Normal file
|
@ -0,0 +1,91 @@
|
|||
|
||||
/**
|
||||
*
|
||||
* Horizontal Scrollbar
|
||||
*
|
||||
*/
|
||||
.myScrollbarH {
|
||||
position:absolute;
|
||||
z-index:100;
|
||||
height:8px;
|
||||
bottom:1px;
|
||||
left:2px;
|
||||
right:7px
|
||||
}
|
||||
|
||||
.myScrollbarH > div {
|
||||
position:absolute;
|
||||
z-index:100;
|
||||
height:100%;
|
||||
|
||||
/* The following is probably what you want to customize */
|
||||
background-image:-webkit-gradient(linear, 0 0, 100% 0, from(#a00), to(#f00));
|
||||
background-image:-moz-linear-gradient(top, #f00, #900);
|
||||
background-image:-o-linear-gradient(top, #f00, #900);
|
||||
|
||||
border:1px solid #900;
|
||||
-webkit-background-clip:padding-box;
|
||||
-moz-background-clip:padding-box;
|
||||
-o-background-clip:padding-box;
|
||||
background-clip:padding-box;
|
||||
|
||||
-webkit-box-sizing:border-box;
|
||||
-moz-box-sizing:border-box;
|
||||
-o-box-sizing:border-box;
|
||||
box-sizing:border-box;
|
||||
|
||||
-webkit-border-radius:4px;
|
||||
-moz-border-radius:4px;
|
||||
-o-border-radius:4px;
|
||||
border-radius:4px;
|
||||
|
||||
-webkit-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
|
||||
-moz-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
|
||||
-o-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
|
||||
box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Vertical Scrollbar
|
||||
*
|
||||
*/
|
||||
.myScrollbarV {
|
||||
position:absolute;
|
||||
z-index:100;
|
||||
width:8px;bottom:7px;top:2px;right:1px
|
||||
}
|
||||
|
||||
.myScrollbarV > div {
|
||||
position:absolute;
|
||||
z-index:100;
|
||||
width:100%;
|
||||
|
||||
/* The following is probably what you want to customize */
|
||||
background:-webkit-gradient(linear, 0 0, 100% 0, from(#f00), to(#900));
|
||||
background-image:-moz-linear-gradient(top, #f00, #900);
|
||||
background-image:-o-linear-gradient(top, #f00, #900);
|
||||
|
||||
border:1px solid #900;
|
||||
|
||||
-webkit-background-clip:padding-box;
|
||||
-moz-background-clip:padding-box;
|
||||
-o-background-clip:padding-box;
|
||||
background-clip:padding-box;
|
||||
|
||||
-webkit-box-sizing:border-box;
|
||||
-moz-box-sizing:border-box;
|
||||
-o-box-sizing:border-box;
|
||||
box-sizing:border-box;
|
||||
|
||||
-webkit-border-radius:4px;
|
||||
-moz-border-radius:4px;
|
||||
-o-border-radius:4px;
|
||||
border-radius:4px;
|
||||
|
||||
-webkit-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
|
||||
-moz-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
|
||||
-o-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
|
||||
box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
|
||||
}
|
1602
components/iscroll/examples/ender/ender.js
Normal file
27
components/iscroll/examples/ender/ender.min.js
vendored
Normal file
166
components/iscroll/examples/ender/index.html
Normal file
|
@ -0,0 +1,166 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: Carousel</title>
|
||||
|
||||
<script src="ender.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
this.myScroll = $('#wrapper').iScroll({
|
||||
snap: true,
|
||||
momentum: false,
|
||||
hScrollbar: false,
|
||||
onScrollEnd: function () {
|
||||
document.querySelector('#indicator > li.active').className = '';
|
||||
document.querySelector('#indicator > li:nth-child(' + (this.currPageX+1) + ')').className = 'active';
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
body,ul,li {
|
||||
padding:10px;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
width:300px;
|
||||
height:160px;
|
||||
|
||||
float:left;
|
||||
position:relative;
|
||||
z-index:1;
|
||||
overflow:hidden;
|
||||
|
||||
background:#aaa;
|
||||
-webkit-border-radius:10px;
|
||||
-moz-border-radius:10px;
|
||||
-o-border-radius:10px;
|
||||
border-radius:10px;
|
||||
background:#e3e3e3;
|
||||
}
|
||||
|
||||
#scroller {
|
||||
width:2100px;
|
||||
height:100%;
|
||||
float:left;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#scroller ul {
|
||||
list-style:none;
|
||||
display:block;
|
||||
float:left;
|
||||
width:100%;
|
||||
height:100%;
|
||||
padding:0;
|
||||
margin:0;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
#scroller li {
|
||||
-webkit-box-sizing:border-box;
|
||||
-moz-box-sizing:border-box;
|
||||
-o-box-sizing:border-box;
|
||||
box-sizing:border-box;
|
||||
display:block; float:left;
|
||||
width:300px; height:160px;
|
||||
text-align:center;
|
||||
font-family:georgia;
|
||||
font-size:18px;
|
||||
line-height:140%;
|
||||
}
|
||||
|
||||
#nav {
|
||||
width:300px;
|
||||
float:left;
|
||||
}
|
||||
|
||||
#prev, #next {
|
||||
float:left;
|
||||
font-weight:bold;
|
||||
font-size:14px;
|
||||
padding:5px 0;
|
||||
width:80px;
|
||||
}
|
||||
|
||||
#next {
|
||||
float:right;
|
||||
text-align:right;
|
||||
}
|
||||
|
||||
#indicator, #indicator > li {
|
||||
display:block; float:left;
|
||||
list-style:none;
|
||||
padding:0; margin:0;
|
||||
}
|
||||
|
||||
#indicator {
|
||||
width:110px;
|
||||
padding:12px 0 0 30px;
|
||||
}
|
||||
|
||||
#indicator > li {
|
||||
text-indent:-9999em;
|
||||
width:8px; height:8px;
|
||||
-webkit-border-radius:4px;
|
||||
-moz-border-radius:4px;
|
||||
-o-border-radius:4px;
|
||||
border-radius:4px;
|
||||
background:#ddd;
|
||||
overflow:hidden;
|
||||
margin-right:4px;
|
||||
}
|
||||
|
||||
#indicator > li.active {
|
||||
background:#888;
|
||||
}
|
||||
|
||||
#indicator > li:last-child {
|
||||
margin:0;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="scroller">
|
||||
<ul id="thelist">
|
||||
<li><strong>1.</strong> <em>A robot may not injure a human being or, through inaction, allow a human being to come to harm.</em></li>
|
||||
<li><strong>2.</strong> <em>A robot must obey any orders given to it by human beings, except where such orders would conflict with the First Law.</em></li>
|
||||
<li><strong>3.</strong> <em>A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.</em></li>
|
||||
<li><strong>Zeroth Law:</strong> <em>A robot may not harm humanity, or, by inaction, allow humanity to come to harm.</em></li>
|
||||
<li><strong>Lyuben Dilov's Forth law:</strong> <em>A robot must establish its identity as a robot in all cases.</em></li>
|
||||
<li><strong>Harry Harrison's Forth law:</strong> <em>A robot must reproduce. As long as such reproduction does not interfere with the First or Second or Third Law.</em></li>
|
||||
<li><strong>Nikola Kesarovski's Fifth law:</strong> <em>A robot must know it is a robot.</em></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="nav">
|
||||
<div id="prev" onclick="myScroll.scrollToPage('prev', 0);return false">← prev</div>
|
||||
<ul id="indicator">
|
||||
<li class="active">1</li>
|
||||
<li>2</li>
|
||||
<li>3</li>
|
||||
<li>4</li>
|
||||
<li>5</li>
|
||||
<li>6</li>
|
||||
<li>7</li>
|
||||
</ul>
|
||||
<div id="next" onclick="myScroll.scrollToPage('next', 0);return false">next →</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
176
components/iscroll/examples/form-fields/index.html
Normal file
|
@ -0,0 +1,176 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: simple</title>
|
||||
|
||||
<script type="text/javascript" src="../../src/iscroll.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var myScroll;
|
||||
function loaded() {
|
||||
myScroll = new iScroll('wrapper', {
|
||||
useTransform: false,
|
||||
onBeforeScrollStart: function (e) {
|
||||
var target = e.target;
|
||||
while (target.nodeType != 1) target = target.parentNode;
|
||||
|
||||
if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA')
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
document.addEventListener('DOMContentLoaded', loaded, false);
|
||||
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
body,ul,li {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
}
|
||||
|
||||
#header {
|
||||
position:absolute; z-index:2;
|
||||
top:0; left:0;
|
||||
width:100%;
|
||||
height:45px;
|
||||
line-height:45px;
|
||||
background-color:#d51875;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
|
||||
background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
padding:0;
|
||||
color:#eee;
|
||||
font-size:20px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#header a {
|
||||
color:#f3f3f3;
|
||||
text-decoration:none;
|
||||
font-weight:bold;
|
||||
text-shadow:0 -1px 0 rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
#footer {
|
||||
position:absolute; z-index:2;
|
||||
bottom:0; left:0;
|
||||
width:100%;
|
||||
height:48px;
|
||||
background-color:#222;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
|
||||
background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
|
||||
background-image:-o-linear-gradient(top, #999, #666 2%, #222);
|
||||
padding:0;
|
||||
border-top:1px solid #444;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
position:absolute; z-index:1;
|
||||
top:45px; bottom:48px; left:0;
|
||||
width:100%;
|
||||
background:#aaa;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#scroller {
|
||||
position:absolute; z-index:1;
|
||||
/* -webkit-touch-callout:none;*/
|
||||
-webkit-tap-highlight-color:rgba(0,0,0,0);
|
||||
width:100%;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#scroller ul {
|
||||
list-style:none;
|
||||
padding:0;
|
||||
margin:0;
|
||||
width:100%;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
#scroller li {
|
||||
padding:0 10px;
|
||||
height:40px;
|
||||
line-height:40px;
|
||||
border-bottom:1px solid #ccc;
|
||||
border-top:1px solid #fff;
|
||||
background-color:#fafafa;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
#myFrame {
|
||||
position:absolute;
|
||||
top:0; left:0;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
|
||||
<div id="wrapper">
|
||||
<div id="scroller">
|
||||
<ul id="thelist">
|
||||
<li><input type="text"></li>
|
||||
<li>Pretty row 2</li>
|
||||
<li><input type="radio"></li>
|
||||
<li>Pretty row 4</li>
|
||||
<li><input type="checkbox"></li>
|
||||
<li>Pretty row 6</li>
|
||||
<li><select><option>opt</option></select></li>
|
||||
<li>Pretty row 8</li>
|
||||
<li>Pretty row 9</li>
|
||||
<li>Pretty row 10</li>
|
||||
<li>Pretty row 11</li>
|
||||
<li>Pretty row 12</li>
|
||||
<li>Pretty row 13</li>
|
||||
<li>Pretty row 14</li>
|
||||
<li>Pretty row 15</li>
|
||||
<li>Pretty row 16</li>
|
||||
<li>Pretty row 17</li>
|
||||
<li>Pretty row 18</li>
|
||||
<li>Pretty row 19</li>
|
||||
<li>Pretty row 20</li>
|
||||
<li>Pretty row 21</li>
|
||||
<li>Pretty row 22</li>
|
||||
<li>Pretty row 23</li>
|
||||
<li>Pretty row 24</li>
|
||||
<li>Pretty row 25</li>
|
||||
<li>Pretty row 26</li>
|
||||
<li>Pretty row 27</li>
|
||||
<li>Pretty row 28</li>
|
||||
<li>Pretty row 29</li>
|
||||
<li>Pretty row 30</li>
|
||||
<li>Pretty row 31</li>
|
||||
<li>Pretty row 32</li>
|
||||
<li>Pretty row 33</li>
|
||||
<li>Pretty row 34</li>
|
||||
<li>Pretty row 35</li>
|
||||
<li>Pretty row 36</li>
|
||||
<li>Pretty row 37</li>
|
||||
<li>Pretty row 38</li>
|
||||
<li>Pretty row 39</li>
|
||||
<li>Pretty row 40</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="footer"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
134
components/iscroll/examples/horizontal-scroll/index.html
Normal file
|
@ -0,0 +1,134 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: horizontal scroll</title>
|
||||
|
||||
<script type="application/javascript" src="../../src/iscroll.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var myScroll;
|
||||
function loaded() {
|
||||
myScroll = new iScroll('wrapper');
|
||||
}
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
|
||||
document.addEventListener('DOMContentLoaded', loaded, false);
|
||||
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
body,ul,li {
|
||||
padding:0;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
/* -webkit-box-sizing:border-box;*/
|
||||
font-family:helvetica;
|
||||
/* padding-bottom:45px; /* This prevents the scroller to lock if the user swipes down outside of the screen.
|
||||
NOT needed if in home screen mode. */
|
||||
}
|
||||
|
||||
#header {
|
||||
position:absolute; z-index:2;
|
||||
top:0; left:0;
|
||||
width:100%;
|
||||
height:45px;
|
||||
line-height:45px;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
|
||||
background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
padding:0;
|
||||
color:#eee;
|
||||
font-size:20px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#header a {
|
||||
color:#f3f3f3;
|
||||
text-decoration:none;
|
||||
font-weight:bold;
|
||||
text-shadow:0 -1px 0 rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
position:absolute; z-index:1;
|
||||
top:45px; bottom:0; left:0;
|
||||
width:100%;
|
||||
background:#aaa;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#scroller {
|
||||
width:2040px;
|
||||
height:100%;
|
||||
float:left;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#scroller ul {
|
||||
list-style:none;
|
||||
display:block;
|
||||
float:left;
|
||||
width:100%;
|
||||
height:100%;
|
||||
padding:0;
|
||||
margin:0;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
#scroller li {
|
||||
display:block;
|
||||
vertical-align:middle;
|
||||
float:left;
|
||||
padding:0 10px;
|
||||
width:80px;
|
||||
height:100%;
|
||||
border-left:1px solid #ccc;
|
||||
border-right:1px solid #fff;
|
||||
background-color:#fafafa;
|
||||
font-size:14px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
|
||||
|
||||
<div id="wrapper">
|
||||
<div id="scroller">
|
||||
<ul id="thelist">
|
||||
<li>Pretty col 1</li>
|
||||
<li>Pretty col 2</li>
|
||||
<li>Pretty col 3</li>
|
||||
<li>Pretty col 4</li>
|
||||
<li>Pretty col 5</li>
|
||||
<li>Pretty col 6</li>
|
||||
<li>Pretty col 7</li>
|
||||
<li>Pretty col 8</li>
|
||||
<li>Pretty col 9</li>
|
||||
<li>Pretty col 10</li>
|
||||
<li>Pretty col 11</li>
|
||||
<li>Pretty col 12</li>
|
||||
<li>Pretty col 13</li>
|
||||
<li>Pretty col 14</li>
|
||||
<li>Pretty col 15</li>
|
||||
<li>Pretty col 16</li>
|
||||
<li>Pretty col 17</li>
|
||||
<li>Pretty col 18</li>
|
||||
<li>Pretty col 19</li>
|
||||
<li>Pretty col 20</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
199
components/iscroll/examples/hover/index.html
Normal file
|
@ -0,0 +1,199 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: Hover Example</title>
|
||||
|
||||
<script type="text/javascript" src="../../src/iscroll.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var myScroll,
|
||||
hoverClassRegEx = new RegExp('(^|\\s)iScrollHover(\\s|$)'),
|
||||
removeClass = function () {
|
||||
if (this.hoverTarget) {
|
||||
clearTimeout(this.hoverTimeout);
|
||||
this.hoverTarget.className = this.hoverTarget.className.replace(hoverClassRegEx, '');
|
||||
this.target = null;
|
||||
}
|
||||
};
|
||||
|
||||
function loaded() {
|
||||
myScroll = new iScroll('wrapper', {
|
||||
onBeforeScrollStart: function (e) {
|
||||
var target = e.target;
|
||||
|
||||
clearTimeout(this.hoverTimeout);
|
||||
|
||||
while (target.nodeType != 1) target = target.parentNode;
|
||||
|
||||
this.hoverTimeout = setTimeout(function () {
|
||||
if (!hoverClassRegEx.test(target.className)) target.className = target.className ? target.className + ' iScrollHover' : 'iScrollHover';
|
||||
}, 80);
|
||||
|
||||
this.hoverTarget = target;
|
||||
|
||||
e.preventDefault();
|
||||
},
|
||||
onScrollMove: removeClass,
|
||||
onBeforeScrollEnd: removeClass
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
document.addEventListener('DOMContentLoaded', loaded, false);
|
||||
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
.iScrollHover {
|
||||
background:#444 !important;
|
||||
color:#eee !important;
|
||||
}
|
||||
|
||||
body,ul,li {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
}
|
||||
|
||||
#header {
|
||||
position:absolute; z-index:2;
|
||||
top:0; left:0;
|
||||
width:100%;
|
||||
height:45px;
|
||||
line-height:45px;
|
||||
background-color:#d51875;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
|
||||
background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
padding:0;
|
||||
color:#eee;
|
||||
font-size:20px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#header a {
|
||||
color:#f3f3f3;
|
||||
text-decoration:none;
|
||||
font-weight:bold;
|
||||
text-shadow:0 -1px 0 rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
#footer {
|
||||
position:absolute; z-index:2;
|
||||
bottom:0; left:0;
|
||||
width:100%;
|
||||
height:48px;
|
||||
background-color:#222;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
|
||||
background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
|
||||
background-image:-o-linear-gradient(top, #999, #666 2%, #222);
|
||||
padding:0;
|
||||
border-top:1px solid #444;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
position:absolute; z-index:1;
|
||||
top:45px; bottom:48px; left:0;
|
||||
width:100%;
|
||||
background:#aaa;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#scroller {
|
||||
position:absolute; z-index:1;
|
||||
/* -webkit-touch-callout:none;*/
|
||||
-webkit-tap-highlight-color:rgba(0,0,0,0);
|
||||
width:100%;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#scroller ul {
|
||||
list-style:none;
|
||||
padding:0;
|
||||
margin:0;
|
||||
width:100%;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
#scroller li {
|
||||
padding:0 10px;
|
||||
height:40px;
|
||||
line-height:40px;
|
||||
border-bottom:1px solid #ccc;
|
||||
border-top:1px solid #fff;
|
||||
background-color:#fafafa;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
#myFrame {
|
||||
position:absolute;
|
||||
top:0; left:0;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
|
||||
<div id="wrapper">
|
||||
<div id="scroller">
|
||||
<ul id="thelist">
|
||||
<li>Pretty row 1</li>
|
||||
<li>Pretty row 2</li>
|
||||
<li>Pretty row 3</li>
|
||||
<li>Pretty row 4</li>
|
||||
<li>Pretty row 5</li>
|
||||
<li>Pretty row 6</li>
|
||||
<li>Pretty row 7</li>
|
||||
<li>Pretty row 8</li>
|
||||
<li>Pretty row 9</li>
|
||||
<li>Pretty row 10</li>
|
||||
<li>Pretty row 11</li>
|
||||
<li>Pretty row 12</li>
|
||||
<li>Pretty row 13</li>
|
||||
<li>Pretty row 14</li>
|
||||
<li>Pretty row 15</li>
|
||||
<li>Pretty row 16</li>
|
||||
<li>Pretty row 17</li>
|
||||
<li>Pretty row 18</li>
|
||||
<li>Pretty row 19</li>
|
||||
<li>Pretty row 20</li>
|
||||
<li>Pretty row 21</li>
|
||||
<li>Pretty row 22</li>
|
||||
<li>Pretty row 23</li>
|
||||
<li>Pretty row 24</li>
|
||||
<li>Pretty row 25</li>
|
||||
<li>Pretty row 26</li>
|
||||
<li>Pretty row 27</li>
|
||||
<li>Pretty row 28</li>
|
||||
<li>Pretty row 29</li>
|
||||
<li>Pretty row 30</li>
|
||||
<li>Pretty row 31</li>
|
||||
<li>Pretty row 32</li>
|
||||
<li>Pretty row 33</li>
|
||||
<li>Pretty row 34</li>
|
||||
<li>Pretty row 35</li>
|
||||
<li>Pretty row 36</li>
|
||||
<li>Pretty row 37</li>
|
||||
<li>Pretty row 38</li>
|
||||
<li>Pretty row 39</li>
|
||||
<li>Pretty row 40</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="footer"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
170
components/iscroll/examples/ios-perfect-scrollbar/index.html
Normal file
|
@ -0,0 +1,170 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: iOS Perfect Scrollbar</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="scrollbar.css">
|
||||
|
||||
<script type="application/javascript" src="../../src/iscroll.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var myScroll;
|
||||
function loaded() {
|
||||
myScroll = new iScroll('wrapper', { scrollbarClass: 'myScrollbar' });
|
||||
}
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
|
||||
document.addEventListener('DOMContentLoaded', loaded, false);
|
||||
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
body,ul,li {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
}
|
||||
|
||||
#header {
|
||||
position:absolute;
|
||||
top:0; left:0;
|
||||
width:100%;
|
||||
height:45px;
|
||||
line-height:45px;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
|
||||
background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
padding:0;
|
||||
color:#eee;
|
||||
font-size:20px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#header a {
|
||||
color:#f3f3f3;
|
||||
text-decoration:none;
|
||||
font-weight:bold;
|
||||
text-shadow:0 -1px 0 rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
#footer {
|
||||
position:absolute;
|
||||
bottom:0; left:0;
|
||||
width:100%;
|
||||
height:48px;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
|
||||
background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
|
||||
background-image:-o-linear-gradient(top, #999, #666 2%, #222);
|
||||
padding:0;
|
||||
border-top:1px solid #444;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
position:absolute; z-index:1;
|
||||
top:45px; bottom:48px; left:0;
|
||||
width:100%;
|
||||
background:#555;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#scroller {
|
||||
position:relative;
|
||||
/* -webkit-touch-callout:none;*/
|
||||
-webkit-tap-highlight-color:rgba(0,0,0,0);
|
||||
|
||||
float:left;
|
||||
width:100%;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#scroller ul {
|
||||
position:relative;
|
||||
list-style:none;
|
||||
padding:0;
|
||||
margin:0;
|
||||
width:100%;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
#scroller li {
|
||||
padding:0 10px;
|
||||
height:40px;
|
||||
line-height:40px;
|
||||
border-bottom:1px solid #ccc;
|
||||
border-top:1px solid #fff;
|
||||
background-color:#fafafa;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
#scroller li > a {
|
||||
display:block;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
|
||||
<div id="wrapper">
|
||||
<div id="scroller">
|
||||
<ul id="thelist">
|
||||
<li>Pretty row 1</li>
|
||||
<li id="aaa">Pretty row 2</li>
|
||||
<li>Pretty row 3</li>
|
||||
<li>Pretty row 4</li>
|
||||
<li>Pretty row 5</li>
|
||||
<li>Pretty row 6</li>
|
||||
<li>Pretty row 7</li>
|
||||
<li>Pretty row 8</li>
|
||||
<li>Pretty row 9</li>
|
||||
<li>Pretty row 10</li>
|
||||
<li>Pretty row 11</li>
|
||||
<li>Pretty row 12</li>
|
||||
<li>Pretty row 13</li>
|
||||
<li>Pretty row 14</li>
|
||||
<li>Pretty row 15</li>
|
||||
<li>Pretty row 16</li>
|
||||
<li>Pretty row 17</li>
|
||||
<li>Pretty row 18</li>
|
||||
<li>Pretty row 19</li>
|
||||
<li>Pretty row 20</li>
|
||||
<li>Pretty row 21</li>
|
||||
<li>Pretty row 22</li>
|
||||
<li>Pretty row 23</li>
|
||||
<li>Pretty row 24</li>
|
||||
<li>Pretty row 25</li>
|
||||
<li>Pretty row 26</li>
|
||||
<li>Pretty row 27</li>
|
||||
<li>Pretty row 28</li>
|
||||
<li>Pretty row 29</li>
|
||||
<li>Pretty row 30</li>
|
||||
<li>Pretty row 31</li>
|
||||
<li>Pretty row 32</li>
|
||||
<li>Pretty row 33</li>
|
||||
<li>Pretty row 34</li>
|
||||
<li>Pretty row 35</li>
|
||||
<li>Pretty row 36</li>
|
||||
<li>Pretty row 37</li>
|
||||
<li>Pretty row 38</li>
|
||||
<li>Pretty row 39</li>
|
||||
<li>Pretty row 40</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,57 @@
|
|||
/**
|
||||
*
|
||||
* Horizontal Scrollbar
|
||||
*
|
||||
*/
|
||||
.myScrollbarH {
|
||||
position:absolute;
|
||||
z-index:100;
|
||||
height:7px;
|
||||
bottom:1px;
|
||||
left:2px;
|
||||
right:7px
|
||||
}
|
||||
|
||||
.myScrollbarH > div {
|
||||
height:100%;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Vertical Scrollbar
|
||||
*
|
||||
*/
|
||||
.myScrollbarV {
|
||||
position:absolute;
|
||||
z-index:100;
|
||||
width:7px;bottom:7px;top:2px;right:1px
|
||||
}
|
||||
|
||||
.myScrollbarV > div {
|
||||
width:100%;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Both Scrollbars
|
||||
*
|
||||
*/
|
||||
.myScrollbarH > div,
|
||||
.myScrollbarV > div {
|
||||
position:absolute;
|
||||
z-index:100;
|
||||
|
||||
/* The following is probably what you want to customize */
|
||||
-webkit-box-sizing:border-box;
|
||||
-moz-box-sizing:border-box;
|
||||
-o-box-sizing:border-box;
|
||||
box-sizing:border-box;
|
||||
|
||||
border-width:3px;
|
||||
-webkit-border-image:url(scrollbar.png) 6 6 6 6;
|
||||
-moz-border-image:url(scrollbar.png) 6 6 6 6;
|
||||
-o-border-image:url(scrollbar.png) 6 6 6 6;
|
||||
border-image:url(scrollbar.png) 6 6 6 6;
|
||||
}
|
BIN
components/iscroll/examples/ios-perfect-scrollbar/scrollbar.png
Normal file
After Width: | Height: | Size: 199 B |
167
components/iscroll/examples/ipad/index.html
Normal file
|
@ -0,0 +1,167 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: iPad</title>
|
||||
|
||||
<script type="application/javascript" src="../../src/iscroll.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var scrollContent,
|
||||
scrollNav;
|
||||
|
||||
function loaded() {
|
||||
scrollContent = new iScroll('contentWrapper');
|
||||
scrollNav = new iScroll('navWrapper');
|
||||
}
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
|
||||
document.addEventListener('DOMContentLoaded', loaded, false);
|
||||
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
html,body {
|
||||
height:100%;
|
||||
}
|
||||
|
||||
body,ul,li,header,nav,aside,section,article,p {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
background:#424242;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom:1.5em;
|
||||
line-height:150%;
|
||||
}
|
||||
|
||||
header,nav,aside,section,article {
|
||||
display:block;
|
||||
}
|
||||
|
||||
#page {
|
||||
width:100%; height:100%;
|
||||
position:relative;
|
||||
display:-webkit-box;
|
||||
display:-moz-box;
|
||||
display:-o-box;
|
||||
display:box;
|
||||
|
||||
-webkit-box-orient:horizontal;
|
||||
-moz-box-orient:horizontal;
|
||||
-o-box-orient:horizontal;
|
||||
box-orient:horizontal;
|
||||
|
||||
background:#424242;
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
width:300px;
|
||||
margin-right:1px;
|
||||
}
|
||||
|
||||
#content {
|
||||
-webkit-box-flex:1;
|
||||
-moz-box-flex:1;
|
||||
-o-box-flex:1;
|
||||
box-flex:1;
|
||||
}
|
||||
|
||||
#sidebar, #content {
|
||||
position:relative;
|
||||
height:100%;
|
||||
}
|
||||
|
||||
header {
|
||||
height:43px; line-height:43px;
|
||||
border-bottom:1px solid #838a9a;
|
||||
background-color:#424242;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100, from(#f4f5f7), to(#999da9));
|
||||
background-image:-moz-linear-gradient(top, #f4f5f7, #999da9);
|
||||
background-image:-o-linear-gradient(top, #f4f5f7, #999da9);
|
||||
|
||||
color:#717880;
|
||||
font-size:18px; font-weight:bold;
|
||||
text-align:center;
|
||||
text-shadow:0 1px 0 #fff;
|
||||
-webkit-border-top-left-radius:4px;
|
||||
-moz-border-top-left-radius:4px;
|
||||
-o-border-top-left-radius:4px;
|
||||
border-top-left-radius:4px;
|
||||
|
||||
-webkit-border-top-right-radius:4px;
|
||||
-moz-border-top-right-radius:4px;
|
||||
-o-border-top-right-radius:4px;
|
||||
border-top-right-radius:4px;
|
||||
}
|
||||
|
||||
#navScroller > li {
|
||||
padding:0 10px;
|
||||
border-bottom:1px solid #ccc;
|
||||
height:40px; line-height:40px;
|
||||
}
|
||||
|
||||
#contentScroller {
|
||||
-webkit-box-sizing:border-box;
|
||||
-moz-box-sizing:border-box;
|
||||
-o-box-sizing:border-box;
|
||||
box-sizing:border-box;
|
||||
padding:20px;
|
||||
}
|
||||
|
||||
nav, article {
|
||||
position:absolute;
|
||||
top:44px; bottom:0; left:0; right:0;
|
||||
font-size:15px;
|
||||
background:#fff;
|
||||
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="page">
|
||||
<div id="sidebar">
|
||||
<header>Navigation</header>
|
||||
<nav id="navWrapper">
|
||||
<ul id="navScroller">
|
||||
<li>Option 1</li>
|
||||
<li>Option 2</li>
|
||||
<li>Option 3</li>
|
||||
<li>Option 4</li>
|
||||
<li>Option 5</li>
|
||||
<li>Option 6</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<header>Main Content Area</header>
|
||||
<article id="contentWrapper">
|
||||
<div id="contentScroller">
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
|
||||
<p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
161
components/iscroll/examples/lite/index.html
Normal file
|
@ -0,0 +1,161 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: lite edition</title>
|
||||
|
||||
<script type="application/javascript" src="../../src/iscroll-lite.js?v4"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var myScroll;
|
||||
function loaded() {
|
||||
myScroll = new iScroll('wrapper');
|
||||
}
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
|
||||
document.addEventListener('DOMContentLoaded', loaded, false);
|
||||
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
body,ul,li {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
}
|
||||
|
||||
#header {
|
||||
position:absolute; z-index:2;
|
||||
top:0; left:0;
|
||||
width:100%;
|
||||
height:45px;
|
||||
line-height:45px;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
|
||||
background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
padding:0;
|
||||
color:#eee;
|
||||
font-size:20px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#header a {
|
||||
color:#f3f3f3;
|
||||
text-decoration:none;
|
||||
font-weight:bold;
|
||||
text-shadow:0 -1px 0 rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
#footer {
|
||||
position:absolute; z-index:2;
|
||||
bottom:0; left:0;
|
||||
width:100%;
|
||||
height:48px;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
|
||||
background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
|
||||
background-image:-o-linear-gradient(top, #999, #666 2%, #222);
|
||||
padding:0;
|
||||
border-top:1px solid #444;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
position:absolute; z-index:1;
|
||||
top:45px; bottom:48px; left:0;
|
||||
width:100%;
|
||||
background:#aaa;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#scroller {
|
||||
position:absolute; z-index:1;
|
||||
/* -webkit-touch-callout:none;*/
|
||||
-webkit-tap-highlight-color:rgba(0,0,0,0);
|
||||
width:100%;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#scroller ul {
|
||||
list-style:none;
|
||||
padding:0;
|
||||
margin:0;
|
||||
width:100%;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
#scroller li {
|
||||
padding:0 10px;
|
||||
height:40px;
|
||||
line-height:40px;
|
||||
border-bottom:1px solid #ccc;
|
||||
border-top:1px solid #fff;
|
||||
background-color:#fafafa;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
|
||||
<div id="wrapper">
|
||||
<div id="scroller">
|
||||
<ul id="thelist">
|
||||
<li>Pretty row 1</li>
|
||||
<li>Pretty row 2</li>
|
||||
<li>Pretty row 3</li>
|
||||
<li>Pretty row 4</li>
|
||||
<li>Pretty row 5</li>
|
||||
<li>Pretty row 6</li>
|
||||
<li>Pretty row 7</li>
|
||||
<li>Pretty row 8</li>
|
||||
<li>Pretty row 9</li>
|
||||
<li>Pretty row 10</li>
|
||||
<li>Pretty row 11</li>
|
||||
<li>Pretty row 12</li>
|
||||
<li>Pretty row 13</li>
|
||||
<li>Pretty row 14</li>
|
||||
<li>Pretty row 15</li>
|
||||
<li>Pretty row 16</li>
|
||||
<li>Pretty row 17</li>
|
||||
<li>Pretty row 18</li>
|
||||
<li>Pretty row 19</li>
|
||||
<li>Pretty row 20</li>
|
||||
<li>Pretty row 21</li>
|
||||
<li>Pretty row 22</li>
|
||||
<li>Pretty row 23</li>
|
||||
<li>Pretty row 24</li>
|
||||
<li>Pretty row 25</li>
|
||||
<li>Pretty row 26</li>
|
||||
<li>Pretty row 27</li>
|
||||
<li>Pretty row 28</li>
|
||||
<li>Pretty row 29</li>
|
||||
<li>Pretty row 30</li>
|
||||
<li>Pretty row 31</li>
|
||||
<li>Pretty row 32</li>
|
||||
<li>Pretty row 33</li>
|
||||
<li>Pretty row 34</li>
|
||||
<li>Pretty row 35</li>
|
||||
<li>Pretty row 36</li>
|
||||
<li>Pretty row 37</li>
|
||||
<li>Pretty row 38</li>
|
||||
<li>Pretty row 39</li>
|
||||
<li>Pretty row 40</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
313
components/iscroll/examples/pull-to-refresh/index.html
Normal file
|
@ -0,0 +1,313 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: simple</title>
|
||||
|
||||
<script type="text/javascript" src="../../src/iscroll.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var myScroll,
|
||||
pullDownEl, pullDownOffset,
|
||||
pullUpEl, pullUpOffset,
|
||||
generatedCount = 0;
|
||||
|
||||
function pullDownAction () {
|
||||
setTimeout(function () { // <-- Simulate network congestion, remove setTimeout from production!
|
||||
var el, li, i;
|
||||
el = document.getElementById('thelist');
|
||||
|
||||
for (i=0; i<3; i++) {
|
||||
li = document.createElement('li');
|
||||
li.innerText = 'Generated row ' + (++generatedCount);
|
||||
el.insertBefore(li, el.childNodes[0]);
|
||||
}
|
||||
|
||||
myScroll.refresh(); // Remember to refresh when contents are loaded (ie: on ajax completion)
|
||||
}, 1000); // <-- Simulate network congestion, remove setTimeout from production!
|
||||
}
|
||||
|
||||
function pullUpAction () {
|
||||
setTimeout(function () { // <-- Simulate network congestion, remove setTimeout from production!
|
||||
var el, li, i;
|
||||
el = document.getElementById('thelist');
|
||||
|
||||
for (i=0; i<3; i++) {
|
||||
li = document.createElement('li');
|
||||
li.innerText = 'Generated row ' + (++generatedCount);
|
||||
el.appendChild(li, el.childNodes[0]);
|
||||
}
|
||||
|
||||
myScroll.refresh(); // Remember to refresh when contents are loaded (ie: on ajax completion)
|
||||
}, 1000); // <-- Simulate network congestion, remove setTimeout from production!
|
||||
}
|
||||
|
||||
function loaded() {
|
||||
pullDownEl = document.getElementById('pullDown');
|
||||
pullDownOffset = pullDownEl.offsetHeight;
|
||||
pullUpEl = document.getElementById('pullUp');
|
||||
pullUpOffset = pullUpEl.offsetHeight;
|
||||
|
||||
myScroll = new iScroll('wrapper', {
|
||||
useTransition: true,
|
||||
topOffset: pullDownOffset,
|
||||
onRefresh: function () {
|
||||
if (pullDownEl.className.match('loading')) {
|
||||
pullDownEl.className = '';
|
||||
pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Pull down to refresh...';
|
||||
} else if (pullUpEl.className.match('loading')) {
|
||||
pullUpEl.className = '';
|
||||
pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Pull up to load more...';
|
||||
}
|
||||
},
|
||||
onScrollMove: function () {
|
||||
if (this.y > 5 && !pullDownEl.className.match('flip')) {
|
||||
pullDownEl.className = 'flip';
|
||||
pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Release to refresh...';
|
||||
this.minScrollY = 0;
|
||||
} else if (this.y < 5 && pullDownEl.className.match('flip')) {
|
||||
pullDownEl.className = '';
|
||||
pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Pull down to refresh...';
|
||||
this.minScrollY = -pullDownOffset;
|
||||
} else if (this.y < (this.maxScrollY - 5) && !pullUpEl.className.match('flip')) {
|
||||
pullUpEl.className = 'flip';
|
||||
pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Release to refresh...';
|
||||
this.maxScrollY = this.maxScrollY;
|
||||
} else if (this.y > (this.maxScrollY + 5) && pullUpEl.className.match('flip')) {
|
||||
pullUpEl.className = '';
|
||||
pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Pull up to load more...';
|
||||
this.maxScrollY = pullUpOffset;
|
||||
}
|
||||
},
|
||||
onScrollEnd: function () {
|
||||
if (pullDownEl.className.match('flip')) {
|
||||
pullDownEl.className = 'loading';
|
||||
pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Loading...';
|
||||
pullDownAction(); // Execute custom function (ajax call?)
|
||||
} else if (pullUpEl.className.match('flip')) {
|
||||
pullUpEl.className = 'loading';
|
||||
pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Loading...';
|
||||
pullUpAction(); // Execute custom function (ajax call?)
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
setTimeout(function () { document.getElementById('wrapper').style.left = '0'; }, 800);
|
||||
}
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
body,ul,li {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
}
|
||||
|
||||
#header {
|
||||
position:absolute; z-index:2;
|
||||
top:0; left:0;
|
||||
width:100%;
|
||||
height:45px;
|
||||
line-height:45px;
|
||||
background-color:#d51875;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
|
||||
background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
padding:0;
|
||||
color:#eee;
|
||||
font-size:20px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#header a {
|
||||
color:#f3f3f3;
|
||||
text-decoration:none;
|
||||
font-weight:bold;
|
||||
text-shadow:0 -1px 0 rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
#footer {
|
||||
position:absolute; z-index:2;
|
||||
bottom:0; left:0;
|
||||
width:100%;
|
||||
height:48px;
|
||||
background-color:#222;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
|
||||
background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
|
||||
background-image:-o-linear-gradient(top, #999, #666 2%, #222);
|
||||
padding:0;
|
||||
border-top:1px solid #444;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
position:absolute; z-index:1;
|
||||
top:45px; bottom:48px; left:-9999px;
|
||||
width:100%;
|
||||
background:#aaa;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#scroller {
|
||||
position:absolute; z-index:1;
|
||||
/* -webkit-touch-callout:none;*/
|
||||
-webkit-tap-highlight-color:rgba(0,0,0,0);
|
||||
width:100%;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#scroller ul {
|
||||
list-style:none;
|
||||
padding:0;
|
||||
margin:0;
|
||||
width:100%;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
#scroller li {
|
||||
padding:0 10px;
|
||||
height:40px;
|
||||
line-height:40px;
|
||||
border-bottom:1px solid #ccc;
|
||||
border-top:1px solid #fff;
|
||||
background-color:#fafafa;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
#myFrame {
|
||||
position:absolute;
|
||||
top:0; left:0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Pull down styles
|
||||
*
|
||||
*/
|
||||
#pullDown, #pullUp {
|
||||
background:#fff;
|
||||
height:40px;
|
||||
line-height:40px;
|
||||
padding:5px 10px;
|
||||
border-bottom:1px solid #ccc;
|
||||
font-weight:bold;
|
||||
font-size:14px;
|
||||
color:#888;
|
||||
}
|
||||
#pullDown .pullDownIcon, #pullUp .pullUpIcon {
|
||||
display:block; float:left;
|
||||
width:40px; height:40px;
|
||||
background:url(pull-icon@2x.png) 0 0 no-repeat;
|
||||
-webkit-background-size:40px 80px; background-size:40px 80px;
|
||||
-webkit-transition-property:-webkit-transform;
|
||||
-webkit-transition-duration:250ms;
|
||||
}
|
||||
#pullDown .pullDownIcon {
|
||||
-webkit-transform:rotate(0deg) translateZ(0);
|
||||
}
|
||||
#pullUp .pullUpIcon {
|
||||
-webkit-transform:rotate(-180deg) translateZ(0);
|
||||
}
|
||||
|
||||
#pullDown.flip .pullDownIcon {
|
||||
-webkit-transform:rotate(-180deg) translateZ(0);
|
||||
}
|
||||
|
||||
#pullUp.flip .pullUpIcon {
|
||||
-webkit-transform:rotate(0deg) translateZ(0);
|
||||
}
|
||||
|
||||
#pullDown.loading .pullDownIcon, #pullUp.loading .pullUpIcon {
|
||||
background-position:0 100%;
|
||||
-webkit-transform:rotate(0deg) translateZ(0);
|
||||
-webkit-transition-duration:0ms;
|
||||
|
||||
-webkit-animation-name:loading;
|
||||
-webkit-animation-duration:2s;
|
||||
-webkit-animation-iteration-count:infinite;
|
||||
-webkit-animation-timing-function:linear;
|
||||
}
|
||||
|
||||
@-webkit-keyframes loading {
|
||||
from { -webkit-transform:rotate(0deg) translateZ(0); }
|
||||
to { -webkit-transform:rotate(360deg) translateZ(0); }
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
|
||||
<div id="wrapper">
|
||||
<div id="scroller">
|
||||
<div id="pullDown">
|
||||
<span class="pullDownIcon"></span><span class="pullDownLabel">Pull down to refresh...</span>
|
||||
</div>
|
||||
|
||||
<ul id="thelist">
|
||||
<li>Pretty row 1</li>
|
||||
<li>Pretty row 2</li>
|
||||
<li>Pretty row 3</li>
|
||||
<li>Pretty row 4</li>
|
||||
<li>Pretty row 5</li>
|
||||
<li>Pretty row 6</li>
|
||||
<li>Pretty row 7</li>
|
||||
<li>Pretty row 8</li>
|
||||
<li>Pretty row 9</li>
|
||||
<li>Pretty row 10</li>
|
||||
<li>Pretty row 11</li>
|
||||
<li>Pretty row 12</li>
|
||||
<li>Pretty row 13</li>
|
||||
<li>Pretty row 14</li>
|
||||
<li>Pretty row 15</li>
|
||||
<li>Pretty row 16</li>
|
||||
<li>Pretty row 17</li>
|
||||
<li>Pretty row 18</li>
|
||||
<li>Pretty row 19</li>
|
||||
<li>Pretty row 20</li>
|
||||
<li>Pretty row 21</li>
|
||||
<li>Pretty row 22</li>
|
||||
<li>Pretty row 23</li>
|
||||
<li>Pretty row 24</li>
|
||||
<li>Pretty row 25</li>
|
||||
<li>Pretty row 26</li>
|
||||
<li>Pretty row 27</li>
|
||||
<li>Pretty row 28</li>
|
||||
<li>Pretty row 29</li>
|
||||
<li>Pretty row 30</li>
|
||||
<li>Pretty row 31</li>
|
||||
<li>Pretty row 32</li>
|
||||
<li>Pretty row 33</li>
|
||||
<li>Pretty row 34</li>
|
||||
<li>Pretty row 35</li>
|
||||
<li>Pretty row 36</li>
|
||||
<li>Pretty row 37</li>
|
||||
<li>Pretty row 38</li>
|
||||
<li>Pretty row 39</li>
|
||||
<li>Pretty row 40</li>
|
||||
</ul>
|
||||
<div id="pullUp">
|
||||
<span class="pullUpIcon"></span><span class="pullUpLabel">Pull up to refresh...</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="footer"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
BIN
components/iscroll/examples/pull-to-refresh/pull-icon@2x.png
Normal file
After Width: | Height: | Size: 850 B |
189
components/iscroll/examples/simple/index.html
Normal file
|
@ -0,0 +1,189 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: simple</title>
|
||||
|
||||
<script type="text/javascript" src="../../src/iscroll.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var myScroll;
|
||||
function loaded() {
|
||||
myScroll = new iScroll('wrapper');
|
||||
}
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
|
||||
/* * * * * * * *
|
||||
*
|
||||
* Use this for high compatibility (iDevice + Android)
|
||||
*
|
||||
*/
|
||||
document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);
|
||||
/*
|
||||
* * * * * * * */
|
||||
|
||||
|
||||
/* * * * * * * *
|
||||
*
|
||||
* Use this for iDevice only
|
||||
*
|
||||
*/
|
||||
//document.addEventListener('DOMContentLoaded', loaded, false);
|
||||
/*
|
||||
* * * * * * * */
|
||||
|
||||
|
||||
/* * * * * * * *
|
||||
*
|
||||
* Use this if nothing else works
|
||||
*
|
||||
*/
|
||||
//window.addEventListener('load', setTimeout(function () { loaded(); }, 200), false);
|
||||
/*
|
||||
* * * * * * * */
|
||||
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
body,ul,li {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
}
|
||||
|
||||
#header {
|
||||
position:absolute; z-index:2;
|
||||
top:0; left:0;
|
||||
width:100%;
|
||||
height:45px;
|
||||
line-height:45px;
|
||||
background-color:#d51875;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
|
||||
background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
padding:0;
|
||||
color:#eee;
|
||||
font-size:20px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#header a {
|
||||
color:#f3f3f3;
|
||||
text-decoration:none;
|
||||
font-weight:bold;
|
||||
text-shadow:0 -1px 0 rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
#footer {
|
||||
position:absolute; z-index:2;
|
||||
bottom:0; left:0;
|
||||
width:100%;
|
||||
height:48px;
|
||||
background-color:#222;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
|
||||
background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
|
||||
background-image:-o-linear-gradient(top, #999, #666 2%, #222);
|
||||
padding:0;
|
||||
border-top:1px solid #444;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
position:absolute; z-index:1;
|
||||
top:45px; bottom:48px; left:0;
|
||||
width:100%;
|
||||
background:#aaa;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#scroller {
|
||||
position:absolute; z-index:1;
|
||||
/* -webkit-touch-callout:none;*/
|
||||
-webkit-tap-highlight-color:rgba(0,0,0,0);
|
||||
width:100%;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#scroller ul {
|
||||
list-style:none;
|
||||
padding:0;
|
||||
margin:0;
|
||||
width:100%;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
#scroller li {
|
||||
padding:0 10px;
|
||||
height:40px;
|
||||
line-height:40px;
|
||||
border-bottom:1px solid #ccc;
|
||||
border-top:1px solid #fff;
|
||||
background-color:#fafafa;
|
||||
font-size:14px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
|
||||
<div id="wrapper">
|
||||
<div id="scroller">
|
||||
<ul id="thelist">
|
||||
<li>Pretty row 1</li>
|
||||
<li>Pretty row 2</li>
|
||||
<li>Pretty row 3</li>
|
||||
<li>Pretty row 4</li>
|
||||
<li>Pretty row 5</li>
|
||||
<li>Pretty row 6</li>
|
||||
<li>Pretty row 7</li>
|
||||
<li>Pretty row 8</li>
|
||||
<li>Pretty row 9</li>
|
||||
<li>Pretty row 10</li>
|
||||
<li>Pretty row 11</li>
|
||||
<li>Pretty row 12</li>
|
||||
<li>Pretty row 13</li>
|
||||
<li>Pretty row 14</li>
|
||||
<li>Pretty row 15</li>
|
||||
<li>Pretty row 16</li>
|
||||
<li>Pretty row 17</li>
|
||||
<li>Pretty row 18</li>
|
||||
<li>Pretty row 19</li>
|
||||
<li>Pretty row 20</li>
|
||||
<li>Pretty row 21</li>
|
||||
<li>Pretty row 22</li>
|
||||
<li>Pretty row 23</li>
|
||||
<li>Pretty row 24</li>
|
||||
<li>Pretty row 25</li>
|
||||
<li>Pretty row 26</li>
|
||||
<li>Pretty row 27</li>
|
||||
<li>Pretty row 28</li>
|
||||
<li>Pretty row 29</li>
|
||||
<li>Pretty row 30</li>
|
||||
<li>Pretty row 31</li>
|
||||
<li>Pretty row 32</li>
|
||||
<li>Pretty row 33</li>
|
||||
<li>Pretty row 34</li>
|
||||
<li>Pretty row 35</li>
|
||||
<li>Pretty row 36</li>
|
||||
<li>Pretty row 37</li>
|
||||
<li>Pretty row 38</li>
|
||||
<li>Pretty row 39</li>
|
||||
<li>Pretty row 40</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="footer"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
133
components/iscroll/examples/snap-to-element/index.html
Normal file
|
@ -0,0 +1,133 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: Snap to element</title>
|
||||
|
||||
<script type="text/javascript" src="../../src/iscroll.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var myScroll;
|
||||
|
||||
function loaded() {
|
||||
myScroll = new iScroll('wrapper', {
|
||||
snap: 'li',
|
||||
momentum: false,
|
||||
hScrollbar: false,
|
||||
vScrollbar: false
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', loaded, false);
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
body,ul,li {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
}
|
||||
|
||||
#header {
|
||||
position:absolute;
|
||||
top:0; left:0;
|
||||
width:100%;
|
||||
height:45px;
|
||||
line-height:45px;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
|
||||
background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
padding:0;
|
||||
color:#eee;
|
||||
font-size:20px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#header a {
|
||||
color:#f3f3f3;
|
||||
text-decoration:none;
|
||||
font-weight:bold;
|
||||
text-shadow:0 -1px 0 rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
position:absolute; z-index:1;
|
||||
top:45px; bottom:0; left:0;
|
||||
width:100%;
|
||||
overflow:auto;
|
||||
background:#eee;
|
||||
}
|
||||
|
||||
#scroller {
|
||||
width:800px;
|
||||
float:left;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#scroller ul {
|
||||
list-style:none;
|
||||
display:block;
|
||||
float:left;
|
||||
width:100%;
|
||||
height:100%;
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:1px solid #aaa;
|
||||
}
|
||||
|
||||
#scroller li {
|
||||
display:block; float:left;
|
||||
width:78px; height:78px; line-height:78px;
|
||||
text-align:center;
|
||||
border:1px solid #aaa;
|
||||
background:#ccc;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
|
||||
|
||||
<div id="wrapper">
|
||||
<div id="scroller">
|
||||
<ul id="thelist">
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
<li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li> <li>cell</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
186
components/iscroll/examples/use-transition/index.html
Normal file
|
@ -0,0 +1,186 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: Use transition</title>
|
||||
|
||||
<script type="text/javascript" src="../../src/iscroll.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var scroll1, scroll2;
|
||||
function loaded() {
|
||||
scroll1 = new iScroll('standard');
|
||||
scroll2 = new iScroll('transition', { useTransition:true });
|
||||
}
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
document.addEventListener('DOMContentLoaded', loaded, false);
|
||||
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
ul,li {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
padding:20px;
|
||||
}
|
||||
|
||||
#standard, #transition {
|
||||
position:relative; z-index:1;
|
||||
display:block; float:left;
|
||||
width:300px; height:400px;
|
||||
background:#aaa;
|
||||
overflow:auto;
|
||||
border:1px solid #aaa;
|
||||
}
|
||||
|
||||
#standard {
|
||||
margin-right:20px;
|
||||
}
|
||||
|
||||
.scroller {
|
||||
position:absolute; z-index:1;
|
||||
/* -webkit-touch-callout:none;*/
|
||||
-webkit-tap-highlight-color:rgba(0,0,0,0);
|
||||
width:100%;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
.scroller ul {
|
||||
list-style:none;
|
||||
padding:0;
|
||||
margin:0;
|
||||
width:100%;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
.scroller li {
|
||||
padding:0 10px;
|
||||
height:40px;
|
||||
line-height:40px;
|
||||
border-bottom:1px solid #ccc;
|
||||
border-top:1px solid #fff;
|
||||
background-color:#fafafa;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
#myFrame {
|
||||
position:absolute;
|
||||
top:0; left:0;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Open this page on iPad to test the difference between standard iScroll and iScroll in "transition mode"</h1>
|
||||
|
||||
<div id="standard">
|
||||
<div class="scroller">
|
||||
<ul>
|
||||
<li><strong>Standard iScroll</strong></li>
|
||||
<li>Pretty row 2</li>
|
||||
<li>Pretty row 3</li>
|
||||
<li>Pretty row 4</li>
|
||||
<li>Pretty row 5</li>
|
||||
<li>Pretty row 6</li>
|
||||
<li>Pretty row 7</li>
|
||||
<li>Pretty row 8</li>
|
||||
<li>Pretty row 9</li>
|
||||
<li>Pretty row 10</li>
|
||||
<li><strong>Standard iScroll</strong></li>
|
||||
<li>Pretty row 12</li>
|
||||
<li>Pretty row 13</li>
|
||||
<li>Pretty row 14</li>
|
||||
<li>Pretty row 15</li>
|
||||
<li>Pretty row 16</li>
|
||||
<li>Pretty row 17</li>
|
||||
<li>Pretty row 18</li>
|
||||
<li>Pretty row 19</li>
|
||||
<li>Pretty row 20</li>
|
||||
<li><strong>Standard iScroll</strong></li>
|
||||
<li>Pretty row 22</li>
|
||||
<li>Pretty row 23</li>
|
||||
<li>Pretty row 24</li>
|
||||
<li>Pretty row 25</li>
|
||||
<li>Pretty row 26</li>
|
||||
<li>Pretty row 27</li>
|
||||
<li>Pretty row 28</li>
|
||||
<li>Pretty row 29</li>
|
||||
<li>Pretty row 30</li>
|
||||
<li><strong>Standard iScroll</strong></li>
|
||||
<li>Pretty row 32</li>
|
||||
<li>Pretty row 33</li>
|
||||
<li>Pretty row 34</li>
|
||||
<li>Pretty row 35</li>
|
||||
<li>Pretty row 36</li>
|
||||
<li>Pretty row 37</li>
|
||||
<li>Pretty row 38</li>
|
||||
<li>Pretty row 39</li>
|
||||
<li>Pretty row 40</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="transition">
|
||||
<div class="scroller">
|
||||
<ul>
|
||||
<li><strong>Transition mode</strong></li>
|
||||
<li>Pretty row 2</li>
|
||||
<li>Pretty row 3</li>
|
||||
<li>Pretty row 4</li>
|
||||
<li>Pretty row 5</li>
|
||||
<li>Pretty row 6</li>
|
||||
<li>Pretty row 7</li>
|
||||
<li>Pretty row 8</li>
|
||||
<li>Pretty row 9</li>
|
||||
<li>Pretty row 10</li>
|
||||
<li><strong>Transition mode</strong></li>
|
||||
<li>Pretty row 12</li>
|
||||
<li>Pretty row 13</li>
|
||||
<li>Pretty row 14</li>
|
||||
<li>Pretty row 15</li>
|
||||
<li>Pretty row 16</li>
|
||||
<li>Pretty row 17</li>
|
||||
<li>Pretty row 18</li>
|
||||
<li>Pretty row 19</li>
|
||||
<li>Pretty row 20</li>
|
||||
<li><strong>Transition mode</strong></li>
|
||||
<li>Pretty row 22</li>
|
||||
<li>Pretty row 23</li>
|
||||
<li>Pretty row 24</li>
|
||||
<li>Pretty row 25</li>
|
||||
<li>Pretty row 26</li>
|
||||
<li>Pretty row 27</li>
|
||||
<li>Pretty row 28</li>
|
||||
<li>Pretty row 29</li>
|
||||
<li>Pretty row 30</li>
|
||||
<li><strong>Transition mode</strong></li>
|
||||
<li>Pretty row 32</li>
|
||||
<li>Pretty row 33</li>
|
||||
<li>Pretty row 34</li>
|
||||
<li>Pretty row 35</li>
|
||||
<li>Pretty row 36</li>
|
||||
<li>Pretty row 37</li>
|
||||
<li>Pretty row 38</li>
|
||||
<li>Pretty row 39</li>
|
||||
<li>Pretty row 40</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
118
components/iscroll/examples/zoom/index.html
Normal file
|
@ -0,0 +1,118 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<title>iScroll demo: zoom</title>
|
||||
|
||||
<script type="application/javascript" src="../../src/iscroll.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var myScroll;
|
||||
function loaded() {
|
||||
myScroll = new iScroll('wrapper', { zoom:true });
|
||||
}
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
|
||||
document.addEventListener('DOMContentLoaded', loaded, false);
|
||||
|
||||
</script>
|
||||
|
||||
<style type="text/css" media="all">
|
||||
body,ul,li,p {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size:12px;
|
||||
-webkit-user-select:none;
|
||||
-webkit-text-size-adjust:none;
|
||||
font-family:helvetica;
|
||||
}
|
||||
|
||||
#header {
|
||||
position:absolute;
|
||||
top:0; left:0;
|
||||
width:100%;
|
||||
height:45px;
|
||||
line-height:45px;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));
|
||||
background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);
|
||||
padding:0;
|
||||
color:#eee;
|
||||
font-size:20px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#header a {
|
||||
color:#f3f3f3;
|
||||
text-decoration:none;
|
||||
font-weight:bold;
|
||||
text-shadow:0 -1px 0 rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
#footer {
|
||||
position:absolute;
|
||||
bottom:0; left:0;
|
||||
width:100%;
|
||||
height:48px;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));
|
||||
background-image:-moz-linear-gradient(top, #999, #666 2%, #222);
|
||||
background-image:-o-linear-gradient(top, #999, #666 2%, #222);
|
||||
padding:0;
|
||||
border-top:1px solid #444;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
position:absolute; z-index:1;
|
||||
top:45px; bottom:48px; left:0;
|
||||
width:100%;
|
||||
background:#aaa;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#scroller {
|
||||
position:relative;
|
||||
/* -webkit-touch-callout:none;*/
|
||||
-webkit-tap-highlight-color:rgba(0,0,0,0);
|
||||
|
||||
width:640px;
|
||||
padding:0;
|
||||
background:#fff;
|
||||
}
|
||||
|
||||
p {
|
||||
display:block;
|
||||
width:624px;
|
||||
margin-bottom:1em;
|
||||
padding:8px;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
p img {
|
||||
margin:4px 8px;
|
||||
-webkit-transform:translate3d(0,0,0);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
|
||||
<div id="wrapper">
|
||||
<div id="scroller">
|
||||
<p><img src="iscroll.jpg" width="100" height="122" alt="iscroll" style="float:left">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
|
||||
<p><img src="iscroll.jpg" width="100" height="122" alt="iscroll" style="float:right">At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
BIN
components/iscroll/examples/zoom/iscroll.jpg
Normal file
After Width: | Height: | Size: 9.8 KiB |
22
components/iscroll/license.txt
Normal file
|
@ -0,0 +1,22 @@
|
|||
Copyright (c) 2012 Matteo Spinelli, http://cubiq.org/
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
14
components/iscroll/package.json
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"name": "iscroll"
|
||||
, "description": "smooth scrolling for mobile webkit"
|
||||
, "version": "4.2.5"
|
||||
, "homepage": "http://cubiq.org/iscroll-4"
|
||||
, "author": "Matteo Spinelli <matteo@cubiq.org> (http://cubiq.org)"
|
||||
, "keywords": ["ender", "iscroll", "scrolling", "webkit", "iphone", "android"]
|
||||
, "main": "./src/iscroll.js"
|
||||
, "ender": "./src/ender.js"
|
||||
, "repository": {
|
||||
"type": "git"
|
||||
, "url": "https://github.com/cubiq/iscroll.git"
|
||||
}
|
||||
}
|
7
components/iscroll/src/ender.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
!function ($, iScroll) {
|
||||
$.ender({
|
||||
iScroll: function (options) {
|
||||
return new iScroll(this[0], options)
|
||||
}
|
||||
}, true)
|
||||
}(ender, require('iscroll').iScroll)
|
594
components/iscroll/src/iscroll-lite.js
Normal file
|
@ -0,0 +1,594 @@
|
|||
/*!
|
||||
* iScroll Lite base on iScroll v4.1.6 ~ Copyright (c) 2011 Matteo Spinelli, http://cubiq.org
|
||||
* Released under MIT license, http://cubiq.org/license
|
||||
*/
|
||||
|
||||
(function(){
|
||||
var m = Math,
|
||||
mround = function (r) { return r >> 0; },
|
||||
vendor = (/webkit/i).test(navigator.appVersion) ? 'webkit' :
|
||||
(/firefox/i).test(navigator.userAgent) ? 'Moz' :
|
||||
'opera' in window ? 'O' : '',
|
||||
|
||||
// Browser capabilities
|
||||
isAndroid = (/android/gi).test(navigator.appVersion),
|
||||
isIDevice = (/iphone|ipad/gi).test(navigator.appVersion),
|
||||
isPlaybook = (/playbook/gi).test(navigator.appVersion),
|
||||
isTouchPad = (/hp-tablet/gi).test(navigator.appVersion),
|
||||
|
||||
has3d = 'WebKitCSSMatrix' in window && 'm11' in new WebKitCSSMatrix(),
|
||||
hasTouch = 'ontouchstart' in window && !isTouchPad,
|
||||
hasTransform = vendor + 'Transform' in document.documentElement.style,
|
||||
hasTransitionEnd = isIDevice || isPlaybook,
|
||||
|
||||
nextFrame = (function() {
|
||||
return window.requestAnimationFrame
|
||||
|| window.webkitRequestAnimationFrame
|
||||
|| window.mozRequestAnimationFrame
|
||||
|| window.oRequestAnimationFrame
|
||||
|| window.msRequestAnimationFrame
|
||||
|| function(callback) { return setTimeout(callback, 17); }
|
||||
})(),
|
||||
cancelFrame = (function () {
|
||||
return window.cancelRequestAnimationFrame
|
||||
|| window.webkitCancelAnimationFrame
|
||||
|| window.webkitCancelRequestAnimationFrame
|
||||
|| window.mozCancelRequestAnimationFrame
|
||||
|| window.oCancelRequestAnimationFrame
|
||||
|| window.msCancelRequestAnimationFrame
|
||||
|| clearTimeout
|
||||
})(),
|
||||
|
||||
// Events
|
||||
RESIZE_EV = 'onorientationchange' in window ? 'orientationchange' : 'resize',
|
||||
START_EV = hasTouch ? 'touchstart' : 'mousedown',
|
||||
MOVE_EV = hasTouch ? 'touchmove' : 'mousemove',
|
||||
END_EV = hasTouch ? 'touchend' : 'mouseup',
|
||||
CANCEL_EV = hasTouch ? 'touchcancel' : 'mouseup',
|
||||
|
||||
// Helpers
|
||||
trnOpen = 'translate' + (has3d ? '3d(' : '('),
|
||||
trnClose = has3d ? ',0)' : ')',
|
||||
|
||||
// Constructor
|
||||
iScroll = function (el, options) {
|
||||
var that = this,
|
||||
doc = document,
|
||||
i;
|
||||
|
||||
that.wrapper = typeof el == 'object' ? el : doc.getElementById(el);
|
||||
that.wrapper.style.overflow = 'hidden';
|
||||
that.scroller = that.wrapper.children[0];
|
||||
|
||||
// Default options
|
||||
that.options = {
|
||||
hScroll: true,
|
||||
vScroll: true,
|
||||
x: 0,
|
||||
y: 0,
|
||||
bounce: true,
|
||||
bounceLock: false,
|
||||
momentum: true,
|
||||
lockDirection: true,
|
||||
useTransform: true,
|
||||
useTransition: false,
|
||||
|
||||
// Events
|
||||
onRefresh: null,
|
||||
onBeforeScrollStart: function (e) { e.preventDefault(); },
|
||||
onScrollStart: null,
|
||||
onBeforeScrollMove: null,
|
||||
onScrollMove: null,
|
||||
onBeforeScrollEnd: null,
|
||||
onScrollEnd: null,
|
||||
onTouchEnd: null,
|
||||
onDestroy: null
|
||||
};
|
||||
|
||||
// User defined options
|
||||
for (i in options) that.options[i] = options[i];
|
||||
|
||||
// Set starting position
|
||||
that.x = that.options.x;
|
||||
that.y = that.options.y;
|
||||
|
||||
// Normalize options
|
||||
that.options.useTransform = hasTransform ? that.options.useTransform : false;
|
||||
that.options.hScrollbar = that.options.hScroll && that.options.hScrollbar;
|
||||
that.options.vScrollbar = that.options.vScroll && that.options.vScrollbar;
|
||||
that.options.useTransition = hasTransitionEnd && that.options.useTransition;
|
||||
|
||||
// Set some default styles
|
||||
that.scroller.style[vendor + 'TransitionProperty'] = that.options.useTransform ? '-' + vendor.toLowerCase() + '-transform' : 'top left';
|
||||
that.scroller.style[vendor + 'TransitionDuration'] = '0';
|
||||
that.scroller.style[vendor + 'TransformOrigin'] = '0 0';
|
||||
if (that.options.useTransition) that.scroller.style[vendor + 'TransitionTimingFunction'] = 'cubic-bezier(0.33,0.66,0.66,1)';
|
||||
|
||||
if (that.options.useTransform) that.scroller.style[vendor + 'Transform'] = trnOpen + that.x + 'px,' + that.y + 'px' + trnClose;
|
||||
else that.scroller.style.cssText += ';position:absolute;top:' + that.y + 'px;left:' + that.x + 'px';
|
||||
|
||||
that.refresh();
|
||||
|
||||
that._bind(RESIZE_EV, window);
|
||||
that._bind(START_EV);
|
||||
if (!hasTouch) that._bind('mouseout', that.wrapper);
|
||||
};
|
||||
|
||||
// Prototype
|
||||
iScroll.prototype = {
|
||||
enabled: true,
|
||||
x: 0,
|
||||
y: 0,
|
||||
steps: [],
|
||||
scale: 1,
|
||||
|
||||
handleEvent: function (e) {
|
||||
var that = this;
|
||||
switch(e.type) {
|
||||
case START_EV:
|
||||
if (!hasTouch && e.button !== 0) return;
|
||||
that._start(e);
|
||||
break;
|
||||
case MOVE_EV: that._move(e); break;
|
||||
case END_EV:
|
||||
case CANCEL_EV: that._end(e); break;
|
||||
case RESIZE_EV: that._resize(); break;
|
||||
case 'mouseout': that._mouseout(e); break;
|
||||
case 'webkitTransitionEnd': that._transitionEnd(e); break;
|
||||
}
|
||||
},
|
||||
|
||||
_resize: function () {
|
||||
this.refresh();
|
||||
},
|
||||
|
||||
_pos: function (x, y) {
|
||||
x = this.hScroll ? x : 0;
|
||||
y = this.vScroll ? y : 0;
|
||||
|
||||
if (this.options.useTransform) {
|
||||
this.scroller.style[vendor + 'Transform'] = trnOpen + x + 'px,' + y + 'px' + trnClose + ' scale(' + this.scale + ')';
|
||||
} else {
|
||||
x = mround(x);
|
||||
y = mround(y);
|
||||
this.scroller.style.left = x + 'px';
|
||||
this.scroller.style.top = y + 'px';
|
||||
}
|
||||
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
},
|
||||
|
||||
_start: function (e) {
|
||||
var that = this,
|
||||
point = hasTouch ? e.touches[0] : e,
|
||||
matrix, x, y;
|
||||
|
||||
if (!that.enabled) return;
|
||||
|
||||
if (that.options.onBeforeScrollStart) that.options.onBeforeScrollStart.call(that, e);
|
||||
|
||||
if (that.options.useTransition) that._transitionTime(0);
|
||||
|
||||
that.moved = false;
|
||||
that.animating = false;
|
||||
that.zoomed = false;
|
||||
that.distX = 0;
|
||||
that.distY = 0;
|
||||
that.absDistX = 0;
|
||||
that.absDistY = 0;
|
||||
that.dirX = 0;
|
||||
that.dirY = 0;
|
||||
|
||||
if (that.options.momentum) {
|
||||
if (that.options.useTransform) {
|
||||
// Very lame general purpose alternative to CSSMatrix
|
||||
matrix = getComputedStyle(that.scroller, null)[vendor + 'Transform'].replace(/[^0-9-.,]/g, '').split(',');
|
||||
x = matrix[4] * 1;
|
||||
y = matrix[5] * 1;
|
||||
} else {
|
||||
x = getComputedStyle(that.scroller, null).left.replace(/[^0-9-]/g, '') * 1;
|
||||
y = getComputedStyle(that.scroller, null).top.replace(/[^0-9-]/g, '') * 1;
|
||||
}
|
||||
|
||||
if (x != that.x || y != that.y) {
|
||||
if (that.options.useTransition) that._unbind('webkitTransitionEnd');
|
||||
else cancelFrame(that.aniTime);
|
||||
that.steps = [];
|
||||
that._pos(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
that.startX = that.x;
|
||||
that.startY = that.y;
|
||||
that.pointX = point.pageX;
|
||||
that.pointY = point.pageY;
|
||||
|
||||
that.startTime = e.timeStamp || Date.now();
|
||||
|
||||
if (that.options.onScrollStart) that.options.onScrollStart.call(that, e);
|
||||
|
||||
that._bind(MOVE_EV);
|
||||
that._bind(END_EV);
|
||||
that._bind(CANCEL_EV);
|
||||
},
|
||||
|
||||
_move: function (e) {
|
||||
var that = this,
|
||||
point = hasTouch ? e.touches[0] : e,
|
||||
deltaX = point.pageX - that.pointX,
|
||||
deltaY = point.pageY - that.pointY,
|
||||
newX = that.x + deltaX,
|
||||
newY = that.y + deltaY,
|
||||
timestamp = e.timeStamp || Date.now();
|
||||
|
||||
if (that.options.onBeforeScrollMove) that.options.onBeforeScrollMove.call(that, e);
|
||||
|
||||
that.pointX = point.pageX;
|
||||
that.pointY = point.pageY;
|
||||
|
||||
// Slow down if outside of the boundaries
|
||||
if (newX > 0 || newX < that.maxScrollX) {
|
||||
newX = that.options.bounce ? that.x + (deltaX / 2) : newX >= 0 || that.maxScrollX >= 0 ? 0 : that.maxScrollX;
|
||||
}
|
||||
if (newY > 0 || newY < that.maxScrollY) {
|
||||
newY = that.options.bounce ? that.y + (deltaY / 2) : newY >= 0 || that.maxScrollY >= 0 ? 0 : that.maxScrollY;
|
||||
}
|
||||
|
||||
that.distX += deltaX;
|
||||
that.distY += deltaY;
|
||||
that.absDistX = m.abs(that.distX);
|
||||
that.absDistY = m.abs(that.distY);
|
||||
|
||||
if (that.absDistX < 6 && that.absDistY < 6) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Lock direction
|
||||
if (that.options.lockDirection) {
|
||||
if (that.absDistX > that.absDistY + 5) {
|
||||
newY = that.y;
|
||||
deltaY = 0;
|
||||
} else if (that.absDistY > that.absDistX + 5) {
|
||||
newX = that.x;
|
||||
deltaX = 0;
|
||||
}
|
||||
}
|
||||
|
||||
that.moved = true;
|
||||
that._pos(newX, newY);
|
||||
that.dirX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;
|
||||
that.dirY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;
|
||||
|
||||
if (timestamp - that.startTime > 300) {
|
||||
that.startTime = timestamp;
|
||||
that.startX = that.x;
|
||||
that.startY = that.y;
|
||||
}
|
||||
|
||||
if (that.options.onScrollMove) that.options.onScrollMove.call(that, e);
|
||||
},
|
||||
|
||||
_end: function (e) {
|
||||
if (hasTouch && e.touches.length != 0) return;
|
||||
|
||||
var that = this,
|
||||
point = hasTouch ? e.changedTouches[0] : e,
|
||||
target, ev,
|
||||
momentumX = { dist:0, time:0 },
|
||||
momentumY = { dist:0, time:0 },
|
||||
duration = (e.timeStamp || Date.now()) - that.startTime,
|
||||
newPosX = that.x,
|
||||
newPosY = that.y,
|
||||
newDuration;
|
||||
|
||||
that._unbind(MOVE_EV);
|
||||
that._unbind(END_EV);
|
||||
that._unbind(CANCEL_EV);
|
||||
|
||||
if (that.options.onBeforeScrollEnd) that.options.onBeforeScrollEnd.call(that, e);
|
||||
|
||||
if (!that.moved) {
|
||||
if (hasTouch) {
|
||||
// Find the last touched element
|
||||
target = point.target;
|
||||
while (target.nodeType != 1) target = target.parentNode;
|
||||
|
||||
if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA') {
|
||||
ev = document.createEvent('MouseEvents');
|
||||
ev.initMouseEvent('click', true, true, e.view, 1,
|
||||
point.screenX, point.screenY, point.clientX, point.clientY,
|
||||
e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
|
||||
0, null);
|
||||
ev._fake = true;
|
||||
target.dispatchEvent(ev);
|
||||
}
|
||||
}
|
||||
|
||||
that._resetPos(200);
|
||||
|
||||
if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
|
||||
return;
|
||||
}
|
||||
|
||||
if (duration < 300 && that.options.momentum) {
|
||||
momentumX = newPosX ? that._momentum(newPosX - that.startX, duration, -that.x, that.scrollerW - that.wrapperW + that.x, that.options.bounce ? that.wrapperW : 0) : momentumX;
|
||||
momentumY = newPosY ? that._momentum(newPosY - that.startY, duration, -that.y, (that.maxScrollY < 0 ? that.scrollerH - that.wrapperH + that.y : 0), that.options.bounce ? that.wrapperH : 0) : momentumY;
|
||||
|
||||
newPosX = that.x + momentumX.dist;
|
||||
newPosY = that.y + momentumY.dist;
|
||||
|
||||
if ((that.x > 0 && newPosX > 0) || (that.x < that.maxScrollX && newPosX < that.maxScrollX)) momentumX = { dist:0, time:0 };
|
||||
if ((that.y > 0 && newPosY > 0) || (that.y < that.maxScrollY && newPosY < that.maxScrollY)) momentumY = { dist:0, time:0 };
|
||||
}
|
||||
|
||||
if (momentumX.dist || momentumY.dist) {
|
||||
newDuration = m.max(m.max(momentumX.time, momentumY.time), 10);
|
||||
|
||||
that.scrollTo(mround(newPosX), mround(newPosY), newDuration);
|
||||
|
||||
if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
|
||||
return;
|
||||
}
|
||||
|
||||
that._resetPos(200);
|
||||
if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
|
||||
},
|
||||
|
||||
_resetPos: function (time) {
|
||||
var that = this,
|
||||
resetX = that.x >= 0 ? 0 : that.x < that.maxScrollX ? that.maxScrollX : that.x,
|
||||
resetY = that.y >= 0 || that.maxScrollY > 0 ? 0 : that.y < that.maxScrollY ? that.maxScrollY : that.y;
|
||||
|
||||
if (resetX == that.x && resetY == that.y) {
|
||||
if (that.moved) {
|
||||
if (that.options.onScrollEnd) that.options.onScrollEnd.call(that); // Execute custom code on scroll end
|
||||
that.moved = false;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
that.scrollTo(resetX, resetY, time || 0);
|
||||
},
|
||||
|
||||
_mouseout: function (e) {
|
||||
var t = e.relatedTarget;
|
||||
|
||||
if (!t) {
|
||||
this._end(e);
|
||||
return;
|
||||
}
|
||||
|
||||
while (t = t.parentNode) if (t == this.wrapper) return;
|
||||
|
||||
this._end(e);
|
||||
},
|
||||
|
||||
_transitionEnd: function (e) {
|
||||
var that = this;
|
||||
|
||||
if (e.target != that.scroller) return;
|
||||
|
||||
that._unbind('webkitTransitionEnd');
|
||||
|
||||
that._startAni();
|
||||
},
|
||||
|
||||
/**
|
||||
*
|
||||
* Utilities
|
||||
*
|
||||
*/
|
||||
_startAni: function () {
|
||||
var that = this,
|
||||
startX = that.x, startY = that.y,
|
||||
startTime = Date.now(),
|
||||
step, easeOut,
|
||||
animate;
|
||||
|
||||
if (that.animating) return;
|
||||
|
||||
if (!that.steps.length) {
|
||||
that._resetPos(400);
|
||||
return;
|
||||
}
|
||||
|
||||
step = that.steps.shift();
|
||||
|
||||
if (step.x == startX && step.y == startY) step.time = 0;
|
||||
|
||||
that.animating = true;
|
||||
that.moved = true;
|
||||
|
||||
if (that.options.useTransition) {
|
||||
that._transitionTime(step.time);
|
||||
that._pos(step.x, step.y);
|
||||
that.animating = false;
|
||||
if (step.time) that._bind('webkitTransitionEnd');
|
||||
else that._resetPos(0);
|
||||
return;
|
||||
}
|
||||
|
||||
animate = function () {
|
||||
var now = Date.now(),
|
||||
newX, newY;
|
||||
|
||||
if (now >= startTime + step.time) {
|
||||
that._pos(step.x, step.y);
|
||||
that.animating = false;
|
||||
if (that.options.onAnimationEnd) that.options.onAnimationEnd.call(that); // Execute custom code on animation end
|
||||
that._startAni();
|
||||
return;
|
||||
}
|
||||
|
||||
now = (now - startTime) / step.time - 1;
|
||||
easeOut = m.sqrt(1 - now * now);
|
||||
newX = (step.x - startX) * easeOut + startX;
|
||||
newY = (step.y - startY) * easeOut + startY;
|
||||
that._pos(newX, newY);
|
||||
if (that.animating) that.aniTime = nextFrame(animate);
|
||||
};
|
||||
|
||||
animate();
|
||||
},
|
||||
|
||||
_transitionTime: function (time) {
|
||||
this.scroller.style[vendor + 'TransitionDuration'] = time + 'ms';
|
||||
},
|
||||
|
||||
_momentum: function (dist, time, maxDistUpper, maxDistLower, size) {
|
||||
var deceleration = 0.0006,
|
||||
speed = m.abs(dist) / time,
|
||||
newDist = (speed * speed) / (2 * deceleration),
|
||||
newTime = 0, outsideDist = 0;
|
||||
|
||||
// Proportinally reduce speed if we are outside of the boundaries
|
||||
if (dist > 0 && newDist > maxDistUpper) {
|
||||
outsideDist = size / (6 / (newDist / speed * deceleration));
|
||||
maxDistUpper = maxDistUpper + outsideDist;
|
||||
speed = speed * maxDistUpper / newDist;
|
||||
newDist = maxDistUpper;
|
||||
} else if (dist < 0 && newDist > maxDistLower) {
|
||||
outsideDist = size / (6 / (newDist / speed * deceleration));
|
||||
maxDistLower = maxDistLower + outsideDist;
|
||||
speed = speed * maxDistLower / newDist;
|
||||
newDist = maxDistLower;
|
||||
}
|
||||
|
||||
newDist = newDist * (dist < 0 ? -1 : 1);
|
||||
newTime = speed / deceleration;
|
||||
|
||||
return { dist: newDist, time: mround(newTime) };
|
||||
},
|
||||
|
||||
_offset: function (el) {
|
||||
var left = -el.offsetLeft,
|
||||
top = -el.offsetTop;
|
||||
|
||||
while (el = el.offsetParent) {
|
||||
left -= el.offsetLeft;
|
||||
top -= el.offsetTop;
|
||||
}
|
||||
|
||||
return { left: left, top: top };
|
||||
},
|
||||
|
||||
_bind: function (type, el, bubble) {
|
||||
(el || this.scroller).addEventListener(type, this, !!bubble);
|
||||
},
|
||||
|
||||
_unbind: function (type, el, bubble) {
|
||||
(el || this.scroller).removeEventListener(type, this, !!bubble);
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Public methods
|
||||
*
|
||||
*/
|
||||
destroy: function () {
|
||||
var that = this;
|
||||
|
||||
that.scroller.style[vendor + 'Transform'] = '';
|
||||
|
||||
// Remove the event listeners
|
||||
that._unbind(RESIZE_EV, window);
|
||||
that._unbind(START_EV);
|
||||
that._unbind(MOVE_EV);
|
||||
that._unbind(END_EV);
|
||||
that._unbind(CANCEL_EV);
|
||||
that._unbind('mouseout', that.wrapper);
|
||||
if (that.options.useTransition) that._unbind('webkitTransitionEnd');
|
||||
|
||||
if (that.options.onDestroy) that.options.onDestroy.call(that);
|
||||
},
|
||||
|
||||
refresh: function () {
|
||||
var that = this,
|
||||
offset;
|
||||
|
||||
that.wrapperW = that.wrapper.clientWidth;
|
||||
that.wrapperH = that.wrapper.clientHeight;
|
||||
|
||||
that.scrollerW = that.scroller.offsetWidth;
|
||||
that.scrollerH = that.scroller.offsetHeight;
|
||||
that.maxScrollX = that.wrapperW - that.scrollerW;
|
||||
that.maxScrollY = that.wrapperH - that.scrollerH;
|
||||
that.dirX = 0;
|
||||
that.dirY = 0;
|
||||
|
||||
that.hScroll = that.options.hScroll && that.maxScrollX < 0;
|
||||
that.vScroll = that.options.vScroll && (!that.options.bounceLock && !that.hScroll || that.scrollerH > that.wrapperH);
|
||||
|
||||
offset = that._offset(that.wrapper);
|
||||
that.wrapperOffsetLeft = -offset.left;
|
||||
that.wrapperOffsetTop = -offset.top;
|
||||
|
||||
|
||||
that.scroller.style[vendor + 'TransitionDuration'] = '0';
|
||||
|
||||
that._resetPos(200);
|
||||
},
|
||||
|
||||
scrollTo: function (x, y, time, relative) {
|
||||
var that = this,
|
||||
step = x,
|
||||
i, l;
|
||||
|
||||
that.stop();
|
||||
|
||||
if (!step.length) step = [{ x: x, y: y, time: time, relative: relative }];
|
||||
|
||||
for (i=0, l=step.length; i<l; i++) {
|
||||
if (step[i].relative) { step[i].x = that.x - step[i].x; step[i].y = that.y - step[i].y; }
|
||||
that.steps.push({ x: step[i].x, y: step[i].y, time: step[i].time || 0 });
|
||||
}
|
||||
|
||||
that._startAni();
|
||||
},
|
||||
|
||||
scrollToElement: function (el, time) {
|
||||
var that = this, pos;
|
||||
el = el.nodeType ? el : that.scroller.querySelector(el);
|
||||
if (!el) return;
|
||||
|
||||
pos = that._offset(el);
|
||||
pos.left += that.wrapperOffsetLeft;
|
||||
pos.top += that.wrapperOffsetTop;
|
||||
|
||||
pos.left = pos.left > 0 ? 0 : pos.left < that.maxScrollX ? that.maxScrollX : pos.left;
|
||||
pos.top = pos.top > 0 ? 0 : pos.top < that.maxScrollY ? that.maxScrollY : pos.top;
|
||||
time = time === undefined ? m.max(m.abs(pos.left)*2, m.abs(pos.top)*2) : time;
|
||||
|
||||
that.scrollTo(pos.left, pos.top, time);
|
||||
},
|
||||
|
||||
disable: function () {
|
||||
this.stop();
|
||||
this._resetPos(0);
|
||||
this.enabled = false;
|
||||
|
||||
// If disabled after touchstart we make sure that there are no left over events
|
||||
this._unbind(MOVE_EV);
|
||||
this._unbind(END_EV);
|
||||
this._unbind(CANCEL_EV);
|
||||
},
|
||||
|
||||
enable: function () {
|
||||
this.enabled = true;
|
||||
},
|
||||
|
||||
stop: function () {
|
||||
cancelFrame(this.aniTime);
|
||||
this.steps = [];
|
||||
this.moved = false;
|
||||
this.animating = false;
|
||||
}
|
||||
};
|
||||
|
||||
if (typeof exports !== 'undefined') exports.iScroll = iScroll;
|
||||
else window.iScroll = iScroll;
|
||||
|
||||
})();
|
1104
components/iscroll/src/iscroll.js
Normal file
17
css/core.css
|
@ -157,13 +157,14 @@ body, .normalFont {
|
|||
min-height: 40px;
|
||||
}
|
||||
.playButton {
|
||||
width: 40px;
|
||||
width: 50px;
|
||||
height: 100%;
|
||||
font-size: 20px;
|
||||
color: #c0c0c0;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
float: right;
|
||||
}
|
||||
|
||||
#queueList, #scroller {
|
||||
|
@ -189,4 +190,16 @@ form.importForm {
|
|||
}
|
||||
label {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.feedData_tmp {
|
||||
display: inline-block;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.feedImageThumbnail {
|
||||
width:40px;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<!doctype html>
|
||||
<html lang="en" ng-app="podcasts"><!-- readd at some point: manifest="b2gPodcast.appcache" -->
|
||||
<html lang="en" ng-app="podcasts" ng-csp><!-- readd at some point: manifest="b2gPodcast.appcache" -->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="user-scalable=no, width=device-width" />
|
||||
|
|
|
@ -2,7 +2,14 @@ angular.module('podcast.directives', [])
|
|||
.directive('pullToRefresh', function() {
|
||||
return function(scope, element, attrs, feedItems) {
|
||||
var myScroll,
|
||||
pullDownEl, pullDownOffset;
|
||||
pullDownEl, pullDownOffset,
|
||||
wrapper = angular.element('<div class="scroller"></div>');
|
||||
|
||||
element.contents().wrap(wrapper[0]);
|
||||
|
||||
wrapper.prepend('<div id="pullDown">' +
|
||||
'<span class="pullDownIcon"></span><span class="pullDownLabel">Pull down to refresh...</span>' +
|
||||
'</div>');
|
||||
|
||||
pullDownEl = document.getElementById('pullDown');
|
||||
pullDownOffset = pullDownEl.offsetHeight;
|
||||
|
|
0
lib/angular/docs/.htaccess
Executable file → Normal file
0
lib/angular/docs/appcache-offline.manifest
Executable file → Normal file
0
lib/angular/docs/appcache.manifest
Executable file → Normal file
0
lib/angular/docs/css/animations.css
Executable file → Normal file
0
lib/angular/docs/css/bootstrap.min.css
vendored
Executable file → Normal file
0
lib/angular/docs/css/doc_widgets.css
Executable file → Normal file
0
lib/angular/docs/css/docs.css
Executable file → Normal file
0
lib/angular/docs/css/font-awesome.css
vendored
Executable file → Normal file
0
lib/angular/docs/docs-keywords.js
vendored
Executable file → Normal file
0
lib/angular/docs/docs-scenario.html
Executable file → Normal file
0
lib/angular/docs/docs-scenario.js
vendored
Executable file → Normal file
0
lib/angular/docs/favicon.ico
Executable file → Normal file
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
BIN
lib/angular/docs/font/fontawesome-webfont.eot
Executable file → Normal file
0
lib/angular/docs/font/fontawesome-webfont.svg
Executable file → Normal file
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
BIN
lib/angular/docs/font/fontawesome-webfont.svgz
Executable file → Normal file
BIN
lib/angular/docs/font/fontawesome-webfont.ttf
Executable file → Normal file
BIN
lib/angular/docs/font/fontawesome-webfont.woff
Executable file → Normal file
0
lib/angular/docs/img/AngularJS-small.png
Executable file → Normal file
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
0
lib/angular/docs/img/One_Way_Data_Binding.png
Executable file → Normal file
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
0
lib/angular/docs/img/Two_Way_Data_Binding.png
Executable file → Normal file
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
0
lib/angular/docs/img/angular_parts.png
Executable file → Normal file
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
0
lib/angular/docs/img/bullet.png
Executable file → Normal file
Before Width: | Height: | Size: 212 B After Width: | Height: | Size: 212 B |
0
lib/angular/docs/img/form_data_flow.png
Executable file → Normal file
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
0
lib/angular/docs/img/glyphicons-halflings-white.png
Executable file → Normal file
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
0
lib/angular/docs/img/glyphicons-halflings.png
Executable file → Normal file
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
0
lib/angular/docs/img/guide/about_model_final.png
Executable file → Normal file
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
BIN
lib/angular/docs/img/guide/about_view_final.png
Executable file → Normal file
Before Width: | Height: | Size: 232 KiB After Width: | Height: | Size: 0 B |
0
lib/angular/docs/img/guide/concepts-controller.png
Executable file → Normal file
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
0
lib/angular/docs/img/guide/concepts-directive.png
Executable file → Normal file
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
0
lib/angular/docs/img/guide/concepts-model.png
Executable file → Normal file
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
0
lib/angular/docs/img/guide/concepts-module-injector.png
Executable file → Normal file
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
0
lib/angular/docs/img/guide/concepts-runtime.png
Executable file → Normal file
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
0
lib/angular/docs/img/guide/concepts-scope.png
Executable file → Normal file
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
0
lib/angular/docs/img/guide/concepts-startup.png
Executable file → Normal file
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
0
lib/angular/docs/img/guide/concepts-view.png
Executable file → Normal file
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
0
lib/angular/docs/img/guide/di_sequence_final.png
Executable file → Normal file
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
0
lib/angular/docs/img/guide/dom_scope_final.png
Executable file → Normal file
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
0
lib/angular/docs/img/guide/hashbang_vs_regular_url.jpg
Executable file → Normal file
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
0
lib/angular/docs/img/guide/scenario_runner.png
Executable file → Normal file
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
0
lib/angular/docs/img/guide/simple_scope_final.png
Executable file → Normal file
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 117 KiB |
0
lib/angular/docs/img/helloworld.png
Executable file → Normal file
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
0
lib/angular/docs/img/helloworld_2way.png
Executable file → Normal file
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
0
lib/angular/docs/img/tutorial/catalog_screen.png
Executable file → Normal file
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
0
lib/angular/docs/img/tutorial/tutorial_00.png
Executable file → Normal file
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
0
lib/angular/docs/img/tutorial/tutorial_00_final.png
Executable file → Normal file
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
0
lib/angular/docs/img/tutorial/tutorial_02.png
Executable file → Normal file
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 116 KiB |
0
lib/angular/docs/img/tutorial/tutorial_03.png
Executable file → Normal file
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
0
lib/angular/docs/img/tutorial/tutorial_04.png
Executable file → Normal file
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 124 KiB |
0
lib/angular/docs/img/tutorial/tutorial_07_final.png
Executable file → Normal file
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 196 KiB |
BIN
lib/angular/docs/img/tutorial/tutorial_08-09_final.png
Executable file → Normal file
Before Width: | Height: | Size: 209 KiB After Width: | Height: | Size: 0 B |
BIN
lib/angular/docs/img/tutorial/tutorial_10-11_final.png
Executable file → Normal file
Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 0 B |
0
lib/angular/docs/img/tutorial/xhr_service_final.png
Executable file → Normal file
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 141 KiB |