#javascript #html #css
#javascript #HTML #css
Вопрос:
У меня проблема в том, что при нажатии на div (.arrow-div), в моем воображении он должен перемещаться влево — вправо, но ничего не происходит, появляется только «Uncaught TypeError: не удается прочитать свойство ‘addEventListener’ с нулевым значением» в консоли. Было бы очень хорошо, если бы вы могли это решить!
PS Написание слов для публикации этого вопроса.
const rightSlide = () => {
const sideBox = document.querySelector('right-box');
const arrowBtn = document.querySelector('arrow-div');
arrowBtn.addEventListener('click', () => {
sideBox.classList.toggle('right-box-active');
});
}
rightSlide();
.right {
position: relative;
display: block;
min-height: 100vh;
}
.right-box {
position: absolute;
display: flex;
min-height: 100vh;
width: 100%;
transform: translateX(92%);
transition: transform 0.5s ease-in;
}
.content-box {
display: flex;
width: 100%;
min-height: 100vh;
justify-content: space-around;
align-items: center;
background-color: rgba(255,255,255, .2);
}
.right-box-active {
transform: translateX(0%);
}
<body>
<div class="container-fluid">
<div class="row">
<div class="left col-mb-4 col-lg-4">
<div class="container">
<h4>Jānis Žogots</h4>
<div class="line"></div>
<ul>
<li><a href="#">Darbu piemēri</a></li>
<span>vai</span>
<li><a href="#">Kontaktu info</a></li>
</ul>
</div>
</div>
<div class="right col-mb-8 col-lg-8">
<div class="right-box">
<div class="arrow">
<div class="arrow-div">
<div style="display: flex;" class="arrow-left"></div>
<div style="display: none;" class="arrow-right"></div>
</div>
</div>
<div class="content-box">
Content Box
</div>
</div>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.2/js/bootstrap.min.js"></script>
<script src="static/js/right-box.js"></script>
</body>
Комментарии:
1. Просто добавьте точку перед селекторами, чтобы указать их как
class
: Пример:document.querySelector('.arrow-div');
— На самом деле,querySelector
ищет элемент like<arrow-div>
.
Ответ №1:
попробуйте это : const arrowBtn = document.querySelector('.arrow-div');
если вы определили и d, вы бы выполнили arrow-div const arrowBtn = document.querySelector('#arrow-div');
используемый синтаксис u предназначен для html-элементов, таких как img const arrowBtn = document.querySelector('img');