#javascript #html #dom
#javascript #HTML #dom
Вопрос:
Я пытаюсь увеличить ширину объекта при нажатии кнопки при использовании Javascript. Он отлично работает на мобильном просмотре, а когда дело доходит до просмотра ноутбука, сначала уменьшает его ширину, а затем начинает работать. вы увидите, что я говорю, просто запустите код.
var btn = document.querySelector('.btn');
var redObj = document.querySelector('.line');
var currentWidth = (redObj.offsetWidth / 33.6);
btn.addEventListener('click', () => {
currentWidth = 10;
console.log(currentWidth);
redObj.style.width = currentWidth 'px';
});
.line {
width: 30px;
height: 30px;
background-color: red;
}
<div class="line"></div>
<button class="btn">Increase</button>
Комментарии:
1. При первом нажатии на кнопку вы берете ширину (30 пикселей), делите на 33,6 (= ~ 0,9), а затем добавляете 10. При этом ширина устанавливается равной ~10,9 пикселей.
Ответ №1:
Для начала это значение равно 30, поэтому при нажатии вы получаете размер 30/33 10.
Попробуйте это
var btn = document.querySelector('.btn');
var redObj = document.querySelector('.line');
console.log(redObj.offsetWidth)
var currentWidth = redObj.offsetWidth;
btn.addEventListener('click', () => {
currentWidth = 10;
console.log(currentWidth);
redObj.style.width = currentWidth 'px';
});
.line {
width: 30px;
height: 30px;
background-color: red;
}
<div class="line"></div>
<button class="btn">Increase</button>
Комментарии:
1. почему это 30/33 тхо. а что сделал Math.max()?
2. Для начала это 20, затем вы делите его на 33,6. Затем, когда вы нажимаете, вы добавляете 10 к этому числу. Так что вполне логично, что у вас меньшая ширина. Математический максимум не нужен
3. Для начала вам нужно объяснить нам, почему вы хотели разделить на 33,6