Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   изменение курсора (https://javascript.ru/forum/events/2408-izmenenie-kursora.html)

гость 22.12.2008 16:04

изменение курсора
 
в IE и FF работает нормально, а в Опере для того чтобы курсор изменился нужно убрать его с элемента и опять навести
<div onclick="this.style.cursor='n-resize';">

можно ли как-то сделать чтобы курсор изменялся не выходя за границы div'а

vk65535 22.12.2008 17:28

Известная бага. Курсор обновляется оперой только во время маусовера. Где-то там же, на ихнем форуме, видел рецепт лечения - чтобы сменить курсор в середине элемента создается и тут же удаляется небольшой элемент под курсором. Не знаю, может и можно придумать что-то получше...

Андрей Параничев 23.12.2008 16:29

А если синтезировать событие mouseover, интересно, курсор сменится?

Добавлено:
Сейчас проверил - все равно не меняется.

гость 23.12.2008 17:29

ну такой вот код сработает(при клике курсор сменится):

<style>
#d1
{
background-color:black;
width:50px;height:50px;
}
</style>
<script type="text/javascript">
function cursor()
{
evt = document.createEvent("MouseEvents");
evt.initMouseEvent("mouseover", false, false, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
document.getElementById('d1').dispatchEvent(evt);
}
</script>

<div id="d1" onmousemove="this.style.cursor='n-resize';" onclick="cursor()"></div>

Андрей Параничев 23.12.2008 17:35

Совершенно бессмысленный код, в контексте этой задачи.

vk65535 23.12.2008 18:47

Если запускать эвент через таймаут, то работает.

гость 23.12.2008 19:09

Андрей Параничев:
задача была изменить курсор не выводя его с элемента. именно это по клику и происходит. так что в контексте данной задачи код вполне уместен.

может кто-нить знает почему если строку
onmousemove="this.style.cursor='n-resize';"
поместить в тело функции cursor() как
document.getElementById('d1').style.cursor='n-resize';
теряется функиональность?

vk65535 23.12.2008 19:25

Цитата:

Сообщение от гость
может кто-нить знает почему

Я ж про это и писал, если событие пускать через таймаут после смены стиля в обработчике click-а, то работает как надо.
function cursor()
{
	document.getElementById('d1').style.cursor='n-resize';
	window.setTimeout(function() {
		evt = document.createEvent("MouseEvents");
		evt.initMouseEvent("mouseover", false, false, window,
		0, 0, 0, 0, 0, false, false, false, false, 0, null);
		document.getElementById('d1').dispatchEvent(evt);
	});
}

гость 23.12.2008 20:14

vk65535:
врубился, спасибо

kamran 06.07.2009 12:08

Народ у меня такой вопрос как сделать так чтоб при наведение курсора на ссылку чтоб курсор менялся я вот попробывал тут ваши скрипты не получилось дайте пожалуста гатовый скрипт чтоб я токо URL на иконку поменял и все Спосибо Большое!


Часовой пояс GMT +3, время: 08:40.