Как расширить меню в две стороны?
Как расширить меню в две стороны?
setTimeout(() => { document.getElementById("mySidenav").style.width = "40%"; }, 2000);
если делать так то он расширяется только вправо
Ответы (1 шт):
Автор решения: Евгений Николаев
→ Ссылка
начнем с того, что в нашей жизни счет и чтение идет слева направо, так же и пиксели на мониторе идут слева направо, поэтому у вас и идут расширение в правую сторону при изменение ширины. Приведу Вам два простых примера:
- Мы создаем родительский
divсposition: relative;это для того чтобы дочерние элементы позиционировались относительно родительского элемента. После этого с помощьюpostition: absoluteмы устанавливаем нужный нам блок в нужном положении с заданными параметрамиleftиrigth. С помощью данных параметров мы и изменяем ширину в нужные нам стороны. - Во втором примере же, мы используем расположение дочернего элемента по центу родительского. И при изменении ширины дочернего элемента, браузер будет автоматически ставить наш блок в цент и будет создаваться впечатление растягивания блока в обе стороны.
setTimeout(() => {
document.getElementById("mySidenav").style.left = "0px";
document.getElementById("mySidenav").style.right = "0px";
}, 2000);
.container{
position: relative;
width: 400px;
height: 200px;
background: #ffdddf;
z-index: 1;
}
.wrapper {
position: absolute;
top: 10px;
left: 100px;
right: 100px;
height: 25px;
background: #000;
z-index: 2;
transition: 1s linear;
}
<div class="container" >
<div class="wrapper" id="mySidenav">
</div>
</div>
setTimeout(() => {
document.getElementById("mySidenav").style.width = "90%";
}, 2000);
.container{
display: flex;
justify-content: center;
width: 100%;
background: #ddffdd;
padding: 10px 0;
}
.wrapper {
width: 50%;
height: 50px;
background: #ddccdd;
transition: 1s linear;
}
<div class="container" >
<div class="wrapper" id="mySidenav">
</div>
</div>