Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/ratchet.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@gmail.com>2014-03-13 21:33:54 +0400
committerXhmikosR <xhmikosr@gmail.com>2015-02-02 23:23:09 +0300
commitb46e15e7e2fef644c0274d78201350ff9671a7af (patch)
treedf274eb5c6de1e3151b03153436c1654eab9365c /js/sliders.js
parent5d2f864c313e0c5be8bc9cfb9ae101e384c0f91a (diff)
Make everything work in all browsers (hopefully).
Diffstat (limited to 'js/sliders.js')
-rw-r--r--js/sliders.js33
1 files changed, 24 insertions, 9 deletions
diff --git a/js/sliders.js b/js/sliders.js
index a42b13b..be9cc98 100644
--- a/js/sliders.js
+++ b/js/sliders.js
@@ -25,6 +25,23 @@
var scrollableArea;
var startedMoving;
+ // Original script from http://davidwalsh.name/vendor-prefix
+ var getBrowserCapabilities = (function () {
+ var styles = window.getComputedStyle(document.documentElement, '');
+ var pre = (Array.prototype.slice
+ .call(styles)
+ .join('')
+ .match(/-(moz|webkit|ms)-/) || (styles.OLink === '' && ['', 'o'])
+ )[1];
+ return {
+ prefix: '-' + pre + '-',
+ transform: pre[0].toUpperCase() + pre.substr(1) + 'Transform'
+ };
+ })();
+
+ var transformPrefix = getBrowserCapabilities.prefix;
+ var transformProperty = getBrowserCapabilities.transform;
+
var getSlider = function (target) {
var i;
var sliders = document.querySelectorAll('.slider > .slide-group');
@@ -39,11 +56,9 @@
};
var getScroll = function () {
- if ('webkitTransform' in slider.style) {
- var translate3d = slider.style.webkitTransform.match(/translate3d\(([^,]*)/);
- var ret = translate3d ? translate3d[1] : 0;
- return parseInt(ret, 10);
- }
+ var translate3d = slider.style[transformProperty].match(/translate3d\(([^,]*)/);
+ var ret = translate3d ? translate3d[1] : 0;
+ return parseInt(ret, 10);
};
var setSlideNumber = function (offset) {
@@ -76,7 +91,7 @@
setSlideNumber(0);
- slider.style['-webkit-transition-duration'] = 0;
+ slider.style[transformPrefix + 'transition-duration'] = 0;
};
var onTouchMove = function (e) {
@@ -109,7 +124,7 @@
resistance = slideNumber === 0 && deltaX > 0 ? (pageX / sliderWidth) + 1.25 :
slideNumber === lastSlide && deltaX < 0 ? (Math.abs(pageX) / sliderWidth) + 1.25 : 1;
- slider.style.webkitTransform = 'translate3d(' + offsetX + 'px,0,0)';
+ slider.style[transformProperty] = 'translate3d(' + offsetX + 'px,0,0)';
// started moving
startedMoving = true;
@@ -127,8 +142,8 @@
offsetX = slideNumber * sliderWidth;
- slider.style['-webkit-transition-duration'] = '.2s';
- slider.style.webkitTransform = 'translate3d(' + offsetX + 'px,0,0)';
+ slider.style[transformPrefix + 'transition-duration'] = '.2s';
+ slider.style[transformProperty] = 'translate3d(' + offsetX + 'px,0,0)';
e = new CustomEvent('slide', {
detail: { slideNumber: Math.abs(slideNumber) },