使用angularjs指令将绝对div与另一个div的右边缘对齐

时间:2014-11-05 15:37:14

标签: html css angularjs

我试图使用angularjs指令将绝对div的右侧与另一个div的右侧对齐。代码几乎正常工作,但是子div比父代更宽,我得到的offsetWidth值错误。

jsfiddle

我的指示:

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'
            });
        });


    }
};

});

1 个答案:

答案 0 :(得分:0)

最简单的解决方法是重置.row元素的bootstrap的负边距设置,因为这会造成所有混乱(否则你的计算很好):

.row {
    margin: 0;
}

请在此处查看:http://jsfiddle.net/9d8gq8r2/4/