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有点不稳定,可能是因为动画循环太紧了。但对于正常使用,我想这不会是一个问题,除非颜色一直在变化