Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
3 / 3 / 0
Регистрация: 31.10.2019
Сообщений: 80

Смена курсора на "правильный" при прокрутке страницы

12.12.2021, 12:51. Показов 2397. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Честно говоря, я подумал, что решение вопроса следует искать в JavaScript, поэтому сюда и пишу. Может быть, я ошибаюсь... Всем известна проблема (которая предстаёт как проблема только в частных случаях), когда браузер не сразу меняет курсор мыши с pointer на default (и наоборот) во время скроллинга страницы, а только когда мы перестали скроллить или хотя бы на пиксель сместили указатель мыши. В FF такой проблемы нет и всё меняется сразу, а во всех (?) остальных - наблюдается.
Можно ли как-то сразу, не дожидаясь остановки прокрутки и не смещая указатель, понимать, что указатель уже не на ссылке, средствами JavaScript или как-то иначе? Почему эта вещь так важна для меня? Дело в том, что у меня кастомный курсор, я его сильно изменяю на ссылках и поэтому очень уж заметна эта проблема.
Решение, связанное со сменой pointer на default (что-то типа $('*').css('cursor','pointer')) мне не подойдёт, поскольку я меняю курсор иначе: обрабатываю событие mouseover и mouseout и меняю размер и фон курсора. То есть, видимо, мне нужно не менять курсор, а мгновенно понимать, что указатель ушёл со ссылки или попал на неё. А уж как узнаю, курсор поменяю на нужный.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.12.2021, 12:51
Ответы с готовыми решениями:

Плавная Смена фона страницы при прокрутке
Доброго времени суток! Как сделать чтобы при прокрутке страницы менялся цвет фона? то есть, например, пользователь переместился вниз до...

Смена цвета у ссылки при прокрутке
Всем привет. Пытаюсь сейчас сделать одну небольшую страничку, и никак не могу решить проблему с ссылкой. При нажатии на ссылку,...

Смена background-color при прокрутке
Доброго времени суток! Как сделать чтобы при прокрутке страницы менялся цвет фона? то есть, например, пользователь переместился вниз до...

10
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3970 / 2092 / 832
Регистрация: 13.03.2010
Сообщений: 6,905
13.12.2021, 10:18
Приведите ссылку на страницу с проблемой или выложите код, который позволит воспроизвести её.
0
3 / 3 / 0
Регистрация: 31.10.2019
Сообщений: 80
13.12.2021, 10:29  [ТС]
Цитата Сообщение от gogolik Посмотреть сообщение
Приведите ссылку на страницу с проблемой или выложите код, который позволит воспроизвести её.
Да в общем-то код простой:

HTML5
1
2
<a href="#">ссылка</a>
<div style="height: 3000px;"></div>
))) Навели мышь на ссылку - появилась рука. Крутим страницу вниз - рука не исчезнет, пока не перестанем крутить. А мне нужно, чтобы сразу исчезла. То есть, это общий случай. Но я нашёл решение через привязку событий mousemove, scroll и resize к функции, в которой проверяем координаты мыши и блока, и реагируем, если мышь на блоке или ушла с него (блок ушёл из-под мыши, если в контексте события scroll).
Спасибо.
0
13.12.2021, 10:48

Не по теме:

Михаил Усков, не могу воспроизвести проблему, увы.

0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
15.12.2021, 10:36
Цитата Сообщение от Михаил Усков Посмотреть сообщение
Всем известна проблема ... браузер не сразу меняет курсор мыши
Цитата Сообщение от gogolik Посмотреть сообщение
не могу воспроизвести проблему, увы.
В хроме это выглядит так
Кликните здесь для просмотра всего текста
0
3 / 3 / 0
Регистрация: 31.10.2019
Сообщений: 80
15.12.2021, 10:42  [ТС]
Цитата Сообщение от j2FunOnly Посмотреть сообщение
В хроме это выглядит так
Из примера не вполне понятно, как быстро рука исчезает. Вот если бы прокрутить побольше... Но вроде как не исчезнет, пока не остановится прокрутка или не сместится курсор. Явление, которое яйца выеденного не стоит - если только курсор не кастомный, из-за чего слишком бросается в глаза. Но проблему я уже решил обходным манёвром (об этом написал выше).
0
15.12.2021, 11:08

Не по теме:

j2FunOnly, попробовал более детально... 1 раз из 10 получается повторить. Возможно, особенности мышки или руки "кривые".

0
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
16.12.2021, 19:28
Задачка интересная, но боюсь не имеет решения. Это проблема браузера и его вариацию под винду. В линуксе (подозреваю) могут быть совсем другие проблемы (например проблемы со сглаживанием шрифтов при прокрутке или рывки в скорости прокрутки или прилипание курсора).

У меня (win7 + Crhome последний + слабый ноут 10 летней давности на 4 ядра) ошибка с видео не повторяется никаким нажатием. Мышка игровая, ускоренная.

А на Win10+Хром+мощный комп с кучей памяти и 12ю ядрами - успеваю прокрутить до 5 см прежде чем курсор меняется. Мышка та-же, да еще и через программу-ретранслятор(должна была обратный эффект дать).

Теоретически...
1) можно попробовать заблокировать прокрутку кодом. (недавно научился для проекта где ролик понадобился для теста кода)
2) можно под курсор положить квадратик-DIV полупрозрачный с размером в пару пикселов и в нем задавать курсор. Квадратик двигать так чтобы всегда под мышкой был. (на шуструю мышь и шустрый комп с быстрой отрисовкой может как отставать, так и быть привязанным крепко - может зависеть от загруженности проца)
3) эмулировать прокрутку кодом. (тоже можно - получалось)
0
3 / 3 / 0
Регистрация: 31.10.2019
Сообщений: 80
16.12.2021, 19:40  [ТС]
Цитата Сообщение от andyj Посмотреть сообщение
Задачка интересная, но боюсь не имеет решения.
Соглашусь. Вообще, это неблагодарное дело - ковырять что-то на уровне взаимодействия ОС и ПО такими неприспособленными для этого инструментами, как JavaScript. Всё равно где-то выйдет боком. Как вы и сказали. Поэтому я и зашёл "через окно": отслеживаю mousemove, scroll и resize, и при срабатывании каждого события проверяю - находится ли нужный мне блок под указателем мыши (координаты мыши в пределах стартовой координаты блока плюс ширина и высота блока), а затем меняю вид курсора, если нужно. Работает безотказно. Может быть, это даже и не окно, а она - парадная дверь.
0
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
16.12.2021, 20:02
Попробуйте все-таки на нажатие под мышку положить почти-прозрачный(#FFF1/rgba(0,0,0,0.001)) DIV и таскать его за мышкой так чтобы она всегда в центре оставалась. Например сантиметр-на-сантиметр. И в нем задавать курсор. Подозреваю что интересный эффект выйдет.
1
3 / 3 / 0
Регистрация: 31.10.2019
Сообщений: 80
16.12.2021, 20:13  [ТС]
Цитата Сообщение от andyj Посмотреть сообщение
Попробуйте все-таки на нажатие под мышку положить
Спасибо за варианты решения, но мне это уже не нужно - я нашёл свой вариант.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.12.2021, 20:13
Помогаю со студенческими работами здесь

При прокрутке колесика мыши отображение стрелки курсора изменяется на руку рядом с прямоугольной иконкой
Переустановил операционную систему Windos XP SP2 и сразу же начались проблемы с курсором. При прокрутке колесика мыши отображение...

Эффекты при прокрутке страницы
Как добавляются эффекты при прокручивании страницы? Допустим что бы анимация секции страницы выполнялась не при загрузке, а при появлении...

анимация при прокрутке страницы
подскажите пожалуйста - возможно при помощи только css задать animation при прокруnке страницы или всё таки нужен ещё и js , какой нибудь...

Баг при прокрутке страницы
Доброго времени суток, при расширении екрана 1024×768 баг не позволяет прокрутить страницу. Пациент: http://www.lcdut.ml/?page_id=27 ...

Исчезание ссылки при прокрутке страницы
Всем привет! Есть такой код: &lt;script type=&quot;text/javascript&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru