使页面上的一组元素相互紧贴的指令

时间:2019-05-15 14:03:33

标签: css angularjs coffeescript

我需要编写一个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
}

0 个答案:

没有答案