<body onmouseout = "alert('aaa')" style = "height: 100%">
hello world;
</body>
впринципе работает, только есть минус - работает когда курсор выходит и вверх, и вниз, и вправо, и влево.
можно ли как-то придумать, чтобы реагировало только на выход вверх?
Спустя 24 минуты, 24 секунды (1.11.2011 - 04:12) sebastjan написал(а):
наверно надо сделать полоску тонкую в шапке, если ведёшь курсор на верх попасть так точно на неё трудно, по любому проскочишь, вот тут и выводи событие.
Полоску сделай под цвет фона шапки.
Но по лбому если из за верхней границы броузера поведёшь ,опять срабтает.
А вообще - что за хитрость то?
Короче тоненькие полоски,невидемые пользователю а видные мышке по краям от них и плясать.
Полоску сделай под цвет фона шапки.
Но по лбому если из за верхней границы броузера поведёшь ,опять срабтает.
А вообще - что за хитрость то?
Короче тоненькие полоски,невидемые пользователю а видные мышке по краям от них и плясать.
Спустя 3 минуты, 57 секунд (1.11.2011 - 04:16) sebastjan написал(а):
Можно конечно изватится с функцией, отслеживающей кардинаты, типа если кардинаты увеличиваются по оси такой и превышают такое то значение - тогда реагировать.
Но мутрно.
Но мутрно.
Спустя 6 минут, 52 секунды (1.11.2011 - 04:23) sebastjan написал(а):
И ещё я так подумал про первый вариант с тоненькими полосками по краям.
По сути при запуске страницы ,курсор по любому находится на странице,- когда курсор ушол -всё нормально и когда курсор опять приходит на страницу чтоб небыло фигни с срабатыванием, надо всёж написать функцию которая бы считывала заход приход.
Если мышка вышла за поле, в функции ставить значение что мышка вышла и блокировать срабатывание функции отвечающей за сообщение.
Короче через раз срабатывать функции.
Ушол -показали сообщение
Пришол ничего не показали.
Ушол опять показали.
Наверное так.
По сути при запуске страницы ,курсор по любому находится на странице,- когда курсор ушол -всё нормально и когда курсор опять приходит на страницу чтоб небыло фигни с срабатыванием, надо всёж написать функцию которая бы считывала заход приход.
Если мышка вышла за поле, в функции ставить значение что мышка вышла и блокировать срабатывание функции отвечающей за сообщение.
Короче через раз срабатывать функции.
Ушол -показали сообщение
Пришол ничего не показали.
Ушол опять показали.
Наверное так.
Спустя 14 минут, 34 секунды (1.11.2011 - 04:37) sebastjan написал(а):
Прикольно сейчас проверил с тонкой полоской по верху, работает но не без косяка, если быстро мыкой проводить н успевает засечь событие броузер, наверное и от мышки тоже зависит.
Думаю надёжней с функцией по отлову кординат делать.
Тогда уж точно, если вышла мыша за предел такой то -- вывод события.Не надо будет проверять на вхождение в броузер.
Думаю надёжней с функцией по отлову кординат делать.
Тогда уж точно, если вышла мыша за предел такой то -- вывод события.Не надо будет проверять на вхождение в броузер.
Спустя 3 минуты, 43 секунды (1.11.2011 - 04:41) quickxyan написал(а):
Ух, накрутил %) ну я про координаты тоже подумывал, но надеялся, что авось есть проще способ ну все-таки наверное прийдеться хитрить как-то.
можно впринципе сделать так:
если курсор мышки по оси у попадает на 0px, то врубить алерт. то есть если курсор окажеться на нулевом пикселе, то вряд ли просто так)
а там уже попробовать писать например масив с 10 последними точками курсора и там смотреть, если точки были больше 0, то выводить алерт, а если их не было, то ничего не делать.
в любом случае спасибо за советы! буду завтра что-то мудрить
можно впринципе сделать так:
если курсор мышки по оси у попадает на 0px, то врубить алерт. то есть если курсор окажеться на нулевом пикселе, то вряд ли просто так)
а там уже попробовать писать например масив с 10 последними точками курсора и там смотреть, если точки были больше 0, то выводить алерт, а если их не было, то ничего не делать.
в любом случае спасибо за советы! буду завтра что-то мудрить
Спустя 7 минут, 48 секунд (1.11.2011 - 04:49) sebastjan написал(а):
А кто так сможет изловчиться чтоб попасть именно в нулевой пиксель.
Можешь смело в условии задать,
если мыша по кординатам Y меньше 1 или 3 =вывод сообщения.
Если не меньше то и не вывод.
Всё одно никто не будет ловить эти пиксели, ведёт себе мышу и ведёт.
Но по сути - если юзер снял фокус с окна броузера, значит ему что то другое надо, мало тех кто кидает мышу и падает на клавиатуру - получаеться это для них сообщение.
Типа сфокусируйте мышку на окне.
А зачем?
Это всё больше в играх используют.
И ещё заметь что всякие алерты замораживают любое днйствие со страницей.
Это раздражает.
Может слой лучше показать. и в нужном для тебя месте.
Не так дёргает нервную систему.
Можешь смело в условии задать,
если мыша по кординатам Y меньше 1 или 3 =вывод сообщения.
Если не меньше то и не вывод.
Всё одно никто не будет ловить эти пиксели, ведёт себе мышу и ведёт.
Но по сути - если юзер снял фокус с окна броузера, значит ему что то другое надо, мало тех кто кидает мышу и падает на клавиатуру - получаеться это для них сообщение.
Типа сфокусируйте мышку на окне.
А зачем?
Это всё больше в играх используют.
И ещё заметь что всякие алерты замораживают любое днйствие со страницей.
Это раздражает.
Может слой лучше показать. и в нужном для тебя месте.
Не так дёргает нервную систему.
Спустя 7 минут, 31 секунда (1.11.2011 - 04:56) quickxyan написал(а):
sebastjan
ну алерт это только для наглядности.
да впринципе можно сделать например от 1 до 3 и сделать массив на 10 чисел. ну и когда юзер будет в поле алерта, то там уже свериться сверху он идет или снизу.
ну алерт это только для наглядности.
да впринципе можно сделать например от 1 до 3 и сделать массив на 10 чисел. ну и когда юзер будет в поле алерта, то там уже свериться сверху он идет или снизу.
Спустя 5 часов, 16 минут, 18 секунд (1.11.2011 - 10:12) redreem написал(а):
да просто "слушать мышку постоянно" и в интервале вызывать нужную функцию. например так (могут быть ошибочки, но суть ясна):
msList = {
mXY:{x:0,y:0},
getMouseXY:function(e) {
var x=0,y=0;
if (!e) e=window.event;
if (e.pageX || e.pageY) {
x = e.pageX;y = e.pageY;
} else {
if (e.clientX || e.clientY) {
x = e.clientX + (doc.documentElement.scrollLeft || doc.body.scrollLeft) - doc.documentElement.clientLeft;y = e.clientY + (doc.documentElement.scrollTop || doc.body.scrollTop) - doc.documentElement.clientTop;
}
}
return {"x":x, "y":y};
},
init:function() {
body.onmousemove=function(e) {
msList.mXY=octoV3.getMouseXY(e);
//пример вызова
if (msList.mXY.y<10) {
//вызываем нужную функцию
}
return true;
};
}
}
msList.init();
Спустя 1 день, 12 часов, 29 минут, 7 секунд (2.11.2011 - 22:42) quickxyan написал(а):
redreem
забыл поблагодарить спасибо за помощь. правда я что-то не вкурил немного по коду
забыл поблагодарить спасибо за помощь. правда я что-то не вкурил немного по коду
Спустя 1 час, 34 минуты, 8 секунд (3.11.2011 - 00:16) quickxyan написал(а):
кстати проблему решил все таки по своему.
кому интересно вот код. в опере работает на ура.
кому интересно вот код. в опере работает на ура.
function func(){
if(event.y < 10)
alert('Курсор вышел за верхнюю границу!!!');
}
<body onmouseout = "func()" style = "height: 100%">
hello world!!!
</body>
Спустя 7 минут, 37 секунд (3.11.2011 - 00:23) Игорь_Vasinsky написал(а):
quickxyan
так можно было 1px полосу наверху сделать и на ней алерт
так можно было 1px полосу наверху сделать и на ней алерт
Спустя 9 минут, 45 секунд (3.11.2011 - 00:33) Winston написал(а):
Цитата (Игорь_Vasinsky @ 2.11.2011 - 23:23) |
так можно было 1px полосу наверху сделать и на ней алерт |
При быстром перемещении мышки ничего не получится.
Спустя 1 минута, 1 секунда (3.11.2011 - 00:34) Игорь_Vasinsky написал(а):
значит надо мышу програмно тормозить как к верху поползёт
Спустя 2 минуты, 26 секунд (3.11.2011 - 00:37) quickxyan написал(а):
Игорь_Vasinsky
хорошая идея
хорошая идея
Спустя 5 минут, 24 секунды (3.11.2011 - 00:42) Игорь_Vasinsky написал(а):
не.. проверил.. на дёрганых (для слишком резких) - не успевает.
Спустя 9 минут, 14 секунд (3.11.2011 - 00:51) sebastjan написал(а):
Ну вот не поленился и проверил всё на разных броузерах.
Пашет
С определением броузера можно наверное ещё короче но лень.
Спустя 3 минуты, 21 секунда sebastjan написал(а):
Не радуйся твой в лисе небудет работать и ИЕ6 тоже.
А мой будет везде работать :P
Спустя 4 минуты, 46 секунд sebastjan написал(а):
Игорь_Vasinsky
Скорость скорее от мыши зафисит -сколько фпс даёт.
Поэтому лучше примерно от 3-до 10 пикселей смело поставить.
А вот нефиг юзерам мышкой лазить по чердаку странице. :D
Спустя 8 минут, 58 секунд sebastjan написал(а):
ТОлько вот грабли - хоть значение для сравнения стоит (если меньше 5) то один чёрт при возвращении в окно сверху появляеться событие.
Спустя 11 минут, 11 секунд sebastjan написал(а):
Ну так правильно срабатывает событие потому что при возвращении курсор попадает опять в зоду своих (меньше 5) .
Надо колдовать глубже с ява скрипт чтоб при возвращении в функции проверялось --было ли событие до этого.
Если было - то ничего не выводить.
Спустя 14 минут sebastjan написал(а):
Пиши функцию - где будет устанавливаться флаг , если было событие не выводить никаких значений и ставить в переменную значение какое нибудь, для следущего сравнения.
Как с проверкой в форме на регистрацию в РНР. :)
Пашет
С определением броузера можно наверное ещё короче но лень.
Свернутый текст
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Maus</title>
<style>html,body{margin: 0px;padding: 0px;height: 100%;width: 100ex;}</style>
</head>
<script>
function mousePageY(e)//function opredeljaet brouzer i kardinati mishki
{
var y;
if (!e) e = window.event;//opredeljaem brouyer
if (e.pageY)
{ y = e.pageY; }
else if (e.clientY)
{
y = e.clientY +
(document.documentElement.scrollTop || document.body.scrollTop) -
document.documentElement.clientTop;
}
return {"y":y};
/////////////////////////
}
// samo ispolzovanie funkcii
document.onmousemove = function(e){
var mCur = mousePageY(e); //privjazivaem kordinati polucennie iz predidushei function
if(mCur.y<3)//sravnivaem -esli menshe 3px s verhu -vivodim soobshenie
{
alert('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');
}
}
</script>
<body>
</body>
</html>
Спустя 3 минуты, 21 секунда sebastjan написал(а):
Не радуйся твой в лисе небудет работать и ИЕ6 тоже.
А мой будет везде работать :P
Спустя 4 минуты, 46 секунд sebastjan написал(а):
Игорь_Vasinsky
Скорость скорее от мыши зафисит -сколько фпс даёт.
Поэтому лучше примерно от 3-до 10 пикселей смело поставить.
А вот нефиг юзерам мышкой лазить по чердаку странице. :D
Спустя 8 минут, 58 секунд sebastjan написал(а):
ТОлько вот грабли - хоть значение для сравнения стоит (если меньше 5) то один чёрт при возвращении в окно сверху появляеться событие.
Спустя 11 минут, 11 секунд sebastjan написал(а):
Ну так правильно срабатывает событие потому что при возвращении курсор попадает опять в зоду своих (меньше 5) .
Надо колдовать глубже с ява скрипт чтоб при возвращении в функции проверялось --было ли событие до этого.
Если было - то ничего не выводить.
Спустя 14 минут sebastjan написал(а):
Пиши функцию - где будет устанавливаться флаг , если было событие не выводить никаких значений и ставить в переменную значение какое нибудь, для следущего сравнения.
Как с проверкой в форме на регистрацию в РНР. :)
! |
Winston |
_____________
печатаю со скоростью 320 минут в знак...
плюсуем карму не стесняемся