Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Координаты мышки при загрузке (https://javascript.ru/forum/css-html-browser/12782-koordinaty-myshki-pri-zagruzke.html)

YamilovS 02.11.2010 21:30

Координаты мышки при загрузке
 
Здравствуйте!
Есть такая небольшая проблема, возможно Вы подскажете как ее исправить. К сожалению с JS я общаюсь еще очень недолго и много не знаю, поэтому надеюсь на Вас.

window.event.clientX ,если не двигать мышку, не передает координаты в опере. в Осле работает без проблем. Если мышку подвинуть, то тоже работает без проблем. Просто я написал функцию которая меняет местоположение бэкграунда в зависимости от положения мышки, и если ползователь зашел на сайт и через некоторое время подвинул мышку то соответственно бэкграунд вначале РЕЗКО перепрыгивает куда надо и потом работает без проблем.

Как-нибудь можно избавится от этого резко? я прописал в onLoad установку координат бэкгроунда, но опера сного не может их забрать из window.event.clientX ...

Ниже прилагаю простой тестовый код для илюстрации сообщения.
<head>
<script language="JavaScript">
function main() {
 var mydiv = document.getElementById('apDiv1')
	mydiv.style.backgroundPosition = 1/8 * (window.screen.width-window.event.clientX);
}

document.onmousemove = function(event) {
    var event = event || window.event; 
	var mydiv = document.getElementById('apDiv1')
	mydiv.style.backgroundPosition = 1/8 * (window.screen.width-window.event.clientX);
}
</script>
<style type="text/css">
#apDiv1 {
	position:absolute;
	width:100%;
	background-image:url(1.png);
	height:284px;
	z-index:1;
	background-repeat: repeat-x;
}
</style>
</head>
<body topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" onLoad="main();">
<div id="apDiv1"></div>
</body>
</html>

Kolyaj 02.11.2010 23:18

И это вы ещё в Firefox не смотрели.

По теме: да вроде никак.

Aetae 03.11.2010 04:42

Ну да, наверное надо написать доп функцию плавной прокрутки bg до места первого срабатывания mousemove.

2de 03.11.2010 11:43

Незнаю или такая задумка, но межет подойдет указать в CSS:
position: fixed;

для нужнго элемента?

YamilovS 04.11.2010 18:22

Ребят, спасибо за ответы!
А не подскажите как обработать первое срабатываение mousemove?
Ну и не откажусь от советов как организуются плавные прокрутки))) Потому что я собираюсь ее делать через цикл while().

Или вы сможете подсказать, может есть более грамотный способ организации такого эфекта кроме того как на него забить))

ЗЫ в фаерфоксе разобрался теперь и там прокрутка работает)

2de 04.11.2010 19:37

есть mouseover срабатывает при попадании курсора на элемент

subzey 05.11.2010 12:48

Долго ковырял. В опере, похоже, можно только напугать пользователя, чтобы он дернул мышку и вызвал событие mousemove. Но этот способ ненадёжный.


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