Директива сделать группу элементов на странице придерживаться друг друга - PullRequest
0 голосов
/ 15 мая 2019

Мне нужно написать директиву AngularJs \ Angular 1, которая позволит склеивать div и заголовки таблиц друг с другом, когда пользователь прокручивает страницу, чтобы они оставались на странице.

Идея состоит в том, чтобысоздайте фабрику, прикрепите атрибут #id к каждому узлу dom, который должен быть липким.Из контроллера я вытолкну элементы, используя

 angular.element(document.querySelector('#sticky1'));

, затем, основываясь на высоте каждого следующего элемента, я вычислю значение верхнего смещения.Чтобы сделать элементы липкими, я хотел бы использовать css position: 'sticky' Я довольно плохо знаком с 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...