Сейчас: 10:32:08   18-го апреля 2024 г.
UsefulScript.ruСкриптыГрафикаЗамена картинки под курсором
28
85

Замена изображения при наведении
на него курсора мыши

Бывают различные ситуации, когда при наведении курсора мышки на какое-либо изображение, бывает просто необходимо показать пользователю другое (следующее) изображение. Причем второе изображение может отличаться по размерам от первого. В данной теме мы рассмотрим, как это можно реализовать при помощи JavaScript кода, без использования CSS.


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


Картинка, меняющаяся при наведении курсора мышки

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

JavaScript код:
<script type="text/javascript">
if (
document.images) {
 
image_on = new Image();
 
image_on.src "tineye2.jpg";
 
image_on.width "400";
 
image_off = new Image();
 
image_off.src "tineye.jpg";
 
image_off.width "300";
}
function 
change_img() {
 if (
document.images) {
  for (var 
i=0i<change_img.arguments.lengthi+=2) {
  
document[change_img.arguments[i]].src = eval(change_img.arguments[i+1] + ".src");
  
document[change_img.arguments[i]].width = eval(change_img.arguments[i+1] + ".width");
  }
 }
}
</script>

В том месте Вашей странички, где Вы хотите вставить изображение, которой будет меняться на другое при наведении на него курсора мышки, вставьте вот такой код:

HTML код:
<a href="http://usefulscript.ru/tineye.php">
 <
img src="tineye.jpg" onmouseout="change_img('image', 'image_off')"
 
onmouseover="change_img('image', 'image_on')" width="300" name="image"
 
alt="Картинка, меняющаяся при наведении курсора мышки">
</
a>
Дата создания: 14:24:46 03.07.2011 г.
Дата обновления: 22:36:47 08.03.2012 г.
Посещений: 15452 раз(а).

Комментарии посетителей (6 шт.):
sekenai
0
# 392
(14:19:15  14.11.2012 г.)

Это делается проще при помощи css :hover
Ответить

Никита
1
# 1324
(17:37:19  11.12.2013 г.)

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

Есть основной блок DIV внутри которого расположен ещё один блок DIV со стилем, в котором расположена картинка. Хочу, чтобы при наведении на основной блок менялась картинка внутри второго блока.

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

Надеюсь, я правильно выразился и с нетерпением буду ждать ответ.
Ответить

Administrator
0
# 1326
(20:00:10  11.12.2013 г.)

Если я правильно Вас понял, то замените второй код на такой:
<div style="border: 1px solid blue; width: 600px; text-align: center;" onmouseout="change_img('image', 'image_off')" onmouseover="change_img('image', 'image_on')">
Любой текст и т.д.
<div style="border: 1px solid red; width: 500px;">
Блок с картинкой<br>
<img src="image/tineye.jpg" width="300" name="image">
</div>
</div>
Ответить

assberk
1
# 3181
(09:56:14  24.04.2016 г.)

Без понятия, ответят ли мне, но все же попытаюсь. Все работает отлично. Да, но только с одной "кнопкой", а когда я пытаюсь создать вторую: все слетает, что на первой, что на второй. Как сделать чтобы этот скрипт можно было использовать неоднократное количество раз на странице?
Ответить

Administrator
2
# 3182
(15:39:55  24.04.2016 г.)

Ну почему же не ответят :)
Т.к. скрипт очень "древний", то лучше воспользоваться вот таким обновленным кодом:
<script type="text/javascript">
function change_img(a, b, c) {
document.getElementById(a.id).src = b;
document.getElementById(a.id).width = c;
}
</script>

<img src="image/tineye.jpg" width="300" id="image1"
onmouseout="change_img(this, 'image/tineye.jpg', 300)"
onmouseover="change_img(this, 'image/tineye2.jpg', 400)">

<img src="image/favicon_1.png" width="400" id="image2"
onmouseout="change_img(this, 'image/favicon_1.png', 400)"
onmouseover="change_img(this, 'image/favicon_2.png', 500)">
Ответить

assberk
0
# 3183
(19:33:37  24.04.2016 г.)

О да! Спасибо! Все работает прекрасно! Сейчас буду в сайт встраивать, Вы мне очень помогли, спасибо.
Ответить

Закрыть
Ваше имя:
218 + 6 =
Добавить комментарий:
Ваше имя:
218 + 6 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 3

Какую CMS для сайта Вы предпочитаете?