javascript - Raphael JS - 单击时防止文本突出显示

标签 javascript css raphael

演示:http://jsfiddle.net/p7Lze6nh/

使用 Raphael JS 2.1.2,我试图在单击元素时禁用文本突出显示。它在 Chrome 上执行,但出于某种原因不在 IE 上执行。我目前在这台笔记本电脑上没有 FF 来测试。

代码比较简单-

var paper = Raphael(0, 0, 125, 125);
paper.canvas.style.backgroundColor = "Black";
var a = 0;

text1 = paper.text(10, 10, a).attr({"text-anchor":"start", fill:"white"});
rect1 = paper.rect(10, 50, 50, 50).attr({fill:"white"});

rect1.click(function(){
    inc()
});

function inc() {
    a++;
    text1.attr({text: a});
}

我已经尝试使用“user-select: none”和其他各种 CSS 规则,这些规则是通过示例为包含该论文的 div 找到的,但这没有用。我也试过使用

text1.userSelect = "none";

...和其他人直接进入 javascript,但我也没有得到任何结果。我记得 Cookie Clicker 有这个问题,但我似乎无法在代码中找到解决方案。但是,它也使用 canvas 而不是 Raphael。

最佳答案

用户选择应该可以正常工作,但不是显示的格式。你不能像那样只设置一个对象变量。

使用css样式,可以这样...

text {
       -moz-user-select: none;
       -webkit-user-select: none;
}

jsfiddle

和略有不同的版本直接设置类...

.donthighlight {
       -moz-user-select: none;
       -webkit-user-select: none;
}

text1.node.setAttribute("class","donthighlight");

jsfiddle

我想当心一些旧的浏览器可能不支持这个,这是经常使用 Raphael 的原因,并扩展 css 以包括其他浏览器。

关于javascript - Raphael JS - 单击时防止文本突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25819424/

相关文章:

javascript - 用户输入的字母阴影

javascript - 在 React.js 中交换元素并获取 <error>

javascript - 为 javascript 弹出窗口提供 GET 值

javascript - jQuery 日期时间选择器 onSelect 未按预期工作

javascript - div 相对于另外两个 div 的位置

javascript - 使用 javascript 更改 Raphael 文本的 CSS 样式

javascript - 我的 JSON 数据仅填充到一个 ul 元素中,而不是每个 ul 元素中

javascript - 如何保护 Flash 视频不被刷新?

javascript - Recharts.js ResponsiveContainer 显示类似填充的空白

d3.js - 通过fabric.js推送D3.js输出以支持IE8?