Почему right работает некорректно?
L-RES выполняется один раз, R-RES выполняется бесконечно как и должно быть. L и R по своему коду практически идентичны Второй день уже голову ломаю, ну где ошибка?
$button_left = document.querySelector('#button_left')
$button_right = document.querySelector('#button_right')
$button_reset = document.querySelector('#button_reset')
$parent = document.querySelector('#parent')
$button_left.addEventListener('click', function(){
$parent.style.right = 0
$parent.style.right = 200 + 'px'
})
$button_right.addEventListener('click', function(){
$parent.style.left = 0
$parent.style.left = 200 + 'px'
})
$button_reset.addEventListener('click', function(){
$parent.style.left = 0
$parent.style.right = 0
})
*{margin: 0;}
#button_left{
position: absolute;
width: 100px;
height: 50px;
left: 500px;
top: 10px;
font-size: 2rem;
}
#button_right{
position: absolute;
width: 100px;
height: 50px;
left: 600px;
top: 10px;
font-size: 2rem;
}
#button_reset{
position: absolute;
width: 100px;
height: 50px;
left: 700px;
top: 10px;
font-size: 2rem;
}
#parent{
background-color: grey;
width: 600px;
height: 210px;
position: relative;
}
#box_1{
background-color: brown;
width: 200px;
height: 200px;
display: inline-block;
position: absolute;
}
#box_2{
background-color: gold;
width: 200px;
height: 200px;
display: inline-block;
position: absolute;
left: 200px;
}
#box_3{
background-color: chartreuse;
width: 200px;
height: 200px;
display: inline-block;
position: absolute;
left: 400px;
}
<div id="parent">
<div id="box_1"></div>
<div id="box_2"></div>
<div id="box_3"></div>
**</div>
<button id="button_left">L</button>
<button id="button_right">R</button>
<button id="button_reset">RES</button>
Ответы (1 шт):
Автор решения: zhurof
→ Ссылка
У вас возникает ситуация когда к элементу с фикс. шириной применяется и left и right. В таком случае применяется только одно из свойтсв. Решение: всякий раз при установке горизонтального позиционирования убирать противоположное свойство:
$button_left = document.querySelector('#button_left')
$button_right = document.querySelector('#button_right')
$button_reset = document.querySelector('#button_reset')
$parent = document.querySelector('#parent')
$button_left.addEventListener('click', function(){
$parent.style.left = '';
$parent.style.right = 200 + 'px'
})
$button_right.addEventListener('click', function(){
$parent.style.right = '';
$parent.style.left = 200 + 'px'
})
$button_reset.addEventListener('click', function(){
$parent.style.left = '';
$parent.style.right = '';
})
*{margin: 0;}
#button_left{
position: absolute;
width: 100px;
height: 50px;
left: 500px;
top: 10px;
font-size: 2rem;
}
#button_right{
position: absolute;
width: 100px;
height: 50px;
left: 600px;
top: 10px;
font-size: 2rem;
}
#button_reset{
position: absolute;
width: 100px;
height: 50px;
left: 700px;
top: 10px;
font-size: 2rem;
}
#parent{
background-color: grey;
width: 600px;
height: 210px;
position: relative;
}
#box_1{
background-color: brown;
width: 200px;
height: 200px;
display: inline-block;
position: absolute;
}
#box_2{
background-color: gold;
width: 200px;
height: 200px;
display: inline-block;
position: absolute;
left: 200px;
}
#box_3{
background-color: chartreuse;
width: 200px;
height: 200px;
display: inline-block;
position: absolute;
left: 400px;
}
<div id="parent">
<div id="box_1"></div>
<div id="box_2"></div>
<div id="box_3"></div>
**</div>
<button id="button_left">L</button>
<button id="button_right">R</button>
<button id="button_reset">RES</button>