02-02-2005, 01:48
|
|
|
|
חבר מתאריך: 20.06.03
הודעות: 5,616
|
|
עוד תיקון לתיקון...
(:
דבר ראשון - אותיות קטנות, הכל!! (xhtml)
דבר שני, כאשר מתבצעת הפעולה שלך, אזי במעבר מעל האובייקט, הוא יטען את התמונה השנייה מהשרת, דבר שגורם לעיכוב בשינוי של התמונה.
מה שצריך לעשות הוא זה:
טעינת התמונה - טעינת כל התמונות נעשה בזמן עליית הדף. התהליך כולו שאני אציג פה, יראה אולי ארוך ומגושם, אך בהתחשב בעובדה שנצטרך
לעבוד עם אתרים גדולים המטפלים בעשרות אם לא מאות ארועים שונים, שיטה זו עדיפה תמיד. בכל מקרה, קיימות מספר פונקציות שכבר הגיעו למצב
בו כל הכתיבה המקצועית נעזרת בהן או בשכמותן, אין צורך להמציא את הגלגל מחדש.
וככה זה צריך להתבצע (pic1 היא התמונה המקורית, pic2 הינה התמונה החדשה):
קוד PHP:
<body onload="preloadImages('pic2.gif')">
פה תיטען התמונה בזמן טעינת הדף ע"י הפונציה preloadImages:
קוד PHP:
function preloadImages() { if(document.images) { if(!document.imageArray) document.imageArray = new Array(); var i,j = document.imageArray.length, args = preloadImages.arguments; for(i=0; i<args.length; i++) { if (args[i].indexOf("#")!=0) { document.imageArray[j] = new Image; document.imageArray[j++].src = args[i]; } } } }
הקוד שנשים לקישור יהיה זה:
קוד PHP:
<a href="http://go.to.this.url" onmouseout="swapImgRestore()" onmouseover="swapImage('Image1','','pic2.gif',1)"> <img src="pic1.gif" alt="text come here" name="Image1" border="0" id="Image1" /> </a>
כשהפונקציות האחראיות על ההחלפה והחזרה של התמונה, swapImage ו-swapImgRestore מוצגות כאן:
קוד PHP:
function swapImage() { var i,j=0,x,a=swapImage.arguments; document.sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=getElementById(a[i]))!=null){ document.sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2]; } } function swapImgRestore() { var i,x,a=document.sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; }
|