<small id='6xbxM'></small><noframes id='6xbxM'>

    • <bdo id='6xbxM'></bdo><ul id='6xbxM'></ul>

      <tfoot id='6xbxM'></tfoot>
    1. <i id='6xbxM'><tr id='6xbxM'><dt id='6xbxM'><q id='6xbxM'><span id='6xbxM'><b id='6xbxM'><form id='6xbxM'><ins id='6xbxM'></ins><ul id='6xbxM'></ul><sub id='6xbxM'></sub></form><legend id='6xbxM'></legend><bdo id='6xbxM'><pre id='6xbxM'><center id='6xbxM'></center></pre></bdo></b><th id='6xbxM'></th></span></q></dt></tr></i><div id='6xbxM'><tfoot id='6xbxM'></tfoot><dl id='6xbxM'><fieldset id='6xbxM'></fieldset></dl></div>
    2. <legend id='6xbxM'><style id='6xbxM'><dir id='6xbxM'><q id='6xbxM'></q></dir></style></legend>

        如何使它在PNG中悬停在透明度上不算作悬停?

        时间:2023-11-29

          <bdo id='l7w7b'></bdo><ul id='l7w7b'></ul>

          <small id='l7w7b'></small><noframes id='l7w7b'>

              <legend id='l7w7b'><style id='l7w7b'><dir id='l7w7b'><q id='l7w7b'></q></dir></style></legend>
                <tbody id='l7w7b'></tbody>
              <tfoot id='l7w7b'></tfoot>
            1. <i id='l7w7b'><tr id='l7w7b'><dt id='l7w7b'><q id='l7w7b'><span id='l7w7b'><b id='l7w7b'><form id='l7w7b'><ins id='l7w7b'></ins><ul id='l7w7b'></ul><sub id='l7w7b'></sub></form><legend id='l7w7b'></legend><bdo id='l7w7b'><pre id='l7w7b'><center id='l7w7b'></center></pre></bdo></b><th id='l7w7b'></th></span></q></dt></tr></i><div id='l7w7b'><tfoot id='l7w7b'></tfoot><dl id='l7w7b'><fieldset id='l7w7b'></fieldset></dl></div>

                  本文介绍了如何使它在PNG中悬停在透明度上不算作悬停?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  当我将鼠标悬停在 PNG 的透明部分上时,它仍然表现得好像我悬停在实际图像上一样.有没有办法可以防止这种情况发生?这样只有当我将鼠标悬停在图像的可见部分而不是透明部分时它才会采取行动?

                  When I hover over the transparent part of a PNG, it still acts as though I'm hovering over the actual image. Is there a way that I can prevent that from happening? So that it only takes action when I hover over the visible part of the image, and not the transparent part?

                  我尝试裁剪透明度,但找不到方法.

                  I tried to crop out the transparency, but I couldn't find a way how.

                  推荐答案

                  可以通过将png转换为canvas元素来完成

                  这是通过将 png 加载到 HTML-5 画布元素中,然后在画布上查询被点击像素的 alpha 值来实现的.

                  Can be done by converting png to canvas element

                  This works by loading a png into an HTML-5 canvas element, and then querying the canvas for the alpha value of the clicked pixel.

                  HTML如下...

                  <!-- create a canvas element to hold the PNG image -->
                  <canvas id="canvas1" width="500" height="500"></canvas>
                  

                  像这样的Javascript...

                  Javascript like this...

                  // select the canvas element with jQuery, and set up
                  // a click handler for the whole canvas
                  $('#canvas1').on('click', function(e) {
                      // utility function for finding the position of the clicked pixel
                      function findPos(obj) {
                          var curleft = 0, curtop = 0;
                          if (obj.offsetParent) {
                              do {
                                  curleft += obj.offsetLeft;
                                  curtop += obj.offsetTop;
                              } while (obj = obj.offsetParent);
                              return { x: curleft, y: curtop };
                          }
                          return undefined;
                      }
                      // get the position of clicked pixel
                      var pos = findPos(this);
                      var x = e.pageX - pos.x;
                      var y = e.pageY - pos.y;
                      // get reference to canvas element clicked on
                      var canvas = this.getContext('2d');
                      // return array of [RED,GREEN,BLUE,ALPHA] as 0-255 of clicked pixel
                      var pixel = canvas.getImageData(x, y, 1, 1).data;
                      // if the alpha is not 0, we clicked a non-transparent pixel
                      // could be easily adjusted to detect other features of the clicked pixel
                      if(pixel[3] != 0){
                          // do something when clicking on image...
                          alert("Clicked the dice!");
                      }
                  });
                  
                  // get reference to canvas DOM element
                  var canvas = $('#canvas1')[0];
                  // get reference to canvas context
                  var context = canvas.getContext('2d');
                  
                  // create an empty image
                  var img = new Image();
                  // after loading...
                  img.onload = function() {
                      // draw the image onto the canvas
                      context.drawImage(img, 0, 0);
                  }
                  
                  // set the image source (can be any url - I used data URI to keep demo self contained)
                  img.src = "data:image/png;base64,iVBORw0KGgoAAAANS ... more image data ...TkSuQmCC"; // PNG with transparency
                  

                  这篇关于如何使它在PNG中悬停在透明度上不算作悬停?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:将鼠标悬停在图像上以显示按钮,并且在悬停在实际按钮上时不触发 下一篇:jQuery图像悬停效果

                  相关文章

                  1. <legend id='jHid2'><style id='jHid2'><dir id='jHid2'><q id='jHid2'></q></dir></style></legend>

                    <small id='jHid2'></small><noframes id='jHid2'>

                      <bdo id='jHid2'></bdo><ul id='jHid2'></ul>
                  2. <tfoot id='jHid2'></tfoot>

                    <i id='jHid2'><tr id='jHid2'><dt id='jHid2'><q id='jHid2'><span id='jHid2'><b id='jHid2'><form id='jHid2'><ins id='jHid2'></ins><ul id='jHid2'></ul><sub id='jHid2'></sub></form><legend id='jHid2'></legend><bdo id='jHid2'><pre id='jHid2'><center id='jHid2'></center></pre></bdo></b><th id='jHid2'></th></span></q></dt></tr></i><div id='jHid2'><tfoot id='jHid2'></tfoot><dl id='jHid2'><fieldset id='jHid2'></fieldset></dl></div>