angular自定义指令,只在一处起作用

自定义指令,想要相应的DOM在页面滚动后浮动在页面顶部。但是在页面中多个地方使用这个指令,只有最后一个元素有效果,不知道是什么原因。指令代码如下:

.directive('topFixed', function () {
            return {
                restrict: 'AE',
                link: function (scope, ele, attrs) {
                    function getTop(e) {
                        var offset = e.offsetTop;
                        if (e.offsetParnet != null) offset += getTop(e.offsetParent);
                        return offset;
                    }

                    var top = getTop(ele[0]);
                    window.onscroll = function () {
                        var bodyScrollTop = document.documentElement.scrollTop || document.body.scrollTop;
                        if (bodyScrollTop > (top-70)) {
                            ele[0].style.position = "fixed";
                            ele[0].style.top = "70px";
                        } else {
                            ele[0].style.position = "static";
                        }
                    }
                }
            };
阅读 2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进