javascript - 如何获取 Font Awesome 5 图标作为光标

标签 javascript jquery canvas font-awesome font-awesome-5

在 Font Awesome 4x 中,我设法通过将光标更改为 base-64 图像 url 将光标设置为图标。现在在 Font Awesome 5 中它不再起作用。

我找到了 this解决方案,但它在这里不起作用。

这是我试过的。

var canvas = document.createElement("canvas");
canvas.width = 20;
canvas.height = 20;
var ctx = canvas.getContext("2d");
document.fonts.ready.then(function() {
    ctx.font = "400 20px Font Awesome 5 Pro";
    ctx.fillStyle = "red";
    ctx.textAlign = "center";
    ctx.textBaseline = "middle";
    setTimeout(function() {
        ctx.fillText("\uf2ed", 10, 10)
        var dataURL = canvas.toDataURL('image/png')
        $('#foo').css('cursor', 'url(' + dataURL + '), auto');
    }, 200)
})

我得到的只是一个 20x20 的黑色正方形

有没有人知道如何完成它?

最佳答案

看下面的例子...

var hex = 0xF25A;
var unicode = String.fromCharCode(parseInt(hex, 16));

var canvas = document.getElementById("cache");
canvas.width = 64; canvas.height = 64;

var context = canvas.getContext("2d");
context.font = '900 32px "Font Awesome 5 Free"';
context.fillText(unicode, canvas.width/2, canvas.width/2);
  
document.fonts.ready.then(function() {
    $('body').css('cursor', 'url(' + canvas.toDataURL('image/png') + '), auto');
});
html, body {height: 100%; width:100%; margin:0; padding: 0;}
canvas#cache {display: none;}
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.2.0/css/solid.css" integrity="sha384-wnAC7ln+XN0UKdcPvJvtqIH3jOjs9pnKnq9qX68ImXvOGz2JuFoEiCjT8jyZQX2z" crossorigin="anonymous">
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<canvas id="cache"/>

关于javascript - 如何获取 Font Awesome 5 图标作为光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51931988/

相关文章:

c# - 保持 JavaScript 和 C# 对象模型之间的一致性

javascript - Phonegap读取html文件

javascript - 用数学旋转矩形

JavaScript Canvas : Pong - Animation

javascript - 以 Angular 在数组之间添加和删除项目

javascript - Angularjs 中的幻灯片无法按预期工作

javascript - 如何通过 JavaScript 或 Node.js 强制将 PDF 从文件夹下载到浏览器/用户?

javascript - 如何创建多个切换按钮

Javascript - 输入验证 - 我可以检查字符 x 是否为数字且字符 y 是否为字母

javascript - 在 Canvas 上循环绘制图像 - 我如何优化这段代码?