我试图使用angularjs指令将绝对div的右侧与另一个div的右侧对齐。代码几乎正常工作,但是子div比父代更宽,我得到的offsetWidth值错误。
我的指示:
app.directive('alignElementRight', function ($document) {
return {
restrict: 'A',
scope: {
alignElementRight: '@'
},
link: function (scope, element, attrs) {
scope.$watch('alignElementRight', function (value) {
console.log(value);
var relEleme = $document.find('#' + value);
var myEl = angular.element(document.querySelector('#' + value));
var elOffsetLeft = myEl[0].offsetLeft;
var elOffsetTop = myEl[0].offsetTop;
var elOffsetWidth = myEl[0].offsetWidth;
console.log('main width:' + elOffsetWidth);
var absElemOffsetWidth = element[0].offsetWidth;
console.log('menu: ' + absElemOffsetWidth);
var newOffsetLeft = Math.abs(elOffsetLeft + elOffsetWidth - absElemOffsetWidth);
element.css({
left: newOffsetLeft + 'px'
});
});
}
};
});
答案 0 :(得分:0)
最简单的解决方法是重置.row元素的bootstrap的负边距设置,因为这会造成所有混乱(否则你的计算很好):
.row {
margin: 0;
}