Как расширить меню в две стороны?
setTimeout(() => { document.getElementById("mySidenav").style.width = "40%"; }, 2000);
если делать так то он расширяется только вправо
начнем с того, что в нашей жизни счет и чтение идет слева направо, так же и пиксели на мониторе идут слева направо, поэтому у вас и идут расширение в правую сторону при изменение ширины. Приведу Вам два простых примера:
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>
Сборка персонального компьютера от Artline: умный выбор для современных пользователей