Skip to content

Commit cf8cb8b

Browse files
committed
updating kissui.position + changing homepage address
1 parent 5c299d4 commit cf8cb8b

File tree

4 files changed

+40
-13
lines changed

4 files changed

+40
-13
lines changed

bower.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "kissui.scrollanim",
3-
"homepage": "https://github.com/usablica/kissui.scrollanim",
3+
"homepage": "http://scrollanim.kissui.io",
44
"authors": [
55
"Afshin Mehrabani <afshin.meh@gmail.com>"
66
],
@@ -27,6 +27,6 @@
2727
"tests"
2828
],
2929
"dependencies": {
30-
"kissui.position": "^0.2.0"
30+
"kissui.position": "latest"
3131
}
3232
}

build/scrollanim.js

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,15 @@
1919
*/
2020
var _elements = [];
2121

22-
/**
22+
/**
2323
* EventListener
2424
*/
2525
var _events = [];
2626

27+
// scroll positions to calc the delta variable in _position function
28+
var _scrollTop = null;
29+
var _scrollLeft = null;
30+
2731
/**
2832
* options
2933
*/
@@ -125,6 +129,20 @@
125129
}
126130
};
127131

132+
function _between (n, pos, delta) {
133+
if (delta > 0) {
134+
if (pos < n && n < (pos + delta)) {
135+
return true;
136+
}
137+
} else {
138+
if (pos > n && n > (pos + delta)) {
139+
return true;
140+
}
141+
}
142+
143+
return false;
144+
};
145+
128146
/**
129147
* Check a single element position and return the correct event name
130148
*
@@ -149,6 +167,9 @@
149167
// to get the width of viewport WITHOUT scrollbar
150168
var width = document.body.clientWidth || document.documentElement.clientWidth;
151169

170+
var topDelta = document.body.scrollTop - _scrollTop;
171+
var leftDelta = document.body.scrollLeft - _scrollLeft;
172+
152173
// check `in` event
153174
if (elementEvents.indexOf('in') > -1) {
154175
if (top >= 0 && left >= 0 && bottom <= height && right <= width) {
@@ -172,7 +193,7 @@
172193

173194
// check `top` event
174195
if (elementEvents.indexOf('top') > -1) {
175-
if (top == 0) {
196+
if (top == 0 || _between(0, top, topDelta)) {
176197
trigger = trigger && true;
177198
} else {
178199
trigger = false;
@@ -181,7 +202,7 @@
181202

182203
// check `left` event
183204
if (elementEvents.indexOf('left') > -1) {
184-
if (left == 0) {
205+
if (left == 0 || _between(0, left, leftDelta)) {
185206
trigger = trigger && true;
186207
} else {
187208
trigger = false;
@@ -190,7 +211,7 @@
190211

191212
// check `right` event
192213
if (elementEvents.indexOf('right') > -1) {
193-
if (right == width) {
214+
if (right == width || _between(width, right, leftDelta)) {
194215
trigger = trigger && true;
195216
} else {
196217
trigger = false;
@@ -199,7 +220,7 @@
199220

200221
// check `bottom` event
201222
if (elementEvents.indexOf('bottom') > -1) {
202-
if (bottom == height) {
223+
if (bottom == height || _between(height, bottom, topDelta)) {
203224
trigger = trigger && true;
204225
} else {
205226
trigger = false;
@@ -208,7 +229,7 @@
208229

209230
// check `middle` event
210231
if (elementEvents.indexOf('middle') > -1) {
211-
if (top + (elementHeight / 2) == (height / 2)) {
232+
if (top + (elementHeight / 2) == (height / 2) || _between((height / 2), top + (elementHeight / 2), topDelta)) {
212233
trigger = trigger && true;
213234
} else {
214235
trigger = false;
@@ -217,7 +238,7 @@
217238

218239
// check `center` event
219240
if (elementEvents.indexOf('center') > -1) {
220-
if (left + (elementWidth / 2) == (width / 2)) {
241+
if (left + (elementWidth / 2) == (width / 2) || _between((width / 2), left + (elementWidth / 2), leftDelta)) {
221242
trigger = trigger && true;
222243
} else {
223244
trigger = false;
@@ -241,6 +262,9 @@
241262
for (var i = 0; i < elements.length; i++) {
242263
_position.call(this, elements[i].element, elements[i].event);
243264
};
265+
266+
_scrollTop = document.body.scrollTop;
267+
_scrollLeft = document.body.scrollLeft;
244268
};
245269

246270
/**
@@ -299,6 +323,9 @@
299323
* Start the module
300324
*/
301325
function _init () {
326+
_scrollTop = document.body.scrollTop;
327+
_scrollLeft = document.body.scrollLeft;
328+
302329
_populate.call(this);
303330

304331
if (_options.triggerOnInit == true) {

build/scrollanim.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "kissui.scrollanim",
3-
"version": "0.1.1",
3+
"version": "0.2.0",
44
"description": "CSS3 scroll animation library",
55
"main": "index.js",
66
"scripts": {
@@ -25,7 +25,7 @@
2525
"bugs": {
2626
"url": "https://github.com/usablica/kissui.scrollanim/issues"
2727
},
28-
"homepage": "https://github.com/usablica/kissui.scrollanim#readme",
28+
"homepage": "http://scrollanim.kissui.io",
2929
"devDependencies": {
3030
"grunt": "^1.0.1",
3131
"grunt-contrib-concat": "^1.0.1",

0 commit comments

Comments
 (0)