Jump to content
  • 0

Смена картинок при наведении мыши


yojik
 Share

Question

Скачал несколько скриптов по поиску "смена картинки при наведении мыши".

Все они не совсем то, что надо.

Они меняют либо ту картинку, на которую мышь наезжает, либо вот самое близкое:

с сайта http://www.cgi.ru

предлагается несколько гиперссылок, в виде списка, где маркерами служат изображения-нолики, при наведении мыши на ссылку, маркер становится изображением-крестиком.

Мило, но надо малость другое:

есть окно изображения общей картинки, восемь гиперссылок и соответствующие этим ссылкам картинки (8) в папке,

надо, чтобы при наведении на некую ссылку в окне изображения общая картинка сменялась на соответствующую этой ссылке, а при уходе мыши со ссылки, общая картинка возвращалась.

Сделал на VB DHTML. Но не пойму, как это увязать с html-документом... Файлов насоздавалось: DCA, Dsr, dll, exp, lib, bas, не считая vbp и vbw..., да и сказали, что VB может быть и будет работать, но только в осле... мол масдайской продукт будет работать только в масдайском.

Помогите, пожалуйста. Может этот Java переделать или проще новый написать... Собственного Java-опыта нет совсем.

Edited by yojik
Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 0

Нашёл вариант не с наведением, а с кликом по ссылке:

<script>
<!-- Защитили текст скрипта от старых браузеров
function l_image(a)
{
document.images[1].src=A
}
// -->
</SCRIPT>

<UL>
<LI><A HREF="java script:l_image('w1.jpg')">welcome</A></LI>
<LI><A HREF="java script:l_image('s1.jpg')">select</A></LI>
<LI><A HREF="java script:l_image('r1.jpg')">reset</A></LI>
<LI><A HREF="java script:l_image('h1.jpg')">hunter</A></LI>
<LI><A HREF="java script:l_image('c1.jpg')">circle</A></LI>
<LI><A HREF="java script:l_image('v1.jpg')">violet</A></LI>
<LI><A HREF="java script:l_image('b1.jpg')">black</A></LI>
<IMG SRC="open.jpg" NAME="tool">
</UL>

Не работает!

IE ругается:

"document.images.1" - есть null или не является объектом

Что это? Почему?

Link to comment
Share on other sites

  • 0

ничего не понял, просто вот так:

<script>
function changePic(newAddr)
{
document.getElementById('mypic').src=newAddr;
}
function resetPic()
{
document.getElementById('mypic').src='img/default.jpg';
}
</script>

<a href="a.html" onmouseover="changePic('img/a2.jpg');" onmouseout="resetPic();">WWW</a>

mypic - id картинки которая меняется.

Link to comment
Share on other sites

  • 0
ничего не понял, просто вот так:

<script>
function changePic(newAddr)
{
document.getElementById('mypic').src=newAddr;
}
function resetPic()
{
document.getElementById('mypic').src='img/default.jpg';
}
</script>

<a href="a.html" onmouseover="changePic('img/a2.jpg');" onmouseout="resetPic();">WWW</a>

mypic - id картинки которая меняется.

СПАСИБО!!!

Link to comment
Share on other sites

  • 0

Как мне кажется логичней будет это сделать с помощью css

<style>
.but { background: url(but.png); }
.but:hover { background: url(but_hvr.png); }
</style>

<body>
<ul>
<li class="but"><a href="">welcome</a></li>
</ul>
</body>

Edited by spdif
Link to comment
Share on other sites

  • 0

Допустим ксс кроссбраузернее и быстрее, Но, чтобы сделат подмену картинок в ссылке, необходимо в ссылке писать текст, так как картинка идет фоном списка. А если слово не нужно? Просто картинка, тогда ксс не подойдет. Также, минусом является прогрузка изображения при наведении, первая картинка пропала, а вторая не успела прогрузиться (в случае если используется большое изображение).

В js можно поставить прелоадер изображений, то есть сразу прогружаются обе и при наведении идет только подмена.

Могу предложить решение - НО БЕЗ прелоадера.

<script type="text/javascript">

function movepic (img_name,img_src) {

document [img_name].src=img_src;

}

</script>

Что писать в ссылке:

<a href="http://htmlbook.ru" onmouseover="movepic('название файла первого изображения','путь ко второму изображению'"

onmouseout="movepic('название файла первого изображения','путь к первому изображению')">

<img name="путь к первому изображению"></a>

Как то так) Все работает

Link to comment
Share on other sites

  • 0
необходимо в ссылке писать текст, так как картинка идет фоном списка
Вовсе не обязательно.
Также, минусом является прогрузка изображения при наведении
Обходится применением спрайтов. А вот в случае JS — только отдельным прелоадером.
Link to comment
Share on other sites

  • 0

Седня тоже парился с такой же проблемой вот содержимое двух файлов там под себя перепишешь папку с картинками создаш пути укажешьи все если что спрашивай подскожу

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" media="all" />
</head>
<body>
<div id="menu">
<ul>
<li><a href="#" class="about"><span>about</span></a></li>
<li><a href="#" class="portfolio"><span>portfolio</span></a></li>
<li><a href="#" class="blog"><span>blog</span></a></li>
<li><a href="#" class="contact"><span>contact</span></a></li>
</td>
</ul>
</div>
</body>
</html>

style.css

*{
margin:0;
padding:0;
}
body{
background:#848484;
color:#666;
font:0px/0px Tahoma, Arial, Helvetica, sans-serif;
}
#menu{
width:1400px;
background:url(images/menu_41_bg.jpg) no-repeat;
height:40px;
}
#menu ul{
list-style:none;
text-align:center;
}
#menu li{
list-style:none;
display:block;
float:center;
padding:0px 115px 0px;
}
#menu li a{
display:block;
float:left;
}
#menu li a span{
display:none;
}
#menu li a:hover{
text-decoration:none;
}
#menu li a.about{
background:url(images/about.png) no-repeat;
width:190px;
height:40px;
}
#menu li a:hover.about{
background:url(images/about1.png) no-repeat;
}
#menu li a.portfolio{
background:url(images/portfolio.png) no-repeat;
width:166px;
height:40px;
}
#menu li a:hover.portfolio{
background:url(images/portfolio1.png) no-repeat;
}
#menu li a.blog{
background:url(images/blog.png) no-repeat;
width:104px;
height:40px;
}
#menu li a:hover.blog{
background:url(images/blog1.png) no-repeat;
}
#menu li a.contact{
background:url(images/contact.png) no-repeat;
width:639px;
height:40px;
}
#menu li a:hover.contact{
background:url(images/contact1.png) no-repeat;
}


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy