我需要编写一个AngularJs \ Angular 1指令,该指令允许在用户滚动页面时将div和表头一个接一个地放置,以便它们停留在页面上。
这个想法是创建一个工厂,将#id属性附加到每个需要粘性的dom节点。从控制器,我将使用
推送元素 angular.element(document.querySelector('#sticky1'));
然后基于每个即将出现的元素的高度,我将计算偏移量的上限值。为了使元素具有粘性,我想使用CSS 位置:“粘性” 我是AngularJS的新手,因此对实现有些坚持。
window.App .factory'ccSticky',($ rootScope,$ window,$ document,$ log)->
elemnts = []
elemntsMap = {}
attachElement = (element) ->
bodyEl = $document[0].body
nativeEl = element[0]
currentOffset = 0
if elements.length
prevOffset = elements[elements.length].offset
currentOffset = prevOffset + nativeEl.offsetHeight
css =
position: 'sticky'
'z-index': 1040
top: currentOffset + 'px'
element.css(css)
elemnts.push({ element, offset: currentOffset })
{
attachElement: attachElement
}