<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中悬停在透明度上不算作悬停?

        How to make it so that Hovering Over Transparency in a PNG doesn#39;t count as hovering?(如何使它在PNG中悬停在透明度上不算作悬停?)

          <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中悬停在透明度上不算作悬停?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Move link image 5px up on hover(悬停时将链接图像向上移动 5px)
                  How do I inspect CSS pseudo classes with firebug?(如何使用 firebug 检查 CSS 伪类?)
                  Why doesn#39;t CSS hover work on table rows when the cells inside the rows have class names?(当行内的单元格具有类名时,为什么 CSS 悬停在表格行上不起作用?)
                  Hover image - display div over it(悬停图像 - 在其上显示 div)
                  How to apply a CSS class on hover to dynamically generated submit buttons?(如何在悬停时将 CSS 类应用于动态生成的提交按钮?)
                  Differences between CSS3 :hover and :focus?(CSS3 :hover 和 :focus 的区别?)

                      <tbody id='jHid2'></tbody>
                  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>
                        <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>