使用jQuery将光标更改为自定义图像
Changing cursor to custom image with jQuery
我正试图编写jQuery插件,将默认光标替换为必要的图像,但我在鼠标离开时遇到了问题。它不会触发,因为游标总是在子div之前,并且永远不会离开它,所以游标永远不会变回默认值。
演示
有什么办法吗?
顺便说一句:jQuerymouseleave的行为有点奇怪。只有当您离开div和所有childediv时,它才会启动。
演示2
我的代码:
// Plugin changing cursor before element
;
(function ($) {
$.fn.changeCursor = function (cursorPicUrl, dx, dy) {
function inFunction(e) {
$cursor.show();
return false;
}
function outFunction(e) {
$cursor.hide();
return false;
}
function moveFunction(e) {
var x = e.clientX-100;
var y = e.clientY-100;
$cursor.css({
"transform": "translate(" + x + "px," + y + "px)"
});
}
var $cursor = $('<div id="#custom-cursor"></div>').css({
/*cursor: none;*/
width: '150px',
height: '150px',
background: 'url("' + cursorPicUrl + '") no-repeat left top',
position: 'absolute',
display: 'none',
'z-index': '10000'
});
this.append( $cursor )
.on( "mouseenter", inFunction )
.on( "mouseleave", outFunction )
//.hover( inFunction, outFunction)
.mousemove( moveFunction );
return this;
};
})(jQuery);
$(document).ready(function () {
var url = 'http://placehold.it/150x150';
$('#test-area').changeCursor( url );
});
更新
我在这里的独白:
jquery.change游标
我做了几个调整:
- 将
this
预先存储在变量中 - 将光标div附加到主体
- 将顶部/左侧属性添加到光标中
演示
Javascript:
(function ($) {
$.fn.changeCursor = function (cursorPicUrl, dx, dy) {
var elem = this;
function inFunction(e) {
$cursor.show();
return false;
}
function outFunction(e) {
$cursor.hide();
return false;
}
function moveFunction(e) {
var x = e.clientX;
var y = e.clientY;
$cursor.css({
"transform": "translate(" + x + "px," + y + "px)"
});
}
var $cursor = $('<div id="#custom-cursor"></div>').css({
/*cursor: none;*/
width: '150px',
height: '150px',
background: 'url("' + cursorPicUrl + '") no-repeat left top',
position: 'absolute',
top: '0',
left: '0',
display: 'none'
});
$('body').append( $cursor );
elem.on( "mouseenter", inFunction )
.on( "mouseleave", outFunction )
.mousemove( moveFunction );
return this;
};
})(jQuery);
对于任何看起来仍然相似的人,试试这个(也许):
$('#selector').css('cursor', 'url("/path/your_image.png"), auto');
PS:在原始浏览器上不起作用!
相关文章:
- OpenLayers-自定义图像在一层上的马赛克
- 如何使用JS捕捉带有垂直线的自定义图像光标
- 在画布中创建自定义图像对象
- 可以用我自己的自定义图像替换光标
- 如何在javascript中使画布显示自定义图像作为背景
- 如何在这里的地图中添加自定义图像标记
- Google Plus通过javascript共享,带有自定义图像
- JS--自定义图像属性
- 嵌入视频,将黑色背景更改为自定义图像或第一个视频场景
- “未捕获的类型错误:无法读取未定义的属性'嵌入'”在 pdfMake pdf 引擎中使用自定义图像时
- 自定义图像作为单选按钮
- 如何用自定义图像替换脸书按钮
- 谷歌地图不适用于自定义图像标记
- 具有自定义图像位置的全屏背景幻灯片(每张幻灯片)
- 在谷歌地图中按类型显示自定义图像标记图标
- 传单自定义图像坐标
- 在Highcharts中自定义图像和不同的文本
- 使用jQuery将光标更改为自定义图像
- 将自定义图像添加到Ext.tab.Panel上的项目中
- 带有传单的自定义图像标记不显示图像