Как приостанавливать автоматическую прокрутку блока div при наведении на него мышкой?
Сделал div
с автоматической прокруткой. Теперь встала задача, как эту прокрутку приостановить, если курсор наведен на блок, а если курсор убран, то продолжить с того же места.
Помогите реализовать задуманное.
$(document).ready(function(){
$(document).ready(function() {
var div = $('#vipLentaBox');
div.animate({ scrollTop: div.prop("scrollHeight")}, 30000); // 1000 мс для создания эффекта плавного перемещения к содержимому div
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div style="overflow-y: scroll; max-height: 400px;" id="vipLentaBox">
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
</div>
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
$(document).ready(function() {
let div = $('#vipLentaBox');
div.on('mouseenter', () => {
disableBlockScroll(div);
});
div.on('mouseleave', () => {
enableBlockScroll(div);
});
enableBlockScroll(div);
});
function enableBlockScroll(div) {
div.animate({
scrollTop: div.prop("scrollHeight")
}, 3000);
}
function disableBlockScroll(div) {
div.stop();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div style="overflow-y: scroll; max-height: 400px;" id="vipLentaBox">
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
<div style="border:1px solid #CCC;padding:20px 10px;">Block content</div>
</div>