Срабатывание скрипта если ширина экрана меньше 767
Скролл должен срабатывать когда ширина экрана меньше или равно 767px, если больше – скрипт не должен срабатывать.
function windowSize(){
if ($(window).width() <= '767'){
$('#test').on('click', function(e) {
$('html,body').animate({
scrollTop: $('.test2').offset().top + "px"
}, {
duration: 1E3
});
});
} else {
}
}
.test2 {
height: 200px;
width: 200px;
margin-top: 1000px;
background: red;
}
<button id="test">
Кнопка скролла которая срабатывает если ширина меньше 767
</button>
<div class="test2"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Ответы (1 шт):
Автор решения: Vadizar
→ Ссылка
Решение на нативном JS:
// Сперва пишем функцию с условием:
function scrollFunctions() {
var btn = document.getElementById('test');
// Вызываем скролл по клику при выполнении условия
if (document.documentElement.clientWidth <= 767) {
btn.addEventListener('click', scrollTop);
}
// Убираем скролл по клику при не выполнении условия
else{
btn.removeEventListener('click', scrollTop);
}
}
// Потом функцию для самого скролла:
function scrollTop(){
window.scrollTo({
top: 400,
behavior: 'smooth',
});
}
// А потом вызываем нашу функцию с условием,
// которая при выполнении условия вызывает функцию со скроллом:
window.addEventListener('load', scrollFunctions);
window.addEventListener('resize', scrollFunctions);
#body {
height: 1000px;
background: lightblue;
}
<div id='body'>
<button id='test'>Click to scroll</button>
</div>