#javascript #html #jquery #css #cursor
#javascript #HTML #jquery #css #курсор
Вопрос:
Я заменил свой курсор на изображение большего размера, чтобы иметь большой курсор на веб-сайте. На самом деле, он работает хорошо и следует за мышью, но как только я прокручиваю свою страницу, курсор остается в том же положении, что и раньше, и обновляется, как только я снова перемещаю мышь.
Моя идея заключалась бы в том, чтобы позволить мыши перемещаться сразу после прокрутки, а не телепортироваться позже.
Вот код, который вы можете понять. спасибо за помощь!
$(document).on('mousemove', function(e){
$('#custom-cursor').css({
left: e.pageX -30,
top: e.pageY-25,
pointerEvents: 'none'
});
});
#custom-cursor{
width: 230px;
height: 300px;
position: absolute;
background-size: 230px 300px;
background-image: url("https://i.imgur.com/6uh0F5h.png");
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="custom-cursor"></div>
<p>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br></p>
Ответ №1:
Ну, вам также необходимо рассчитать относительное положение мыши на величину расстояния прокрутки, как показано ниже :
Редактировать: я сделал это только для вертикальной прокрутки, вам также может потребоваться сделать то же самое для горизонтальной прокрутки.
let lastX, lastY, lastScrolled = 0;;
$(document).on('mousemove', function(e) {
lastX = e.pageX - 30;
lastY = e.pageY - 25;
$('#custom-cursor').css({
left: e.pageX - 30,
top: e.pageY - 25,
pointerEvents: 'none'
});
});
$(window).scroll(function(event) {
if (lastScrolled != $(window)
.scrollTop()) {
lastY -= lastScrolled;
lastScrolled = $(window)
.scrollTop();
lastY = lastScrolled;
}
$('#custom-cursor').css({
left: lastX,
top: lastY,
pointerEvents: 'none'
});
});
#custom-cursor {
width: 30px;
height: 30px;
position: absolute;
background-size: 230px 300px;
background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="custom-cursor"></div>
<p>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the
page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make
the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page
scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make
the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page
scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make
the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page
scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br>make the page scollable<br></p>
Ответ №2:
Сделайте то же самое, что и mousemove, но затем прокрутите документ:
$(window).scroll(function(){
$('#custom-cursor').css({
left: e.pageX -30,
top: e.pageY-25,
pointerEvents: 'none'
});
});
Комментарии:
1. Извините, но мне не удалось выполнить эту работу, не могли бы вы уточнить? большое спасибо