为什么这在Firefox中不起作用?
Why is this not working in Firefox?
示例如下:
HTML<body>
<p>Click on a color to begin!</p>
<canvas id="colorPicker" width="300" height="300"></canvas>
</body>
JavaScript var elem = document.getElementById('colorPicker');
var context = elem.getContext('2d');
var color, hue = [[255, 0, 0 ],[255, 255, 0 ],[ 0, 255, 0 ],[ 0, 255, 255 ],[ 0, 0, 255 ],[255, 0, 255 ],[255, 0, 0],]
gradient = context.createLinearGradient(0, 0, elem.width, 0);
for (var i = 0; i <= 6; i++) {
color = 'rgb(' + hue[i][0] + ', ' + hue[i][1] + ', ' + hue[i][2] + ')';
gradient.addColorStop(i * 1/6, color);
}
gradient2 = context.createLinearGradient(0, 0, 0, elem.height);
gradient2.addColorStop(0, 'rgba(255, 255, 255, 1)');
gradient2.addColorStop(0.01, 'rgba(255, 255, 255, 1)');
gradient2.addColorStop(0.50, 'rgba(255, 255, 255, 0)');
gradient2.addColorStop(0.52, 'rgba(255, 255, 255, 0)');
gradient2.addColorStop(0.75, 'rgba(0, 0, 0, 1)');
gradient2.addColorStop(1, 'rgba(255, 255, 255, 1)');
context.fillStyle = gradient;
context.fillRect(0, 0, 500, 500);
context.fillStyle = gradient2;
context.fillRect(0, 0, 500, 500);
elem.addEventListener('click', function(e) {
var x = e.offsetX; // lame but close enough for now
var y = e.offsetY;
var data = context.getImageData(x, y, 1, 1).data;
// just paint it to the bottom right as an example for now:
var rgb = 'rgb(' + data[0] + ',' + data[1] + ',' + data[2] + ')';
$('#fluidWrap').css({backgroundColor: rgb});
$('body').css({backgroundColor: rgb});
$('.content').css({backgroundColor: rgb});
}, false);
它可以在所有浏览器中工作,除了firefox。这和它是rgb有关系吗?我看了一下,在background-color
中使用rgb是很好的。
我该怎么做才能使它工作?
如果你尝试在eventandler上使用Firebug和breakpoint,你会看到在Firefox中单击事件有:
e.clientX
e.clientY
但不包括e.offset
。
它在IE8中也不工作(对我来说)
固定http://jsfiddle.net/jdb1991/XR3QF/
相关文章:
- 为什么javascript:void(0)在Firefox中不起作用
- jpm的默认Firefox路径没有'不起作用
- 设置 CSS 背景在 Firefox 中不起作用
- document.getElementById 在 Firefox 中不起作用
- firefox中的CSS动画不起作用
- event.stopPropagation()在firefox javascript中不起作用
- 复选框.onClick在firefox中不起作用
- window.close();在Chrome和Firefox中不起作用
- JQuery在Chrome中不起作用,但Firefox很好
- 选择“行在 Chrome 和 Firefox 中不起作用(生成的代码)”
- Javascript 按键事件在 Firefox 中不起作用
- window.dispatchEvent 在 Firefox、Safari 或 IE 中不起作用
- 更改 Angular 2 中选择的事件在 Firefox 和 Edge 中不起作用
- jQuery SlideToggle() 在 FireFox 中不起作用,在 Chrome 中工作
- 动态关键帧插入在 IE 或 Firefox 上不起作用
- 使用 nameProp 的 JQuery 图像滚动更新在 Firefox 和 Chrome 中不起作用
- Javascript键码在Firefox中不起作用,但在chrome中运行良好
- HTML5<视频>元素在Firefox、Opera和Safari中不起作用
- 输入类型的图像在Internet Explorer中不起作用,但在Chrome和Firefox中起作用
- Ajax 提交表单不起作用 Firefox