Skip to content

Commit

Permalink
Updated with context demo and documentation. #18
Browse files Browse the repository at this point in the history
  • Loading branch information
oblador committed Apr 9, 2014
1 parent b2f10aa commit 1fbdf0b
Show file tree
Hide file tree
Showing 2 changed files with 188 additions and 0 deletions.
42 changes: 42 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,48 @@ angular.module('myApp', ['duScroll']).
});
```

### Scrolling within an element

If you want to scroll within a modal or an element with `overflow: auto/scroll` you need to append the `context` argument to your calls.

```js
var context = someElement;

scroller.scrollTo(x, y, duration, context);

var chunk = 200;
scroller.scrollDelta(x, chunk, duration, context);

var offset = 30; //pixels; adjust for floating menu, context etc
scroller.scrollToElement(document.getElementById('some-id'), offset, duration, context);
```

#### Scroll Context directive
If you want to use the `du-smooth-scroll` directive to scroll within an element, you must use it in conjuction with the `du-scroll-context` directive:

```html
<div du-scroll-context>
<p id="top">This is the top</p>
<p id="anchor">Scroll to me, or <a href="#top" du-smooth-scroll>the top</a></p>
</div>
```

If your links lie outside of the scrollable element, wrap them with the `du-scroll-context` directive and send the element id as argument:

```html
<ul du-scroll-context="scroll-container">
<li><a href="#anchor" du-smooth-scroll>Link</a></li>
</ul>
<div id="scroll-container">
[...]
</div>
```

#### Example

Check out [the live demo](http://durated.github.io/angular-scroll/context.html) or the [source code](https://github.com/durated/angular-scroll/blob/master/example/context.html).


Building
--------

Expand Down
146 changes: 146 additions & 0 deletions example/contexts.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<meta charset="UTF-8" />
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<title>Angular Scrollspy Demo</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style type="text/css">
html, body {
margin: 0;
padding: 0;
background: #ebebeb;
}
body, button {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

h1 {
padding-top: 50px;
}
img {
max-width: 100%;
}
nav {
position: fixed;
z-index: 1;
top: 0;
left: 0;
right: 0;
background: rgba(255, 255, 255, 0.8);
}
nav li, nav ul {
list-style: none;
margin: 0;
padding: 0;
text-align: center
}
nav li, nav a {
display: inline-block;
}
nav a {
padding: 20px;
color: #333;
text-decoration: none;
}
a:hover {
background: #fff;
}
a.active {
background: #00AC7F;
color: #fff;
}
.wrap {
position: relative;
max-width: 1000px;
margin: 0 auto;
padding: 50px 20px;
}
section {
padding: 20px 0 20px 0;
margin-bottom: 30px;
}
footer {
text-align: center;
}
button {
font-size: 18px;
border: 0;
padding: 15px 30px;
background: #00AC7F;
color: #fff;
cursor: pointer;
}

#container {
overflow: auto;
height: 400px;
padding: 0;
margin: 10px 0 20px 0;
}

</style>
</head>
<body>
<div class="wrap" ng-controller="MyCtrl">
<nav du-scroll-context="container">
<ul>
<li><a href="#section-1" du-smooth-scroll>Section 1</a></li>
<li><a href="#section-2" du-smooth-scroll>Section 2</a></li>
<li><a href="#section-3" du-smooth-scroll>Section 3</a></li>
<li><a href="http://github.com/durated/angular-scroll/">Project on Github</a></li>
</ul>
</nav>
<h1>Angular.js Context Scroll Example</h1>
<div id="container" du-scroll-context>
<section id="section-1">
<h2>Section 1</h2>
<p><a href="#section-4" du-smooth-scroll>To section 4</a> Bacon ipsum dolor sit amet sausage tail capicola ground round hamburger ham hock. Short ribs pig andouille meatball, pastrami tri-tip fatback ham hock shank kielbasa swine. Rump pancetta jerky kielbasa doner beef ribs tongue hamburger strip steak drumstick andouille shoulder shank flank. Swine drumstick meatball pig beef sausage strip steak.</p>

<img src="http://lorempixel.com/1000/500/" alt="" />
</section>

<section id="section-2">
<h2>Section 2</h2>
<p>Bacon strip steak ground round, tongue pastrami short ribs pork chop venison turducken sausage sirloin. Flank chicken pork chop capicola turkey turducken cow pork loin biltong meatball drumstick pancetta filet mignon ground round fatback. Ham hock jerky short ribs brisket. Meatloaf shoulder pork chop capicola, sirloin swine pig pork. Jerky ribeye hamburger pork loin sirloin kevin bresaola boudin chuck flank. Ham hock pork belly chicken jerky rump bresaola.</p>
</section>

<section id="section-3">
<h2>Section 3</h2>
<p>Shank fatback pastrami short loin, turkey jowl kielbasa ribeye chicken jerky drumstick flank ham. Swine shankle pork belly kielbasa shoulder flank jowl, sirloin doner. Kevin tri-tip bresaola leberkas. Swine ball tip cow strip steak. Ham filet mignon pork chop, pork fatback andouille pork loin shoulder jowl swine strip steak turducken prosciutto rump.</p>

<img src="http://lorempixel.com/1000/400/" alt="" />

<p>Tongue tri-tip pastrami, shoulder rump pork belly ground round. Ham hock chuck leberkas doner, strip steak corned beef tri-tip capicola. Rump turkey ham sausage shankle. Flank shankle pork chop ham hock. Shankle venison kielbasa, pancetta swine beef ball tip t-bone bacon hamburger ground round ribeye flank. Turducken bacon bresaola, chicken kevin boudin ball tip strip steak filet mignon pork turkey shank ground round. Kielbasa fatback prosciutto pork chop, jerky ground round leberkas boudin ball tip beef shankle shoulder swine brisket. </p>
</section>

<section id="section-4">
<h2>Section 4</h2>
<img src="http://lorempixel.com/1000/600/" alt="" />

<p><a href="#section-1" du-smooth-scroll>To section 1</a> Shoulder cow tenderloin chuck, pork chop jerky doner leberkas. Chuck sausage hamburger, kevin beef pork chop pork shoulder ground round ball tip turducken flank. Bresaola tri-tip meatloaf, salami venison tail pig shank shankle jowl sausage brisket cow biltong turducken. Swine turducken hamburger ball tip short loin prosciutto kevin jowl tri-tip. Doner meatloaf pork brisket.</p>
</section>
</div>
<footer>
<button ng-click="toTheTop()">To the top!</button> or <button ng-click="toSection2()">To section 2</button>
</footer>
</div>

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
<script src="http://durated.github.io/angular-scroll/angular-scroll.min.js"></script>
<script>
angular.module('myApp', ['duScroll']).
controller('MyCtrl', function($scope, scroller){
var context = document.getElementById('container');

$scope.toTheTop = function() {
scroller.scrollTo(0,0, 5000, context);
}
$scope.toSection2 = function() {
scroller.scrollToElement(document.getElementById('section-2'), 0, 1500, context);
}
}
);
</script>
</body>
</html>

0 comments on commit 1fbdf0b

Please sign in to comment.