()
| 55 | }; |
| 56 | |
| 57 | var updateTranslate = function() { |
| 58 | if (translateX !== lastTranslateX) { |
| 59 | if (buttonsRight && buttonsRight.length > 0) { |
| 60 | progress = translateX / sliderActionRightWidth; |
| 61 | if (translateX < -sliderActionRightWidth) { |
| 62 | translateX = -sliderActionRightWidth - Math.pow(-translateX - sliderActionRightWidth, overFactor); |
| 63 | } |
| 64 | for (var i = 0, len = buttonsRight.length; i < len; i++) { |
| 65 | var buttonRight = buttonsRight[i]; |
| 66 | if (typeof buttonRight._buttonOffset === 'undefined') { |
| 67 | buttonRight._buttonOffset = buttonRight.offsetLeft; |
| 68 | } |
| 69 | buttonOffset = buttonRight._buttonOffset; |
| 70 | setTranslate(buttonRight, (translateX - buttonOffset * (1 + Math.max(progress, -1)))); |
| 71 | } |
| 72 | } |
| 73 | if (buttonsLeft && buttonsLeft.length > 0) { |
| 74 | progress = translateX / sliderActionLeftWidth; |
| 75 | if (translateX > sliderActionLeftWidth) { |
| 76 | translateX = sliderActionLeftWidth + Math.pow(translateX - sliderActionLeftWidth, overFactor); |
| 77 | } |
| 78 | for (var i = 0, len = buttonsLeft.length; i < len; i++) { |
| 79 | var buttonLeft = buttonsLeft[i]; |
| 80 | if (typeof buttonLeft._buttonOffset === 'undefined') { |
| 81 | buttonLeft._buttonOffset = sliderActionLeftWidth - buttonLeft.offsetLeft - buttonLeft.offsetWidth; |
| 82 | } |
| 83 | buttonOffset = buttonLeft._buttonOffset; |
| 84 | if (buttonsLeft.length > 1) { |
| 85 | buttonLeft.style.zIndex = buttonsLeft.length - i; |
| 86 | } |
| 87 | setTranslate(buttonLeft, (translateX + buttonOffset * (1 - Math.min(progress, 1)))); |
| 88 | } |
| 89 | } |
| 90 | setTranslate(sliderHandle, translateX); |
| 91 | lastTranslateX = translateX; |
| 92 | } |
| 93 | sliderRequestAnimationFrame = requestAnimationFrame(function() { |
| 94 | updateTranslate(); |
| 95 | }); |
| 96 | }; |
| 97 | var setTranslate = function(element, x) { |
| 98 | if (element) { |
| 99 | element.style.webkitTransform = 'translate(' + x + 'px,0)'; |
no test coverage detected