From 2e2426c3277cb7edc21576fab8e10e1e06d15664 Mon Sep 17 00:00:00 2001 From: Michiel Renty Date: Thu, 10 Dec 2015 20:23:38 +0100 Subject: [PATCH 1/4] Added support for a container to scroll in --- README.md | 13 ++++++++++++- dist/jump.min.js | 2 +- src/jump.js | 12 +++++++++--- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 154ecf4..8f0e61a 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,8 @@ Jump.jump('.selector', { if(t < 1) return c / 2 * t * t + b t-- return -c / 2 * (t * (t - 2) - 1) + b - } + }, + container: '.selector' }) ``` @@ -144,6 +145,16 @@ Jump.jump('.selector', { }) ``` +##### container + +Container when you want to `jump()` inside an element. + +```es6 +Jump.jump('.selector', { + container: '.selector' +}) +``` + ## Browser Support Jump depends on the following browser APIs: diff --git a/dist/jump.min.js b/dist/jump.min.js index cd79787..88fcd61 100644 --- a/dist/jump.min.js +++ b/dist/jump.min.js @@ -3,4 +3,4 @@ * Copyright (c) 2015 Michael Cavalea - https://github.com/callmecavs/jump.js * License: MIT */ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Jump=t()}}(function(){return function t(e,n,i){function o(s,u){if(!n[s]){if(!e[s]){var a="function"==typeof require&&require;if(!u&&a)return a(s,!0);if(r)return r(s,!0);var f=new Error("Cannot find module '"+s+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[s]={exports:{}};e[s][0].call(l.exports,function(t){var n=e[s][1][t];return o(n?n:t)},l,l.exports,t,e,n,i)}return n[s].exports}for(var r="function"==typeof require&&require,s=0;st?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)},e.exports=n["default"]},{}],2:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(t,e){for(var n=0;nt?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)},e.exports=n["default"]},{}],2:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(t,e){for(var n=0;n this._loop(time)) @@ -38,7 +41,10 @@ export default class Jump { } _end() { - window.scrollTo(0, this.start + this.distance) + + !!this.options.container + ? this.options.container.scrollTop = this.next + this.distance + : window.scrollTo(0, this.next + this.distance) typeof this.options.callback === 'function' && this.options.callback() this.timeStart = false From 1bb272fc535145d0416148b34f0de10b408d3083 Mon Sep 17 00:00:00 2001 From: Michiel Renty Date: Thu, 10 Dec 2015 20:57:16 +0100 Subject: [PATCH 2/4] Updated the start point when scrolling in a container --- dist/jump.min.js | 2 +- src/jump.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dist/jump.min.js b/dist/jump.min.js index 88fcd61..75dd733 100644 --- a/dist/jump.min.js +++ b/dist/jump.min.js @@ -3,4 +3,4 @@ * Copyright (c) 2015 Michael Cavalea - https://github.com/callmecavs/jump.js * License: MIT */ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Jump=t()}}(function(){return function t(e,n,i){function o(s,u){if(!n[s]){if(!e[s]){var a="function"==typeof require&&require;if(!u&&a)return a(s,!0);if(r)return r(s,!0);var f=new Error("Cannot find module '"+s+"'");throw f.code="MODULE_NOT_FOUND",f}var c=n[s]={exports:{}};e[s][0].call(c.exports,function(t){var n=e[s][1][t];return o(n?n:t)},c,c.exports,t,e,n,i)}return n[s].exports}for(var r="function"==typeof require&&require,s=0;st?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)},e.exports=n["default"]},{}],2:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(t,e){for(var n=0;nt?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)},e.exports=n["default"]},{}],2:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(t,e){for(var n=0;n this._loop(time)) } From 1ce3c64b05ab1197c0ea81bd26d8511fe87d664c Mon Sep 17 00:00:00 2001 From: Michiel Renty Date: Mon, 21 Dec 2015 08:25:09 +0100 Subject: [PATCH 3/4] Adjusted container calculations --- src/jump.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/jump.js b/src/jump.js index e844f52..06df15e 100644 --- a/src/jump.js +++ b/src/jump.js @@ -2,6 +2,7 @@ import easeInOutQuad from './easing' export default class Jump { jump(target, options = {}) { + this.start = window.pageYOffset this.options = { duration: options.duration, @@ -19,10 +20,6 @@ export default class Jump { ? this.options.duration(this.distance) : this.options.duration - !!this.options.container - ? this.start = this.options.container.getBoundingClientRect().top - : this.start = window.pageYOffset - requestAnimationFrame(time => this._loop(time)) } @@ -46,7 +43,7 @@ export default class Jump { _end() { !!this.options.container - ? this.options.container.scrollTop = this.next + this.distance + ? this.options.container.scrollTop = this.options.container.getBoundingClientRect().top + this.next + this.distance : window.scrollTo(0, this.next + this.distance) typeof this.options.callback === 'function' && this.options.callback() From 8cd8f99208fd5bcf2cb80ae1c000dc252c742a7b Mon Sep 17 00:00:00 2001 From: Michiel Renty Date: Mon, 21 Dec 2015 08:30:11 +0100 Subject: [PATCH 4/4] Updated minified version --- dist/jump.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/jump.min.js b/dist/jump.min.js index 75dd733..c671434 100644 --- a/dist/jump.min.js +++ b/dist/jump.min.js @@ -3,4 +3,4 @@ * Copyright (c) 2015 Michael Cavalea - https://github.com/callmecavs/jump.js * License: MIT */ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Jump=t()}}(function(){return function t(e,n,i){function o(s,a){if(!n[s]){if(!e[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(r)return r(s,!0);var f=new Error("Cannot find module '"+s+"'");throw f.code="MODULE_NOT_FOUND",f}var c=n[s]={exports:{}};e[s][0].call(c.exports,function(t){var n=e[s][1][t];return o(n?n:t)},c,c.exports,t,e,n,i)}return n[s].exports}for(var r="function"==typeof require&&require,s=0;st?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)},e.exports=n["default"]},{}],2:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(t,e){for(var n=0;nt?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)},e.exports=n["default"]},{}],2:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(t,e){for(var n=0;n