【问题标题】:Javascript Png transparency hitTest detection with divJavascript Png 透明度 hitTest 检测与 div
【发布时间】:2015-09-23 15:56:00
【问题描述】:

有没有办法通过使用另一个 div 作为参考的 hittest 来检测 div png 背景或 png 图像部分是否透明? 可以说,每次#char 超过不透明度小于 100% 的像素时,都会检测到并发出警报。有没有办法用 javascript 或 jquery 解决这个问题?

LIVE DEMO HERE

$(document).ready(function () {

    setInterval(moveChar, 20);
    var keys = {}

    $(document).keydown(function (e) {
        keys[e.keyCode] = true;
    });

    $(document).keyup(function (e) {
        delete keys[e.keyCode];
    });


    function moveChar() {

        for (var direction in keys) {
            if (!keys.hasOwnProperty(direction)) continue;
            if (direction == 37) {
                $("#char").animate({
                    left: "-=5"
                }, 0);
            }
            if (direction == 38) {
                $("#char").animate({
                    top: "-=5"
                }, 0);
            }
            if (direction == 39) {
                $("#char").animate({
                    left: "+=5"
                }, 0);
            }
            if (direction == 40) {
                $("#char").animate({
                    top: "+=5"
                }, 0);
                walk("down");
            }
        }
    }

});

【问题讨论】:

  • 它没有重复,因为我想为移动的 DIV 应用规则。
  • 目前在 web 平台上获取像素值的唯一选择是
  • 也许我应该编辑我的问题我们问一个新问题?感谢您的回复。

标签: javascript jquery html css


【解决方案1】:

我不确定这是否可行,但我认为它会:

我对这个问题进行了相当多的研究,得出的结论是在 JavaScript 中创建功能测试是不可行的,并且 IE 6 是唯一不支持的严重使用的浏览器PNG透明度。在这种情况下,您最好的选择是有条件的 cmets,正如 Gabriel Ross 所推荐的那样。可以在纯 JavaScript 中使用条件 cmets,我认为这是您想要的:

var div = document.createElement("div");
div.innerHTML = "<!--[if lte IE 6]><i></i><![endif]-->";
var isIe6orLower = (div.getElementsByTagName("i").length == 1);

alert("Is IE 6 or lower: " + isIe6orLower);

See the link

【讨论】:

  • 谢谢,但在这种情况下,IE 6 将无法正常工作,无论是否工作。
  • 但是 cmets 如何帮助我做这个命中测试呢?
  • " IE 6 是唯一被认真使用的浏览器".... IE6 几年前就死了。当访问现代网站时,使用它的人应得的。就这么简单
  • 这个答案没有响应。
猜你喜欢
  • 2010-10-16
  • 2017-03-13
  • 2011-10-24
  • 1970-01-01
  • 2013-04-11
  • 1970-01-01
  • 1970-01-01
  • 2011-10-08
  • 2010-10-07
相关资源
最近更新 更多