#javascript #image #onmouseover #rollover-effect
#javascript #изображение #onmouseover #эффект опрокидывания
Вопрос:
У меня есть вопрос об эффектах опрокидывания с использованием JavaScript.
Я читал, что спрайты изображения (изображение с другим изображением на его стороне) можно использовать с помощью смещения CSS для достижения базового опрокидывания при onmouseover
обработке с помощью JS. Также прочитал о возможности изменения самих классов с помощью JS (className) для достижения вышеуказанного эффекта.
Мой вопрос в том, могу ли я изменить сам src изображения с помощью JavaScript для достижения эффекта опрокидывания?
Возможно, такой код —
document.getElementByID("button1").onmouseover = rolloverFunction;
function rolloverFunction(){
this.src = "button1-image2.png";
}
Я набрал что-то вроде этого, чтобы посмотреть, можно ли изменить src изображения при опрокидывании, но это не работает. Не могли бы вы сообщить мне, где я ошибаюсь?
Ответ №1:
Вам нужны mouseover
mouseout
события and . mouseover
срабатывает при наведении курсора мыши на изображение mouseout
при выходе из изображения. Использование обычного старого JS приведет к:
<img src="default.png" id="image" alt="">
<script>
var image = document.getElementById("image");
image.onmouseover = function () {
this.src = "rollover.png";
};
image.onmouseout = function () {
this.src = "default.png";
};
</script>
Или с помощью общей функции, чтобы избежать дублирования URL-адреса:
function rollover_effect(img_elm, rollover_src) {
var default_src = img_elm.src;
img_elm.onmouseover = function () {
img_elm.src = rollover_src;
};
img_elm.onmouseout = function () {
img_elm.src = default_src;
};
}
rollover_effect(document.getElementByID("image"), "rollover.png");
Комментарии:
1. Да, я просто опустил часть onmouseout для краткости. Я полагаю, что мой код делает то же самое, что и то, что вы предложили. Я все еще получаю сообщение об ошибке, в основном изображение при опрокидывании отображается в виде креста; я считаю, что проблема в пути. Не могли бы вы, пожалуйста, дать мне знать, как указать полный путь? Сейчас я тестирую его на своем локальном компьютере, и изображение находится в той же папке, что и веб-страница, скрипт и другие изображения.
2. Я предполагаю, что вы используете Windows, а затем используете пути с обратной косой чертой в нем. В JS вам нужно избегать таких обратных косых черт, поэтому
imagesimage.png
становитсяimages\image.png
. Я рекомендую вам использовать косые черты для путей :images/image.png
. Это всегда работает.3. спасибо, @Lekensteyn. Это сработало. Проблема заключалась в обратной косой черте, которую я использовал для пути к изображению. Использование косой черты сработало. Еще раз спасибо.