如何在jquery中的png里面写一下click事件?

时间:2014-02-28 14:17:47

标签: jquery html html5 css3

我有png图像,里面有一个洞,所以通过它可以看到它后面的图像。我需要的是,我想将click事件写入此内部图像。有可能吗?

JSFIDDLE

//code
 $('#ant).click(function()
    {
        alert("hi");
    });

6 个答案:

答案 0 :(得分:0)

您可能想要创建一个图像映射。 查看http://www.image-maps.com以获得生成一个相对简单的方法,或在< map>上查看W3Schools页面。标记:http://www.w3schools.com/tags/tag_map.asp

答案 1 :(得分:0)

使用jQuery实现这一点很困难(顶部的图像总是需要点击事件),我建议你看一下<map>标签:

http://www.w3schools.com/tags/tag_map.asp

答案 2 :(得分:0)

问题是顶部图像仍然存在,即使它是透视的。您可以尝试在顶部图像中单击该位置,执行以下操作:

JSFiddle

 $('#rainbow').click(function (e) {
    var offset = $(this).offset();
    var left = e.clientX - offset.left;
    var top = e.clientY - offset.top;
     if (left > 95 && left < 300) {
         if (top > 95 && top < 220) {
             alert("hi");
         }
     }
 });

以上实际上非常接近,但由于图像开口不是正方形,所以并不完美。你可以记录lefttop来解决这个问题,并准确找出你想要计算的内容,如果你想要更精确的话,可以添加更多逻辑。

答案 3 :(得分:0)

在jquery中,您可以将click事件放在两个图像上,而顶部图像将trigger底部图像点击事件

$("#topImage").click(function(e) { 
    e.preventDefault();
    $("#bottomImage").trigger("click"); 
});

$("#bottomImage").click(function(e) { 
    alert("bottom image beep"); 
});

因此,单击顶部图像将触发底部图像onclick处理程序

答案 4 :(得分:0)

将图片作为背景放在第一个DIV,DIV第二个位置在洞的中心,第三个DIV用来写警报。

<script>
    $(function(){
        $('#ant).click(function()
        {
            $('#message).html("Hi. This is event inside hole...");
        });
    });
</script>

<div class="background-image">
    <div class="container">
        <div id="message"></div>
    </div>
</div>

<button type="button" id="ant">Click and write</button>

当然,您需要精心梳理CSS ...

答案 5 :(得分:0)

除了此处所述的所有内容之外,<area>标记可以为您提供帮助 虽然坐标是编写有效代码的旧方法,但它们可以通过键入x1,y1,x2,y2 shape=rectx,y,radius shape="circle"来定位图像上的特定点。
您还有shape="poly"多边形,由x1,y1,x2,y2,..,xn,yn编写。

我建议您可以尝试这种方式,选择您最喜欢的,当然对您最有效。
W3SCHOOLS AREA TAG EXPLAIN