Font Awesome有一个非常好的图标集合,可用于Web项目。我想使用其中一个图标作为光标(自定义光标)。
根据我的理解,Custom Cursors需要一个图片网址,但我无法找到Font Awesome图标的图片网址。
答案 0 :(得分:42)
知道了!
我做了一个演示:http://jsfiddle.net/rqq8B/2/
// http://stackoverflow.com/questions/13761472/how-to-render-glyphs-from-fontawesome-on-a-canvas-element
// http://stackoverflow.com/questions/13932291/css-cursor-using-data-uri
$(function() {
var canvas = document.createElement("canvas");
canvas.width = 24;
canvas.height = 24;
//document.body.appendChild(canvas);
var ctx = canvas.getContext("2d");
ctx.fillStyle = "#000000";
ctx.font = "24px FontAwesome";
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.fillText("\uf002", 12, 12);
var dataURL = canvas.toDataURL('image/png')
$('body').css('cursor', 'url('+dataURL+'), auto');
});
答案 1 :(得分:9)
有jQuery Awesome Cursor,你可以通过只调用一个简单的代码在游标中添加字体真棒图标:
$('body').awesomeCursor('pencil');
或者传递一些选项:
$('body').awesomeCursor('pencil', {
/* your options here */
size: 22,
color: 'orange',
flip: 'horizontal'
});
免责声明:我不是我刚刚找到的这个图书馆的作者。
答案 2 :(得分:6)
最后,我无法让@ fish_ball的代码可靠地工作,所以我只是downloaded the images,使用gimp裁剪并将它们编辑为32×32px,并像这样使用它们:< / p>
.myClass { cursor: url('/static/img/pencil30_32x32.png') 1 30, crosshair }
1 30
部分设置鼠标指针'热点'从左侧开始1px,从图像顶部开始30px。
答案 3 :(得分:4)
提到的canvas方法会导致游标模糊。
使用SVG可以提供更好的结果:
cursor: url( '/assets/img/volume-up.svg' ), pointer;
答案 4 :(得分:1)
对于使用Vue.js的任何人,有一种更简单的方法:
将字体超赞图标作为组件导入:
import { library } from '@fortawesome/fontawesome-svg-core';
import { fas } from '@fortawesome/free-solid-svg-icons';
import { fab } from '@fortawesome/free-brands-svg-icons';
import { far } from '@fortawesome/free-regular-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
library.add(fas);
library.add(fab);
library.add(far);
Vue.component('fa-icon', FontAwesomeIcon);
并直接在页面的HTML中使用它:
<fa-icon icon="copy" @click="yourFunction"/>
并用<span>
包围标签:
<span class="hover"><fa-icon icon="copy" @click="yourFunction"/></span>
并添加到您的CSS中:
span.hover {
cursor: pointer;
}
这将在您代码中所有<span>
类hover
的{{1}}标签上添加一个指针(因此会显示字体真棒图标!)