简体   繁体   English

鼠标悬停时如何使div出现在图像的特定区域标签上?

[英]How can I make a div appear over specific area tags on an image on mouseover?

I have some javascript that moves an image continuously left. 我有一些JavaScript,可以将图像连续向左移动。 When you mouseover the image, I want the scrolling to stop, and I want a slightly transparent div with some custom text to appear over whatever area tag your mouse is over. 当您将鼠标悬停在图像上时,我希望停止滚动,并且希望在鼠标悬停在的任何区域标签上都带有一些自定义文本的稍微透明的div。

Here is the JS I'm using, and I commented out where things should happen. 这是我正在使用的JS,我注释了应该在哪里发生。 How would I do this? 我该怎么做?

$(document).ready(function() {
                var date = new Date();
                var style = "day"
                if (date.getHours() >= 17 && date.getHours() <=5) {
                    style="night";
                }
                setInterval(wells_fancy_slider, 50);
                $('area').hover(function() {
                                    // here is where the code should go
                    paused = true;
                }, function() {
                                    // here is where you hide the div
                    paused = false;
                })
            })

            function wells_fancy_slider() {
                if (!paused) {
                    if (parseInt($('#pic1').css('left')) < -2770) {
                        $('#pic1').css('left', '5586');
                    }
                    if (parseInt($('#pic2').css('left')) < -2770) {
                        $('#pic2').css('left', '5586');
                    }
                    if (parseInt($('#pic3').css('left')) < -2770) {
                        $('#pic3').css('left', '5586');
                    }
                    $('#pic1, #pic2, #pic3').css('left', '-=5');
                }
            }

Not sure it will fit your needs: 不确定是否会满足您的需求:

CSS: CSS:

#mydiv{position:absolute;display:none}

    $('area').hover(function() {                

   $('mydiv').offset({ top: $(this).offset().top, left: $(this).offset().left}).fadeIn();
                paused = true;
            }, function() {
                   $('#mydiv').hide();
                paused = false;
            })

Try this one.. 试试这个

t = setInterval(wells_fancy_slider, 50);

$('#area').hover(function(e) {
    clearInterval(t);
    var parentOffset = $(this).offset(); // or $(this).parent().offset();
    var x = e.pageX - parentOffset.left;
    var y = e.pageY - parentOffset.top;

    paused = true;
}, function() {
    clearInterval(t);
    t = setInterval(wells_fancy_slider, 50);
    paused = false;
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM