Javascript 使用CSS为鼠标光标指定颜色
如何为网页中的鼠标光标指定颜色Javascript 使用CSS为鼠标光标指定颜色,javascript,html,css,cursor,custom-cursor,Javascript,Html,Css,Cursor,Custom Cursor,如何为网页中的鼠标光标指定颜色 有人能给我推荐一种使用HTML、CSS、JavaScript等技术的方法吗?使用图像和CSS光标属性,我看不出有任何JavaScript的需要 如前所述,我使用了auto,它只不过是默认光标,以防您的图像无法加载,就像我们声明了多个字体系列一样。将图像与CSS光标属性一起使用,我看不出有任何JavaScript页面的需要 如前所述,我使用了auto,它只不过是默认光标,以防图像无法加载,就像我们声明了多个字体系列一样。您应该创建/查找自定义光标。然后,使用
有人能给我推荐一种使用HTML、CSS、JavaScript等技术的方法吗?使用图像和CSS
光标属性,我看不出有任何JavaScript的需要
如前所述,我使用了auto
,它只不过是默认光标
,以防您的图像无法加载,就像我们声明了多个字体系列一样。将图像与CSS光标
属性一起使用,我看不出有任何JavaScript页面的需要
如前所述,我使用了auto
,它只不过是默认光标
,以防图像无法加载,就像我们声明了多个字体系列一样。您应该创建/查找自定义光标。然后,使用cursor
CSS属性将其包含在您的网站上
这里有一个教程:您应该创建/查找自定义光标。然后,使用cursor
CSS属性将其包含在您的网站上
这里有一个教程:只是为了增加动态添加光标的可能性,而不提供图像,而是使用JavaScript和画布在客户端生成光标
这个演示包含一个简单的用形状绘制的光标,但也可以是图像、视频等(画布支持的所有内容)
(Firefox于2016年5月更新-从文档移动到元素)
注意:当光标像本演示中那样频繁更改时,FireFox会出现问题-更新为每秒仅更改一次。FF在设置新图像时清除光标,但由于新图像需要解码,因此同时显示默认值。Chrome会等到图像解码后再切换
在任何情况下,这仅仅是为了表明它可以通过使用Chrome的canvas-test演示来完成,并且不要经常更改鼠标:-)
此处随机更改颜色的动画循环演示:
function loop() {
var color = 'rgb(' + ((255 * Math.random())|0) + ','
+ ((255 * Math.random())|0) + ','
+ ((255 * Math.random())|0) + ')';
makeCursor(color);
setTimeout(loop, 1000);
}
光标生成器:
function makeCursor(color) {
// create off-screen canvas
var cursor = document.createElement('canvas'),
ctx = cursor.getContext('2d');
cursor.width = 16;
cursor.height = 16;
// draw some shape for sake of demo
ctx.strokeStyle = color;
ctx.lineWidth = 2;
ctx.moveTo(2, 10);
ctx.lineTo(2, 2);
ctx.lineTo(10, 2);
ctx.moveTo(2, 2);
ctx.lineTo(30, 30)
ctx.stroke();
// set image as cursor (modern browsers can take PNGs as cursor).
element.style.cursor = 'url(' + cursor.toDataURL() + '), auto';
}
只是为了增加动态添加光标的可能性,而不提供图像,而是使用JavaScript和画布在客户端生成它
这个演示包含一个简单的用形状绘制的光标,但也可以是图像、视频等(画布支持的所有内容)
(Firefox于2016年5月更新-从文档移动到元素)
注意:当光标像本演示中那样频繁更改时,FireFox会出现问题-更新为每秒仅更改一次。FF在设置新图像时清除光标,但由于新图像需要解码,因此同时显示默认值。Chrome会等到图像解码后再切换
在任何情况下,这仅仅是为了表明它可以通过使用Chrome的canvas-test演示来完成,并且不要经常更改鼠标:-)
此处随机更改颜色的动画循环演示:
function loop() {
var color = 'rgb(' + ((255 * Math.random())|0) + ','
+ ((255 * Math.random())|0) + ','
+ ((255 * Math.random())|0) + ')';
makeCursor(color);
setTimeout(loop, 1000);
}
光标生成器:
function makeCursor(color) {
// create off-screen canvas
var cursor = document.createElement('canvas'),
ctx = cursor.getContext('2d');
cursor.width = 16;
cursor.height = 16;
// draw some shape for sake of demo
ctx.strokeStyle = color;
ctx.lineWidth = 2;
ctx.moveTo(2, 10);
ctx.lineTo(2, 2);
ctx.lineTo(10, 2);
ctx.moveTo(2, 2);
ctx.lineTo(30, 30)
ctx.stroke();
// set image as cursor (modern browsers can take PNGs as cursor).
element.style.cursor = 'url(' + cursor.toDataURL() + '), auto';
}
直到今天我还用我自己的光标。标准箭头的蓝色版本。带有alpha透明阴影的PNG文件。我喜欢它。但现在我升级到4K,PNG逻辑上无法缩放,所以看起来很小。有什么解决办法吗?现在我用十字线,因为我受不了那个指针
有这样一个:cursor:url(img/pointer_blue.png),auto
现在是:光标:十字线 直到今天,我一直使用自己的光标。标准箭头的蓝色版本。带有alpha透明阴影的PNG文件。我喜欢它。但现在我升级到4K,PNG逻辑上无法缩放,所以看起来很小。有什么解决办法吗?现在我用十字线,因为我受不了那个指针
有这样一个:cursor:url(img/pointer_blue.png),auto
现在是:光标:十字线 @Subhash,你的评论不如question@Subhash,你的评论没有“自动”这个问题那么有建设性?@NathanLee我从来没有为IE构建过东西,因为它总是对所有东西都很糟糕,尽管PolyFill是可用的:)我同意。但它至少应该适用于IE8。无论如何,好消息:)——@Mr。Alien@Harry您不能更改系统光标,但可以通过使用canvas为自定义光标提供图像来动态更改光标的颜色。@Mr.Alien:感谢您提供的替代方法。至少我有了一个解决方案。“自动”是干什么的?@NathanLee我从来没有为IE做过东西,因为它对任何事情都很糟糕,尽管PolyFill是可用的:)我同意。但它至少应该适用于IE8。无论如何,好消息:)——@Mr。Alien@Harry您不能更改系统光标,但可以通过使用canvas为自定义光标提供图像来动态更改光标的颜色。@Mr.Alien:感谢您提供的替代方法。至少我有了一个解决方案。+1感谢你的努力:)还有一个迪斯科光标。。lol,顺便说一句,移动光标时默认光标显示SUP,am on ff22@Mr.Alien谢谢是的,FF有点不稳定,可能是因为动画循环太紧了。但对于正常使用,我想这不会是一个问题,除非颜色一直在改变(更新css规则),现在进展很顺利,不能+1两次;)但还是+1。。它还修复了默认光标问题。。。虽然到目前为止,对画布的支持还不令人印象深刻,但这将值得提前使用……。@Mr.Alien canvas支持实际上相当不错(我现在主要使用canvas)()。但是IE是一个特例,不管怎样,对于旧版本来说。我们可以说这是一个边界线的例子,因为所有最新版本的浏览器都已经开始支持canvas,谁在乎IE呢,它就像蛋糕上的便便+1(对于你的努力:)和迪斯科光标。。lol,顺便说一句,移动光标时默认光标显示SUP,am on ff22@Mr.Alien谢谢是的,FF有点不稳定,可能是因为动画循环太紧了。但对于正常使用,我想这不会是一个问题,除非颜色一直在变化