html javascript показать изображение при наведении

Я хочу показать картинку при наведении курсора на определенный текст. Итак, в основном, я хочу отображать/всплывать изображение при наведении курсора на текст.

Я не смог найти хорошего решения ни на одном веб-сайте, поэтому надеюсь, что смогу получить помощь. У меня нет кода для публикации, потому что я не знаю, с чего начать, кроме этого:

<style>
p:hover{
   //Show image code;
}
</style>

person user2774713    schedule 23.11.2013    source источник
comment
Он скрывает изображение, но потом не показывает его, вот мой код ‹img src = media/longhorns.jpg style=visibility:hidden id = img1 onmouseover = show()› ‹script type = text/javascript› function show() { document.getElementById('img1').style.visibility = visible; } скажите, если я сделал что-то не так   -  person user2774713    schedule 24.11.2013
comment
моя ошибка, заключить видимое в кавычки. редактирование моего ответа   -  person imulsion    schedule 24.11.2013


Ответы (3)


Вы можете попробовать скрыть изображение, а затем отобразить его при наведении:

<img src = "foo" style="visibility:hidden" id = "img1" onmouseover = "show()">

<script type = "text/javascript">
function show() {
    document.getElementById('img1').style.visibility = 'visible';
}
</script>
person imulsion    schedule 23.11.2013
comment
Я не уверен, почему, но он все еще не работает. Изображение скрыто. Я скопировал ваш код, и он все еще не работает. Вот мой код еще раз. ‹img src = media/longhorns.jpg style=visibility:hidden id = img1 onmouseover = show()› ‹script type = text/javascript› function show() { document.getElementById('img1').style.visibility = ' видимый'; } ‹/script› Большое спасибо, если вы можете заставить его работать - person user2774713; 24.11.2013
comment
@ user2774713 вы наводите курсор на изображение или текст? Потому что мой код работает только при наведении курсора на изображение. Если вы хотите, чтобы он работал при наведении курсора на текст, просто поставьте атрибут style.visibility = 'visible' into the onmouseover` текстового тега. - person imulsion; 24.11.2013

Чтобы снова немного попрактиковаться в моем javascript, я написал решение, которое показывает ваше изображение рядом с курсором при наведении на элемент со специальным классом (я использую class="text-hover-image" в следующем примере):

HTML

<p>Show image when hovering <a class="text-hover-image" href="#">this link</a> </p>
<p>This does work with every element that has <span class="text-hover-image"> a class of <em>"text-hover-image".</em></span>

Связанный Javascript (с использованием Jquery):

$(document).ready(function () {
    var yOff = 15; // Horizontal position of image relative to mousepointer.
    var xOff = -20; // Vertical position of image relative to mousepointer
    var pathToImage = "https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png";

    $(".text-hover-image").hover(function (e) {
        $("body").append("<p id='image-when-hovering-text'><img src='" + pathToImage + "'/></p>");
        $("#image-when-hovering-text")
            .css("position", "absolute")
            .css("top", (e.pageY - yOff) + "px")
            .css("left", (e.pageX + xOff) + "px")
            .fadeIn("fast");
    },

    function () {
        $("#image-when-hovering-text").remove();
    });

    $(".text-hover-image").mousemove(function (e) {
        $("#image-when-hovering-text")
            .css("top", (e.pageY - yOff) + "px")
            .css("left", (e.pageX + xOff) + "px");
    });
});

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

person halex    schedule 23.11.2013
comment
Это очень сложное решение! - person ʇolɐǝz ǝɥʇ qoq; 28.04.2015

То, что вы показываете, это CSS, а не Javascript.

Что бы я сделал, так это сгенерировал контейнер и 2 div внутри него, один видимый в начале и один скрытый. При наведении на контейнер скройте видимый и покажите другой.

HTML:

<div class="hover_container">
    <div class="text">Show some text here</div>
    <div class="image">
        <img src="image.gif" alt="" />
    </div>
</div>

Исходный CSS:

div.hover_container
{
    width: 300px; /* set a fixed width */
    height: 300px; /* set a fixed height */
}
div.hover_container .text
{
    display: block; /* shown as a block-type element by default, visible */
    width: 300px; /* same width as container */
    height: 300px; /* same height as container */
}
div.hover_container .image
{
    display: none; /* hidden by default */
    width: 300px; /* same width as container */
    height: 300px; /* same height as container */
}
div.hover_container .image img
{
    width: 300px; /* width of the image */
    height: 300px; /* height of the image */
}

Теперь нам нужно скрыть .text и показать .image при наведении курсора на контейнер, поэтому мы добавляем в CSS:

div.hover_container:hover .text
{
    display: none; /* hidden when hovering the container */
}
div.hover_container:hover .image
{
    display: block; /* shown when hovering the container */
}

Обратите внимание, что я не проверял это, но это должно работать. Это не будет анимировано, если вам нужна красивая анимация, попробуйте использовать Javascript. Я не буду говорить об этом, но jQuery может вам в этом помочь.

person Alejandro Iván    schedule 23.11.2013
comment
Он не мог работать таким образом, он просто отображал фактический код. Я попытался поместить его в тег script, но это тоже не сработало. - person user2774713; 24.11.2013
comment
Подождите минуту. Вы ЗНАЕТЕ, как работают HTML/CSS/Javascript, верно? CSS должен быть включен в теги <style></style> (или связан через теги <link /> из другого файла), Javascript использует теги <script></script>. - person Alejandro Iván; 24.11.2013