Skip to content

Instantly share code, notes, and snippets.

@andersonbarutti
Created June 3, 2015 21:04
Show Gist options
  • Save andersonbarutti/74881f05132f1f4ec6f2 to your computer and use it in GitHub Desktop.
Save andersonbarutti/74881f05132f1f4ec6f2 to your computer and use it in GitHub Desktop.
JS Bin // source http://jsbin.com/lojiri
<!DOCTYPE html>
<html ng-app="App">
<head>
<script src="https://code.jquery.com/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<div class="container">
<br>
<div class="form-group">
<p>Example 1:</p>
<button class="btn btn-primary" placement>Mouseover 1</button>
<br><br>
Example 2: <button class="btn btn-primary" placement>Mouseover 2</button>
</div>
</div>
<script id="jsbin-javascript">
(function() {
'use strict';
angular
.module('App', [])
.directive('placement', placement);
placement.$inject = [];
function placement() {
return {
restrict: 'A',
link: function(scope, elem, attrs) {
function getOffset(el) {
var _x = 0;
var _y = 0;
while(el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
_x += el.offsetLeft - el.scrollLeft;
_y += el.offsetTop - el.scrollTop;
el = el.offsetParent;
}
return { top: _y, left: _x };
}
elem.on('mouseenter', function() {
console.log(getOffset(elem[0]));
});
}
};
}
})();
</script>
<script id="jsbin-source-javascript" type="text/javascript">(function() {
'use strict';
angular
.module('App', [])
.directive('placement', placement);
placement.$inject = [];
function placement() {
return {
restrict: 'A',
link: function(scope, elem, attrs) {
function getOffset(el) {
var _x = 0;
var _y = 0;
while(el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
_x += el.offsetLeft - el.scrollLeft;
_y += el.offsetTop - el.scrollTop;
el = el.offsetParent;
}
return { top: _y, left: _x };
}
elem.on('mouseenter', function() {
console.log(getOffset(elem[0]));
});
}
};
}
})();</script></body>
</html>
(function() {
'use strict';
angular
.module('App', [])
.directive('placement', placement);
placement.$inject = [];
function placement() {
return {
restrict: 'A',
link: function(scope, elem, attrs) {
function getOffset(el) {
var _x = 0;
var _y = 0;
while(el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
_x += el.offsetLeft - el.scrollLeft;
_y += el.offsetTop - el.scrollTop;
el = el.offsetParent;
}
return { top: _y, left: _x };
}
elem.on('mouseenter', function() {
console.log(getOffset(elem[0]));
});
}
};
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment