Страница 1 из 1

Прошу вашей помощи с вызовом скрипта

Добавлено: 13 окт 2005, 02:14
Костик
Есть скрипт. Как сделать так,чтобы при событии OnmouseOver() он запускался и при событии OnmouseOut()
он не работал? Очень прошу вашей помощи! :cry:

Код: Выделить всё

<script type="text/javascript">


var delay = 2000; //set delay between message change (in miliseconds)
var maxsteps=30; // number of steps to take to change from start color to endcolor
var stepdelay=40; // time in miliseconds of a single step
//**Note: maxsteps*stepdelay will be total time in miliseconds of fading effect
var startcolor= new Array(255,255,255); // start color (red, green, blue)
var endcolor=new Array(0,0,0); // end color (red, green, blue)

var fcontent=new Array();
begintag='<div style="font: normal 14px Arial; padding: 5px;">'; //set opening tag, such as font declarations
fcontent[0]="[b]What\'s new?[/b]
New scripts added to the Scroller category!

The MoreZone has been updated. [url=../morezone/index.htm]Click here to visit[/url]";
fcontent[1]="Dynamic Drive has been featured on Jars as a top 5% resource, and About.com as a recommended DHTML destination.";
fcontent[2]="Ok, enough with these pointless messages. You get the idea behind this script.</a>";
closetag='</div>';

var fwidth='150px'; //set scroller width
var fheight='150px'; //set scroller height

var fadelinks=1;  //should links inside scroller content also fade like text? 0 for no, 1 for yes.

///No need to edit below this line/////////////////


var ie4=document.all&&!document.getElementById;
var DOM2=document.getElementById;
var faderdelay=0;
var index=0;


/*Rafael Raposo edited function*/
//function to change content
function changecontent(){
 if (index>=fcontent.length)
   index=0
 if (DOM2){
   document.getElementById("fscroller").style.color="rgb("+startcolor[0]+", "+startcolor[1]+", "+startcolor[2]+")"
   document.getElementById("fscroller").innerHTML=begintag+fcontent[index]+closetag
   if (fadelinks)
     linkcolorchange(1);
   colorfade(1, 15);
 }
 else if (ie4)
   document.all.fscroller.innerHTML=begintag+fcontent[index]+closetag;
 index++
}

// colorfade() partially by Marcio Galli for Netscape Communications.  ////////////
// Modified by Dynamicdrive.com

function linkcolorchange(step){
 var obj=document.getElementById("fscroller").getElementsByTagName("A");
 if (obj.length>0){
   for (i=0;i<obj.length;i++)
     obj[i].style.color=getstepcolor(step);
 }
}

/*Rafael Raposo edited function*/
var fadecounter;
function colorfade(step) {
 if(step<=maxsteps) { 
   document.getElementById("fscroller").style.color=getstepcolor(step);
   if (fadelinks)
     linkcolorchange(step);
   step++;
   fadecounter=setTimeout("colorfade("+step+")",stepdelay);
 }else{
   clearTimeout(fadecounter);
   document.getElementById("fscroller").style.color="rgb("+endcolor[0]+", "+endcolor[1]+", "+endcolor[2]+")";
   setTimeout("changecontent()", delay);

 }   
}

/*Rafael Raposo's new function*/
function getstepcolor(step) {
 var diff
 var newcolor=new Array(3);
 for(var i=0;i<3;i++) {
   diff = (startcolor[i]-endcolor[i]);
   if(diff > 0) {
     newcolor[i] = startcolor[i]-(Math.round((diff/maxsteps))*step);
   } else {
     newcolor[i] = startcolor[i]+(Math.round((Math.abs(diff)/maxsteps))*step);
   }
 }
 return ("rgb(" + newcolor[0] + ", " + newcolor[1] + ", " + newcolor[2] + ")");
}

if (ie4||DOM2)
 document.write('<div id="fscroller" style="border:1px solid black;width:'+fwidth+';height:'+fheight+'"></div>');

if (window.addEventListener)
window.addEventListener("load", changecontent, false)
else if (window.attachEvent)
window.attachEvent("onload", changecontent)
else if (document.getElementById)
window.onload=changecontent

</script>

Добавлено: 13 окт 2005, 13:59
Duncon
onMouseOver="you function();"
Тебе надо только выбрать над каким объектом запускать например над картинкой
[img]4.gif[/img]</A><A HREF="" onMouseOver="msover();" onMouseOut="msover(nill);">
что-то типа этого
или пишишь 2 функции одна запускает функцию а во второй просто приравниваешь ее к nill

Добавлено: 13 окт 2005, 14:04
Костик
Пробовал так, ничего не выходит :(

Добавлено: 13 окт 2005, 19:15
Duncon
Блин люди в нете валяются болие ли менее отстойные учебники по JavaScript - это же простейшие темы...

Код: Выделить всё

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head>
<script language="JavaScript">
<!--
function msover(n){
if (n!=1)
твоя функция();
else{

}
}
//-->
</script>
<body>
[url=index.htm]123123[/url]
</body></html>
[/color]

Добавлено: 14 окт 2005, 23:15
Костик
Ты думаешь я это не пробовал?? Попробуй сам сначала перед тем как отвечать, тем более в такой "благоприятной" форме.

Добавлено: 15 окт 2005, 01:23
Oscar
Костик, такой длинный код никто не читает.

Тем ни мение:

1. добавляешь вверху:
var play = true;

2. Подправляешь ф-цию changecontent:

Код: Выделить всё

function changecontent(){
if (play) {


 if (index>=fcontent.length)
   index=0
 if (DOM2){
   document.getElementById("fscroller").style.color="rgb("+startcolor[0]+", "+startcolor[1]+", "+startcolor[2]+")"
   document.getElementById("fscroller").innerHTML=begintag+fcontent[index]+closetag
   if (fadelinks)
     linkcolorchange(1);
   colorfade(1, 15);
 }
 else if (ie4)
   document.all.fscroller.innerHTML=begintag+fcontent[index]+closetag;
 index++


} else {


 if (DOM2)
   document.getElementById("fscroller").innerHTML=begintag+closetag;
 else if (ie4)
   document.all.fscroller.innerHTML=begintag+closetag;


}

}
3. Добавляешь ф-цию Dunconа:

Код: Выделить всё

function mover(doPlay) {
 play = doPlay;
 changecontent();
}
4. Ставишь ссылку:
test


P.S. Duncon всё правильно написал.

P.P.S. этот код я только что "попробовал"