From 0afb6c439c29a82f14a26c1066f5ec932ca15d86 Mon Sep 17 00:00:00 2001 From: Nicholas Albion Date: Wed, 4 Feb 2015 02:00:46 +1100 Subject: [PATCH] fixed offsetX issue in slider --- bower.json | 2 +- src/js/directives/slider.js | 4 +++- src/js/utils.js | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 src/js/utils.js diff --git a/bower.json b/bower.json index 3808ccb..58b21d0 100755 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "angular-bootstrap-closure", - "version": "0.0.2", + "version": "0.0.3", "author": "Nicholas Albion", "description": "Bootstrap UI components for AngularJS apps using Closure Compiler, no jQuery dependencies", diff --git a/src/js/directives/slider.js b/src/js/directives/slider.js index c3416ca..112dd5b 100644 --- a/src/js/directives/slider.js +++ b/src/js/directives/slider.js @@ -3,6 +3,8 @@ */ goog.provide('abc.sliderModule'); +goog.require('abc.utils'); + /** * As per the HTML5 <input type="range"> * control, defaults to: @@ -157,7 +159,7 @@ abc.SliderCtrl = function ($scope, $attrs, $window, $timeout) { var value, x = event.touches ? event.touches[0].clientX : event.clientX, - left = _sliderElement.offsetLeft, + left = abc.utils.offsetX(_sliderElement), //.offsetLeft, _handleHalfWidth = _handle[0].offsetWidth / 2, sliderWidth = _sliderElement.offsetWidth; diff --git a/src/js/utils.js b/src/js/utils.js new file mode 100644 index 0000000..44a0080 --- /dev/null +++ b/src/js/utils.js @@ -0,0 +1,18 @@ +goog.provide('abc.utils'); + +/** + * @param {HTMLElement} element + * @returns {number} pixels from the left of the page + */ +abc.utils.offsetX = function (element) { + //try {return elm.offset();} catch(e) {} + //element = elmement[0]; + var _x = 0; + //var _y = 0; + var body = document.documentElement || document.body; + var scrollX = window.pageXOffset || body.scrollLeft; + //var scrollY = window.pageYOffset || body.scrollTop; + return element.getBoundingClientRect().left + scrollX; + //_y = rawDom.getBoundingClientRect().top + scrollY; + //return { left: _x, top:_y }; +};