Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   DHTML/JS/CSS (http://www.flasher.ru/forum/forumdisplay.php?f=24)
-   -   Простейший код для ролловера. (http://www.flasher.ru/forum/showthread.php?t=41308)

Vadimm 27.12.2002 10:47

Простейший код для ролловера.
 
Помогите сделать простейший код для ролловера (в виде двух картинок). Отлично помню, что для IE это делается в одну строчку, но забыл как. И чтобы в других браузерах ролловер отображался в статическом режиме.
Заранее благодарю.

DUDE 27.12.2002 22:21

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
//-->
</script>
</head>
<body bgcolor="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="MM_preloadImages('roll_picture_1.gif','roll_picture_2.gif',')">
<a href="1.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','roll_picture_1.gif',1)"><img src="picture_1.gif" name="Image1" width="93" height="37" border="0"></a></td>a href="2.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image2','','roll_picture_2.gif',1)"><img src="picture_2.gif" name="Image2" width="93" height="37" border="0"></a>
</body>
</html>

Илья К 27.12.2002 23:10

1) Для ИЕ. НН это не воспринимает. Про другие не знаю.

<script language="JavaScript" src="schulga.js">
function handleOver1() {
if (document.images) document.imgName1.src=window.event.srcElement.id;
}
function handleOut1() {
if (document.images) document.imgName1.src=window.event.srcElement.anchor;
}
</script>
********
<img onMouseOver="handleOver1();return true;" onMouseOut="handleOut1();return true;" src="out.jpg" anchor="out.jpg" id="over.jpg" name=imgName1>

2) Наверное, для всех. Для ИЕ и НН -- точно.

<script language="JavaScript" src="schulga.js">
function handleOver1() {
if (document.images) document.imgName1.src="over.jpg";
}
function handleOut1() {
if (document.images) document.imgName1.src="out.jpg";
}
</script>
********
<img onMouseOver="handleOver1();return true;" onMouseOut="handleOut1();return true;" src="out.jpg" name=imgName1>

Для создания нескольких роллов просто размножить код недостаточно. Если нужно n роллов, то придется создать n функций для "out", n "over" и n "imgName".
Вообще, для сокрытия чего-либо от НН, есть такой вариант:
function smt ()
{
if (document.all)
{
тело скрываемой функции
}
}

или

if (document.all)
{
скрываемый код
}


P.S. Не всё мне ясно в этой функции. Зачем нужно if (document.images) в её теле и return true; при вызове? Прекрасно ведь без этого пашет.

DUDE 28.12.2002 01:18

2Илья К
ты не прав! по поводу того кода, что я дал. Он работает в NN-4 проверено лично! тока я ему дал с пред-загрузкой так граматней по моему..

Илья К 28.12.2002 01:34

Пардон -- фигня вышла:)
 
Дело в том, что свое сообщение я начал писать до того, как ты вывесил свое, а закончил после. :)
Я просто дал два варианта, один из которых не катит под НН.

DUDE 29.12.2002 01:19

:) :) :)


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

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.