events въпрос

26 отговора 281 прегледа
#1

events въпрос

Имам малък проблем: искам една функция да се изпълнява постоянно (буквално). Сега слагам да се изпълнява при document.onmousemove, половината работи перфектно, точно както искам. Обаче ми трябва и да не се влияе от мишката ... d.onmouseover не става, испълнява се само при преминаването :((( това е страницата. Искам като се onmouseout-ne да се върне в изходно полежение, без значение дали се движи мишката или не. Някой знае ли какъв точно event да сложа?

"Търсейки по-доброто, често губим доброто" (Шекспир)

Редактирано от Borg на

Отговор
в отговор на Borg #2

Re: events въпрос

ami pich ne mojah da razbera kakvo tochno iskash da napravish, moje bi zashtoto vidqh stranichkata ti s mozilla, no mi se struva che setInterval() shte ti svarshi rabota

Отговор
в отговор на xstreamline #3

Re: events въпрос

setTimeout върши чудна работа .. абе отвори я с IE и ще разбереш какво искам да направя. най-грубо казано: как мога да прекратя действието на document.onmousemove ?

"Търсейки по-доброто, често губим доброто" (Шекспир)
Отговор
в отговор на Borg #4

Re: events въпрос

zaebi eventite, napravi si edna upravlqva6ta promenliva, koqto da ti inicializira v na4alna faza. V cikyla proverqvai promenlivata. Ako e, uslovno kazano "true", setni si poziciqta gore v lqvo. Samata promenliva setva6 pri onmouseout. Ako ima6 predvid, 4e ne ba4ka onmouseout /*ne moa gi pomnq si4kite tiq ne6ta */, prosto go napravi da se setva pri onmouseover vyhu ostanalata 4ast ot dokumenta. Predpolagam 4e i na body 6te svyr6i rabota, no ako ne, 6te trqbva da izmisli6 nekvi layeri li ili tablici, i az ne znam to4no. Ai, uspeh :)

Talk Java to me

Отговор
в отговор на Borg #5

Re: events въпрос

ti ne iskash li prosto pri mouseout tova da si otide na mqstoto v nachaloto
za kakvo ti e toq mousemove

Отговор
в отговор на voyager #6

Re: events въпрос

Ти погледна ли кода? Ако не си, ето тук го пускам:


<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="JavaScript">
<!--

var i=20;

function move_div()
{
if (i > 20) { setTimeout('move_layer()', 10); }
}

function move_layer()
{
document.all.mover.style.pixelLeft = i;
i = i - 20;
}

function move_mouse()
{
if ((window.event.clientX < 550) && (window.event.clientX > 70) && (window.event.clientY < 60) && (window.event.clientY > 20))
{
document.all.mover.style.pixelLeft = window.event.clientX - 50;
i = window.event.clientX - 50;
}
else
{
move_div();
}
}

document.onmousemove = move_mouse;

//-->

</script>
<style type="text'css">
td { font-size: 2px }
</style>

</head>

<body bgcolor="#f4f4f4" text="#000000">

<div id="mover" style="position:absolute; left:18px; top:20px; width:100px; height:40px; z-index:2; background-color: #666666; layer-background-color: #666666; border: 1px none #000000"></div>
<div id="line" style="position:absolute; left:10px; top:23px; z-index:1; visibility:visible ; width: 620; background-color: #000000; layer-background-color: #000000; border: 1px none #000000; height: 1"0" cellspacing="0" bgcolor="#000000" height="1" width="620">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="spacer.gif" width="620" height="1"></td>
</tr>
</table>
</div>
</body>
</html>


Немога да махна ивънт-а. Той ми трябва за да прихвана движението на мишката и да се движи лейър-а заедно с нея. Просто искам за момент да му спра действието (докато се изпълни функцията за връщане в изходно положение)

"Търсейки по-доброто, често губим доброто" (Шекспир)
Отговор
в отговор на Borg #7

Re: events въпрос

не тази променлива. имам предвид нещо такова:
<!--

var position=1; //false

var i=20;
while(position!=0){
function move_div()
{
if (i > 20) { setTimeout('move_layer()', 10); }
}

function move_layer()
{
document.all.mover.style.pixelLeft = i;
i = i - 20;
}

function move_mouse()
{
if ((window.event.clientX < 550) && (window.event.clientX > 70) && (window.event.clientY < 60) && (window.event.clientY > 20))
{
document.all.mover.style.pixelLeft = window.event.clientX - 50;
i = window.event.clientX - 50;
}
else
{
move_div();
}
}

}
document.onmousemove = move_mouse;
na body ima6 onMouseOver(position=0);
na mover-a: onmouseover(position=1);


//-->
При позитион равно на нула, си го сетваш в начална позиция.
Приеми го това като някакъв псевдо-код. Малко мразя джаваскрипт, затова не ми се мисли сега точно кое къде трябва да се напише, пък и синтаксиса го бъркам. Така или иначе, ти можеш да си го направиш достатъчно добре. Давам само идеята как да стане.
Би трябвало да ти свърши работа. Но използвай
while{} задължително.

Кин Дза Дза

Отговор
в отговор на voyager #8

Re: events въпрос

Ясно. Благодаря ти Сега ще го пробвам. дано стане ...

"Търсейки по-доброто, често губим доброто" (Шекспир)
Отговор
в отговор на voyager #9

Re: events въпрос

<!--

var i=20; mx=0; my=0

function move_div()
{
if (i > 20) { action1=setTimeout('move_layer()', 10); }
}

function move_layer()
{
document.all.mover.style.pixelLeft = i;
i = i - 20;
}

function move_mouse()
{
if ((mx < 550) && (mx > 70) && (my < 60) && (my > 20))
{
document.all.mover.style.pixelLeft = mx - 50;
i = mx - 50;
}
else
{
move_div();
}
}

function remember()
{
mx=window.event.clientX;
my=window.event.clientY
}

document.onmousemove=remember
action=setInterval('move_mouse()', 10);

//-->


Tuka se razchita na zapomnjaneto na pozicijata na mishkata v promenlivi, koito se izvikvat bez problemi ot timeout-a. Tova ti reshava problema s triggr-vaneto na sabitieto. Dokolkoto razbrah tova ti beshe problema, che ako mnogo barzo izteglish mishkata i ja spresh rjazko, i div-cheto spira

Редактирано от css на

Отговор
в отговор на css #10

Re: events въпрос

Super, mnogo 10x ti :)))

"Търсейки по-доброто, често губим доброто" (Шекспир)
Отговор
в отговор на css #11

Re: events въпрос

BTW zashto ne slojish plavno premestvane kam mishoka i pri mouse overa. Tva samo kato idea.

Отговор
в отговор на css #12

Re: events въпрос

:)) Shtoto .. mi purvo iskah da moga da go vrushtam (tova beshe problema), puk posle podobreniata. Sega veche moje da se sloji kakvoto ti dusha iska :)))

"Търсейки по-доброто, често губим доброто" (Шекспир)
Отговор
в отговор на Borg #13

Re: events въпрос

stana li bre???

Отговор
в отговор на css #14

Re: events въпрос

Stana mnou jako :))) tochno tova iskah da se poluchi.
samo nemoga da razbera posledniat red: ac=setInterval('move_mouse()', 1);

Ti beshe napisal action, az napisah ac, kakvoto i oznachenie da sloja - priema go, bez da sum deklariral promenliva .. zashto? (sushtiat vupros vaji i za action1=setTimeout('move_layer()', 1);

"Търсейки по-доброто, често губим доброто" (Шекспир)

Редактирано от Borg на

Отговор
в отговор на Borg #15

Re: events въпрос

ami az polzvam glavno setInterval, a ne setTimeout, no predpolagam che neshtata sa analogichni. Ami posle kato iskash da spresh Interval-a deto si go set-nal, se pisheshe neshto ot roda na clearInterval(action) ili window.clearInterval(action).
Edno vreme pisheh igrichki s JS i chesto go izpolzvah, ako ne spirash i puskash intervalite taka che da ne se zastupvat, igrichkata varvi kato na Pravec 16. Ta ottam predpolagam mi e ostanalo kato navik da imenuvam vseki timeout.

Отговор
в отговор на Borg #16

Re: events въпрос

uxa, ti si uspql :) Variantyt na css be6e po-iz4isten, dokolkoto razbrah e svyr6il rabota? :) Ai, kat napravi6 sita placni link da gledame :)
Btw, kakvo stranno ima 4e ne si deklariral promenliva? JavaScript e kato php. moje i bez deklaraciq

I want to walk into the lights

Отговор
в отговор на voyager #17

Re: events въпрос

dosega vinagi mi e davalo greshka, ako predvaritelno ne sum ja deklariral

"Търсейки по-доброто, често губим доброто" (Шекспир)
Отговор
в отговор на css #18

Re: events въпрос

pusni malko links da pojitkame

"Търсейки по-доброто, често губим доброто" (Шекспир)
Отговор
в отговор на Borg #19

Re: events въпрос

zavisi ot koja strana na uravnenieto e
Ako e v ljavo - tova si e ednovremenno deklarirane i prisvojavane t.e. pisane v promenlivata, ako e otdjasno, togava e chetene ot neja.

Отговор
в отговор на Borg #20

Re: events въпрос

hubavo de, ej sega da gi namerja

Отговор