К списку форумов К списку вопросов
Простой java script
makm
07.04.2004 - 11:19
Подскажите. Для того, чтобы при наведении мышкой на картинку, менялась эта же картинка, использую код <img
            onMouseOver='eng("s","gif/news2.gif")'
            onMouseOut='eng("s","gif/abit.gif")'
            src="gif/s.gif" border=0 name=s >
преварительно ссылась на файл скрипта с функцией eng -
  
function eng(name,src)
  {
    document.images[name].src=src;
  }
Что мне поменять или дописать, чтобы при наведении на эту же картинку, менялась одновременно и она, и другая, находящаяся в другой ячейке html
buster
1 - 07.04.2004 - 11:30
Дать другой картинке, например, name=s1. И в функции дописать строку:
document.images[name+"1"].src=src;
makm
2 - 07.04.2004 - 11:46
а как и где указать, что картинка в другой ячейке другая, а то он грузит туда файл s и s1
makm
3 - 07.04.2004 - 11:55
Ошибся. Он загружает файлы news2 и abit . т.е. повторяет все действия для name = s
makm
4 - 07.04.2004 - 12:00
Может я не правильно выразился. Мне нужно чтобы во второй ячейке появлялась любая другая картинка, не файл news2.gif Куда дописать имя картинки, на которую должна меняться картинка из второй ячейки?
buster
5 - 07.04.2004 - 12:16
Добавь ещё одну переменную в функцию:
function eng(name,src,src2)
  {
    document.images[name].src=src;
    document.images[name+1].src=src2;
  }
А в вызове функции передавай имя второй картинки:
onMouseOver='eng("s","gif/news2.gif","gif/news3.gif")'
buster
6 - 07.04.2004 - 12:17
неточно скопировал,правильно так:
document.images[name+"1"].src=src2;
makm
7 - 07.04.2004 - 12:54
Спасибо. И ещё вопрос. Как сделать такую же операцию, только чтобы, когда я навожу мышь на кнопку меню, подсказка появляется в определенном месте, потом я навожу на другую кнопку, появляется подсказка в том же месте, где была предыдущая.
buster
8 - 07.04.2004 - 12:57
Сделать подсказки на слоях. Слои сделать нефидимыми. Расположить в одном и том же месте. При наведении показывать нужный слой, при убирании - прятать.
Mips
9 - 07.04.2004 - 19:03
<div id=help style="visibility:hidden; position:absolute; left:99; top 99;">подсказка</div>
<span onmouseover="help.style.visibility=''" onmouseout="help.style.visibility='hidden'">подсказка</span>
 
 а картинкам лучше делать прелоад.
<script>
c1 = new Image(); c1.src = "c1.gif";
c2 = new Image(); c2.src = "c2.gif";
</script>
 
 а потом куда надо их втыкать
  
 <script>
function eng(name,src,src2)
  {
    document.images[name].src=c1;
    document.images[name+1].src=c2;
  }
 </script>
DIVЕR
10 - 08.04.2004 - 00:32
С картинками я обычно делаю так:
 
function light( sender ) {
  sender.src = sender.name + "_active.gif";
}
function restore( sender ) {
  sender.src = sender.name + ".gif";
}
 
ну и пример:
 
<img name="news" src="news.gif" onmousemove="light(this);" onmouseout="restore(this);">
 
Естественно, с прелоадом до всего этого... (знаю, что sender использовать даже не обязательно, просто так нагляднее :) )
Fenakertiban
11 - 08.04.2004 - 23:04
а не проще ли просто вызвать эту функуию 2 раза , но с разными аргументами ? (function eng(name,src)
Mips
12 - 09.04.2004 - 09:27
Fenakertiban, можно и так ;)
Если картинок много, и не хочется каждой прописывать onmouseover и out, то я пишу так:
 
<style>img{border:0}</style>
<script>
document.onmouseover=over;
document.onmouseout=out;
function over(){
  e=event.srcElement;
  if (e.tagName=="IMG" && e.className=="changeable") e.src=e.name+"_over.gif";
}
function out(){
  e=event.srcElement;
  if (e.tagName=="IMG" && e.className=="changeable") e.src=e.name+".gif";
}
 </script>
<img class="changeable" name="pic1" src="pic1.gif">
<img class="changeable" name="pic2" src="pic2.gif">
 
тут в одну функцию вроде никак не слепишь.
Любопытный варвар
13 - 09.04.2004 - 22:31
Мипс (12), а как же прелоад?
buster
14 - 10.04.2004 - 10:10
Ну, блин, про прелоад даже не говорит никто, это само собой разумеется. Никто же не спрашивает: “А где же <html></html>?”
:о))

К списку вопросов на форуме Веб-дизайн

>>