Я пытаюсь анимировать слайд в меню с помощью CSS/JavaScript (SASS/CoffeSript). Это работает так, единственная проблема заключается в том, что ширина выдвигаемого меню жестко запрограммирована (233 пикселя). Как я могу динамически получить ширину div и установить ее обратно, когда мне нужно установить ширину div на 0 в CSS при запуске? Могу ли я как-то рассчитать ширину div и установить ее снова?
Любые идеи, как я мог бы решить эту проблему, чтобы динамически получить ширину, чтобы я мог добавлять/удалять элементы в меню, не изменяя жестко запрограммированное значение в CoffeScript?
HTML/мопс:
// Module: Header
.header
.header--logo
a(href="/", class="link-logo")
img(src="/img/logo.svg")
.header--menu#menu
a(href="#", class="link-menu")
img(src="/img/menu.svg", id="clicked-menu-item")
ul#nav
li: a(href="") projects
li: a(href="") contact
li: a(href="") self
CSS/SASS:
.header
position: sticky
top: 0
left: 0
background-color: $lightColor
display: flex
justify-content: space-between
padding: $baselineHeight
&--menu
display: flex
align-items: center
ul
width: 0px
overflow-x: hidden
transition: width ease-in-out 300ms
li
display: inline
margin-left: $baselineHeight
JavaScript/CoffeScript:
element = document.getElementById('clicked-menu-item')
element.onclick = (obj) ->
if (obj.srcElement.classList.contains('clicked'))
document.getElementById("nav").style.width = "0px"
else
document.getElementById("nav").style.width = "233px"
obj.srcElement.classList.toggle('clicked')
false