A jQuery plugin for using FontAwesome icons as custom CSS cursors. Also supports using a custom icon font instead of FontAwesome.
See https://jwarby.github.io/jquery-awesome-cursor/ for the full documentation and demos.
$('body').awesomeCursor('pencil');
Requires jQuery and FontAwesome.
npm
(recommended)npm install jquery-awesome-cursor
<link rel="stylesheet" href="node_modules/font-awesome/css/font-awesome.min.css" type="text/css">
<script src="node_modules/jquery/dist/jquery.min.js" type="text/javascript"></script>
<script src="node_modules/jquery-awesome-cursor/dist/jquery.awesome-cursor.min.js" type="text/javascript"></script>
From v0.3.0
onwards, FontAwesome is marked as an optional dependency. If you plan on using jquery-awesome-cursor
with a different icon font, you can skip installation of any optional dependencies like this:
npm install --no-optional jquery-awesome-cursor
peerDependencies
anymore, so if you haven't already installed jQuery you will get an UNMET PEER DEPENDENCY
warning when you install. To fix, just do npm install jquery
.bower
bower install jquery-awesome-cursor
<link rel="stylesheet" href="bower_components/fontawesome/css/font-awesome.min.css" type="text/css">
<script src="bower_components/jquery/dist/jquery.min.js" type="text/javascript"></script>
<script src="bower_components/jquery-awesome-cursor/dist/jquery.awesome-cursor.min.js" type="text/javascript"></script>
v0.3.0
onwards, you need to bring your own FontAwesome! FontAwesome is considered an optional dependency, but Bower doesn't support optional dependencies - so you must install FontAwesome yourself. See #21.bower install font-awesome
Download the production version or the development version. You will need to download and install FontAwesome manually as well.
In your web page:
<link rel="stylesheet" href="/path/to/font-awesome.min.css" type="text/css">
<script src="/path/to/jquery.js"></script>
<script src="path/to/jquery.awesome-cursor.min.js"></script>
You could also use RawGit's CDN:
<link rel="stylesheet" href="/path/to/font-awesome.min.css" type="text/css">
<script src="/path/to/jquery.js"></script>
<script src="https://cdn.rawgit.com/jwarby/jquery-awesome-cursor/master/dist/jquery.awesome-cursor.min.js"></script>
You can set a FontAwesome cursor on any element by calling awesomeCursor
, and passing the name of the icon you
want to use:
$('body').awesomeCursor('<icon name>');
See http://fontawesome.io/icons/ for a list of available icons.
Cursors can be any color you want, specified as a CSS color:
$('body').awesomeCursor('eyedropper', {
color: '#ff0000'
})
$('body').awesomeCursor('eyedropper', {
color: 'rgba(255, 255, 255, 0.75)'
})
$('body').awesomeCursor('eyedropper', {
color: 'cyan'
});
$('body').awesomeCursor('eyedropper', {
color: 'hsl(90, 100%, 50%)'
});
Cursors can be any size (specified in pixels):
$('body').awesomeCursor('pencil', {
size: 32
});
Only pixel values are supported, as CSS cursor hotspots can only be specified in pixels.
The hotspot for a cursor can be defined, with an array containing the hotspot's x and y offsets:
$('body').awesomeCursor('pencil', {
hotspot: [0, 17]
});
Or, using a string descriptor:
$('body').awesomeCursor('pencil', {
hotspot: 'bottom left'
});
The following values can be used in the hotspot string descriptor:
'center'
: positions the hotspot's x and y offset in the center of the cursor'left'
: positions the hotspot's x offset on the left of the cursor (equivalent to 0)'right'
: positions the hotspot's x offset on the far right of the cursor (equivalent to cursorSize - 1)'top'
: positions the hotspot's y offset at the top of the cursor (equivalent to 0)'bottom'
: positions the hotspot's y offset at the bottom of the cursor (equivalent to cursorSize - 1)The descriptors can be combined by space-separating them, e.g.:
'top left'
'center left'
'bottom right'
'top right'
Cursors can be flipped horizontally, vertically, or in both directions, by setting the flip
option:
// Horizontal flip
$('body').awesomeCursor('pencil', {
flip: 'horizontal'
});
// Vertical flip
$('body').awesomeCursor('pencil', {
flip: 'vertical'
});
// Horizontal and Vertical flip
$('body').awesomeCursor('pencil', {
flip: 'both'
});
A cursor can be rotated any number of degrees using the rotate
option:
// 45 degrees clockwise
$('body').awesomeCursor('pencil', {
rotate: 45
});
// 105 degrees anti-clockwise
$('body').awesomeCursor('pencil', {
rotate: -105
});
A cursor can be outlined in any color by setting the outline
option to any valid CSS color:
// Red outline
$('body').awesomeCursor('pencil', {
outline: 'red'
});
// White outline
$('body').awesomeCursor('pencil', {
outline: 'white'
});
As of v0.1.0
, a different icon font instead of FontAwesome can be used. To use a different font, the font
option must be set to
an object, specifying the font family and the CSS class format for icons. The example below shows how typicons
icons can be used instead of FontAwesome icons:
// Using 'typicons' icons instead of FontAwesome
$('body').awesomecursor('brush', {
font: {
family: 'typicons',
cssClass: 'typcn typcn-%s' // '%s' is the icon name ('brush')
}
});
In the above example, we set the font family
to 'typicons', and set the cssClass
to the format that typicons
uses. %s
denotes the
icon name that is passed as the first argument to awesomeCursor
.
The cssClass
option can either be a string, as shown above, or a function:
// Using 'typicons' instead of fontawesome
$('body').awesomecursor('brush', {
font: {
family: 'typicons',
cssClass: function(name) {
// `name` is 'brush'
return 'typcn typcn-' + name;
}
}
});
You may want to set your replacement icon font as the default:
// Use 'typicons' as default
$.fn.awesomeCursor.defaults.font = {
family: 'typicons',
cssClass: 'typcn typcn-%s'
};
Note: the replacement icon font must use :before
pseudo elements with unicode content
/* Set the body element's cursor to a green pencil, with the hotspot located at the bottom left of the cursor (where the
* pencil tip is):
*/
$('body').awesomeCursor('pencil', {
color: 'green',
hotspot: 'bottom left'
});
// Set the cursor to be a big blue location arrow icon:
$('body').awesomeCursor('location-arrow', {
color: '#0050FF',
hotspot: 'top right',
size: 48
});
// Set the cursor to be a horizontally flipped version of the location arrow
$('body').awesomeCursor('location-arrow', {
color: '#0050FF',
hotspot: 'top right',
size: 48,
flip: 'horizontal'
});
// Set the cursor to be a red rotated left arrow
$('body').awesomeCursor('long-arrow-left', {
color: 'red',
hotspot: 'top left',
rotate: 45,
});
// Set the cursor to a black eraser icon with a red outline
$('body').awesomeCursor('eraser', {
color: 'black',
outline: 'red'
});
See CONTRIBUTING.md
v0.3.1
- 23rd Apr 2016
- Hotfix - change TravisCI node test versions to v4 and v5; add dotfiles back into bower ignore fieldv0.3.0
- 23rd Apr 2016
- Make FontAwesome an optional dependency (#21); add an .npmignore file, update bower ignore field; updated devDependenciesv0.2.0
- 28th Mar 2016
- Bug fix for certain icons getting clipped when used as a cursor (#19)v0.1.5
- 9th Dec 2015
- Add main
to package.json, allowing plugin to be used properly when installed via npm and used with tools such as Browserifyv0.1.4
- 23rd Oct 2015
- Remove minor version constraints on bower/npm dependenciesv0.1.3
- 19th Oct 2015
- Bug fix for Chrome not updating cursor if cursor had already been set, run tests using Karma, using SPDX format for "license" field in package.jsonv0.1.2
- 25th May 2015
- Bug fix for rendering artifacts in Chrome (#14)v0.1.1
- 5th Mar 2015
- Bug fix for rendering artifacts in Firefox (#10)v0.1.0
- 17th Dec 2014
- Add font
option for specifying an alternative icon font to use instead of FontAwesomev0.0.5
- 12th Dec 2014
- Add outline
option for specifying an outline color for cursorsv0.0.4
- 29th Nov 2014
- Add rotate
option for rotating cursor by a specified number of degrees. Flip transformation now
applied after other transformations (e.g. rotate)v0.0.3
- 17th Nov 2014
- Fix an error in the README filev0.0.2
- 17th Nov 2014
- Add the flip
option to allow cursors to be flipped horizontally, vertically, or in both directionsv0.0.1
- 10th Nov 2014
- First version此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。