skrollr-rails 0.6.4 → 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/skrollr-rails/version.rb +1 -1
- data/vendor/assets/javascripts/skrollr.ie.js +114 -115
- data/vendor/assets/javascripts/skrollr.js +1397 -1396
- data/vendor/assets/javascripts/skrollr.menu.js +126 -125
- metadata +3 -3
@@ -1,131 +1,132 @@
|
|
1
|
-
/*!
|
1
|
+
/*!
|
2
2
|
* Plugin for skrollr.
|
3
3
|
* This plugin makes hashlinks scroll nicely to their target position.
|
4
4
|
*
|
5
5
|
* Alexander Prinzhorn - https://github.com/Prinzhorn/skrollr
|
6
6
|
*
|
7
7
|
* Free to use under terms of MIT license
|
8
|
-
*/
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
}
|
8
|
+
*/
|
9
|
+
(function(document, window) {
|
10
|
+
'use strict';
|
11
|
+
|
12
|
+
var DEFAULT_DURATION = 500;
|
13
|
+
var DEFAULT_EASING = 'sqrt';
|
14
|
+
|
15
|
+
var MENU_TOP_ATTR = 'data-menu-top';
|
16
|
+
var MENU_OFFSET_ATTR = 'data-menu-offset';
|
17
|
+
|
18
|
+
var skrollr = window.skrollr;
|
19
|
+
|
20
|
+
/*
|
21
|
+
Since we are using event bubbling, the element that has been clicked
|
22
|
+
might not acutally be the link but a child.
|
23
|
+
*/
|
24
|
+
var findParentLink = function(element) {
|
25
|
+
//Yay, it's a link!
|
26
|
+
if(element.tagName === 'A') {
|
27
|
+
return element;
|
28
|
+
}
|
29
|
+
|
30
|
+
//We reached the top, no link found.
|
31
|
+
if(element === document) {
|
32
|
+
return false;
|
33
|
+
}
|
34
|
+
|
35
|
+
//Maybe the parent is a link.
|
36
|
+
return findParentLink(element.parentNode);
|
37
|
+
};
|
38
|
+
|
39
|
+
/*
|
40
|
+
Handle the click event on the document.
|
41
|
+
*/
|
42
|
+
var handleClick = function(e) {
|
43
|
+
//Only handle left click.
|
44
|
+
if((e.which || e.button) !== 1) {
|
45
|
+
return;
|
46
|
+
}
|
47
|
+
|
48
|
+
var link = findParentLink(e.target);
|
49
|
+
|
50
|
+
//The click did not happen inside a link.
|
51
|
+
if(!link) {
|
52
|
+
return;
|
53
|
+
}
|
54
|
+
|
55
|
+
//Don't use the href property (link.href) because it contains the absolute url.
|
56
|
+
var href = link.getAttribute('href');
|
57
|
+
|
58
|
+
//Check if it's a hashlink.
|
59
|
+
if(!/^#/.test(href)) {
|
60
|
+
return;
|
61
|
+
}
|
62
|
+
|
63
|
+
//Now get the targetTop to scroll to.
|
64
|
+
var targetTop;
|
65
|
+
|
66
|
+
//If there's a data-menu-top attribute, it overrides the actuall anchor offset.
|
67
|
+
var menuTop = link.getAttribute(MENU_TOP_ATTR);
|
68
|
+
|
69
|
+
if(menuTop !== null) {
|
70
|
+
targetTop = +menuTop;
|
71
|
+
} else {
|
72
|
+
var scrollTarget = document.getElementById(href.substr(1));
|
73
|
+
|
74
|
+
//Ignore the click if no target is found.
|
75
|
+
if(!scrollTarget) {
|
76
|
+
return;
|
77
|
+
}
|
78
|
+
|
79
|
+
targetTop = _skrollrInstance.relativeToAbsolute(scrollTarget, 'top', 'top');
|
80
|
+
|
81
|
+
var menuOffset = scrollTarget.getAttribute(MENU_OFFSET_ATTR);
|
82
|
+
|
83
|
+
if(menuOffset !== null) {
|
84
|
+
targetTop += +menuOffset;
|
85
|
+
}
|
86
|
+
}
|
87
|
+
|
88
|
+
//Now finally scroll there.
|
89
|
+
if(_animate) {
|
90
|
+
_skrollrInstance.animateTo(targetTop, {
|
91
|
+
duration: _duration,
|
92
|
+
easing: _easing
|
93
|
+
});
|
94
|
+
} else {
|
95
|
+
_skrollrInstance.setScrollTop(targetTop);
|
96
|
+
}
|
97
|
+
|
98
|
+
e.preventDefault();
|
99
|
+
};
|
100
|
+
|
101
|
+
/*
|
102
|
+
Global menu function accessible through window.skrollr.menu.init.
|
103
|
+
*/
|
104
|
+
skrollr.menu = {};
|
105
|
+
skrollr.menu.init = function(skrollrInstance, options) {
|
106
|
+
_skrollrInstance = skrollrInstance;
|
107
|
+
|
108
|
+
options = options || {};
|
109
|
+
|
110
|
+
_duration = options.duration || DEFAULT_DURATION;
|
111
|
+
_easing = options.easing || DEFAULT_EASING;
|
112
|
+
_animate = options.animate !== false;
|
113
|
+
|
114
|
+
//Use event bubbling and attach a single listener to the document.
|
115
|
+
skrollr.addEvent(document, 'click', handleClick);
|
116
|
+
};
|
117
|
+
|
118
|
+
//Private reference to the initialized skrollr.
|
119
|
+
var _skrollrInstance;
|
120
|
+
|
121
|
+
var _easing;
|
122
|
+
var _duration;
|
123
|
+
var _animate;
|
124
|
+
|
125
|
+
//In case the page was opened with a hash, prevent jumping to it.
|
126
|
+
//http://stackoverflow.com/questions/3659072/jquery-disable-anchor-jump-when-loading-a-page
|
127
|
+
window.setTimeout(function() {
|
128
|
+
if(window.location.hash) {
|
129
|
+
window.scrollTo(0, 0);
|
130
|
+
}
|
131
|
+
}, 1);
|
132
|
+
}(document, window));
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skrollr-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Reed
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
11
|
+
date: 2013-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -62,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
62
|
version: '0'
|
63
63
|
requirements: []
|
64
64
|
rubyforge_project:
|
65
|
-
rubygems_version: 2.0.
|
65
|
+
rubygems_version: 2.0.0
|
66
66
|
signing_key:
|
67
67
|
specification_version: 4
|
68
68
|
summary: Skrollr is a stand-alone parallax scrolling library for mobile and desktop. This
|