aboutsummaryrefslogtreecommitdiff
path: root/node_modules/montage/ui/scrollview.reel/scrollview.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/montage/ui/scrollview.reel/scrollview.js')
-rwxr-xr-xnode_modules/montage/ui/scrollview.reel/scrollview.js193
1 files changed, 15 insertions, 178 deletions
diff --git a/node_modules/montage/ui/scrollview.reel/scrollview.js b/node_modules/montage/ui/scrollview.reel/scrollview.js
index 3ac195e8..d3516d03 100755
--- a/node_modules/montage/ui/scrollview.reel/scrollview.js
+++ b/node_modules/montage/ui/scrollview.reel/scrollview.js
@@ -124,27 +124,7 @@ var Scrollview = exports.Scrollview = Montage.create(Component, /** @lends modul
124 this._hasMomentum = value ? true : false; 124 this._hasMomentum = value ? true : false;
125 } 125 }
126 }, 126 },
127/** 127
128 Description TODO
129 @private
130*/
131 _hasBouncing: {
132 enumerable: false,
133 value: true
134 },
135/**
136 Description TODO
137 @type {Function}
138 @default {Boolean} true
139 */
140 hasBouncing: {
141 get: function () {
142 return this._hasBouncing;
143 },
144 set: function (value) {
145 this._hasBouncing = value ? true : false;
146 }
147 },
148/** 128/**
149 Description TODO 129 Description TODO
150 @private 130 @private
@@ -169,30 +149,7 @@ var Scrollview = exports.Scrollview = Montage.create(Component, /** @lends modul
169 } 149 }
170 } 150 }
171 }, 151 },
172/** 152
173 Description TODO
174 @private
175*/
176 _bouncingDuration: {
177 enumerable: false,
178 value: 750
179 },
180/**
181 Description TODO
182 @type {Function}
183 @default {Number} 750
184 */
185 bouncingDuration: {
186 get: function () {
187 return this._bouncingDuration;
188 },
189 set: function (value) {
190 this._bouncingDuration = isNaN(parseInt(value, 10)) ? 1 : parseInt(value, 10);
191 if (this._bouncingDuration < 1) {
192 this._bouncingDuration = 1;
193 }
194 }
195 },
196/** 153/**
197 Description TODO 154 Description TODO
198 @private 155 @private
@@ -683,35 +640,7 @@ var Scrollview = exports.Scrollview = Montage.create(Component, /** @lends modul
683 return 3 * (k * k * t * p1y + k * tmp * p2y) + tmp * t; 640 return 3 * (k * k * t * p1y + k * tmp * p2y) + tmp * t;
684 } 641 }
685 }, 642 },
686/**
687 Description TODO
688 @private
689*/
690 _bounce: {
691 enumerable: false,
692 value: function () {
693 if (this._hasBouncing) {
694 var startTime = new Date().getTime(),
695 momentum, startX = this._scrollX, startY = this._scrollY,
696 self = this;
697
698 if (startX < 0) {
699 this._animationInterval = window.setInterval(function () {
700 var time = new Date().getTime() - startTime;
701 if (time < self._bouncingDuration) {
702 var tmp = time / self._bouncingDuration;
703 643
704 tmp = self._bezierTValue(tmp, 0.17, 0.93, 0.19, 1);
705 self._scrollX = startX * (1 - tmp);
706 } else {
707 self._scrollX = 0;
708 window.clearInterval(self._animationInterval);
709 }
710 }, 16);
711 }
712 }
713 }
714 },
715/** 644/**
716 Description TODO 645 Description TODO
717 @private 646 @private
@@ -720,9 +649,7 @@ var Scrollview = exports.Scrollview = Montage.create(Component, /** @lends modul
720 enumerable: false, 649 enumerable: false,
721 value: function (event) { 650 value: function (event) {
722 651
723 var animateBouncingX = false, 652 var animateMomentum = false,
724 animateBouncingY = false,
725 animateMomentum = false,
726 momentumX, 653 momentumX,
727 momentumY, 654 momentumY,
728 startX = this._scrollX, 655 startX = this._scrollX,
@@ -732,8 +659,6 @@ var Scrollview = exports.Scrollview = Montage.create(Component, /** @lends modul
732 endX = startX, 659 endX = startX,
733 endY, 660 endY,
734 self = this, 661 self = this,
735 startTimeBounceX = false,
736 startTimeBounceY = false,
737 startTime = new Date().getTime(); 662 startTime = new Date().getTime();
738 663
739 this._nativeScrollTop = this._element.scrollTop; 664 this._nativeScrollTop = this._element.scrollTop;
@@ -773,93 +698,7 @@ var Scrollview = exports.Scrollview = Montage.create(Component, /** @lends modul
773 self._scrollX = posX; 698 self._scrollX = posX;
774 self._scrollY = posY; 699 self._scrollY = posY;
775 700
776 if (self._hasBouncing) { 701 if (!animateMomentum) {
777 if (endX < 0) {
778 if (self._scrollX < 0) {
779 if (!startTimeBounceX) {
780 animateBouncingX = true;
781 startTimeBounceX = time;
782 }
783 t = time - startTimeBounceX;
784 if ((t < self._bouncingDuration) || (animateMomentum)) {
785 if (t > self._bouncingDuration) {
786 t = self._bouncingDuration;
787 }
788 self._scrollX = self._scrollX * (1 - self._bezierTValue(t / self._bouncingDuration, 0.17, 0.93, 0.19, 1));
789 } else {
790 self._scrollX = 0;
791 animateBouncingX = false;
792 }
793 } else {
794 animateBouncingX = false;
795 }
796 }
797
798 if (endY < 0) {
799 if (self._scrollY < 0) {
800 if (!startTimeBounceY) {
801 animateBouncingY = true;
802 startTimeBounceY = time;
803 }
804 t = time - startTimeBounceY;
805 if ((t < self._bouncingDuration) || (animateMomentum)) {
806 if (t > self._bouncingDuration) {
807 t = self._bouncingDuration;
808 }
809 self._scrollY = self._scrollY * (1 - self._bezierTValue(t / self._bouncingDuration, 0.17, 0.93, 0.19, 1));
810 } else {
811 self._scrollY = 0;
812 animateBouncingY = false;
813 }
814 } else {
815 animateBouncingY = false;
816 }
817 }
818
819 if (endX > self._maxScrollX) {
820 if (self._scrollX > self._maxScrollX) {
821 if (!startTimeBounceX) {
822 animateBouncingX = true;
823 startTimeBounceX = time;
824 }
825 t = time - startTimeBounceX;
826 if ((t < self._bouncingDuration) || (animateMomentum)) {
827 if (t > self._bouncingDuration) {
828 t = self._bouncingDuration;
829 }
830 self._scrollX = self._maxScrollX + (self._scrollX - self._maxScrollX) * (1 - self._bezierTValue(t / self._bouncingDuration, 0.17, 0.93, 0.19, 1));
831 } else {
832 self._scrollX = self._maxScrollX;
833 animateBouncingX = false;
834 }
835 } else {
836 animateBouncingX = false;
837 }
838 }
839
840 if (endY > self._maxScrollY) {
841 if (self._scrollY > self._maxScrollY) {
842 if (!startTimeBounceY) {
843 animateBouncingY = true;
844 startTimeBounceY = time;
845 }
846 t = time - startTimeBounceY;
847 if ((t < self._bouncingDuration) || (animateMomentum)) {
848 if (t > self._bouncingDuration) {
849 t = self._bouncingDuration;
850 }
851 self._scrollY = self._maxScrollY + (self._scrollY - self._maxScrollY) * (1 - self._bezierTValue(t / self._bouncingDuration, 0.17, 0.93, 0.19, 1));