注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

米欧光影工作室

No matter what you want to express……

 
 
 

日志

 
 
关于我

{ note: ‘不会编程的设计狮不是好科研狗’ }

网易考拉推荐

鼠标跟随效果——cursor:url属性及其兼容性  

2014-03-16 12:12:20|  分类: html |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |


今天在项目中,要用到自定义鼠标样式,格式:
css:{cursor:url('绝对路径的图片(格式:cur,ico)'),-moz-zoom-out;}//FF下面
css:{cursor:url('绝对路径'),auto;}//IE,FF,chrome浏览器都可以

前面url是自定义鼠标格式,图像的绝对路径地址,后面的参数是css标准的cursor样式,(IE下面可以不需要)

图标的格式根据不同的浏览器来分:
IE支持cur,ani,ico这三种格式,
FF支持bmp,gif,jpg,cur,ico这几种格式,不支持ani格式,也不支持gif动画格式,
因此来说一般将图片存为cur或ico格式比较好,如果是ani格式的话,那么可以在FF下面用jpg,gif,bmp来代替(cursor:url(.....ani),url(.....gif),auto)
还有几个需要注意的地方:
1.图片地址为绝对路径,2.图片大小最好是32*32的大小,反正在各个浏览器下面解析的大小不一样
[最大.cur尺寸:128*128px ]

Cursor:url()的使用:
 cursor: url(),pointer;
 url:需使用的自定义光标的 URL。图片类型需要是.cur或.ani格式的。(这次项目中我是用的.ico格式,并没有发现浏览器兼容问题)

 pointer: 默认的鼠标光标样式,当没有找到可用的定义光标时会使用此光标。

最近项目中有用到设置鼠标光标为自定义图片的特效,在使用Cursor:url()的过程中遇到了很多问题。
问题一 浏览器不兼容问题:
  在FF火狐中可以很正常的显示出来,而在IE中起初是显示不出来,后来是鼠标图片大小过小的问题,在Google浏览器中鼠标图片的大小问题更加的突出——超级的大。
 碰到的情况正好和baidu到的结果相反,很多朋友遇到的问题都是不兼容FF浏览器。
  对于在浏览器中鼠标图片不显示的问题,问题大概出在对鼠标图片URL路径的引用上。 可以分别尝试下绝对和相对路径的引用。
 

问题二 各浏览器间鼠标图片大小不一致问题:
  这种问题应该和各浏览器间对Cursor图片的解析有关系,起初我的鼠标图片大小是59*56的,后来把鼠标图片的尺寸改为32*32后,图片大小不一致的问题就解决了。
(经测试发现,超过32*32尺寸,就会出现这种问题)


问题三 IE中使用Cursor URL()出现鼠标闪动问题:
  当对设置Cursor URL()的容器元素添加了Title或Alt时,就会出现这种现象。最后很无奈的把Title标签去掉了。难道是因为在IE中Cursor会和Title、Alt冲突么?



总结:
cursor属性的 url 地址为相对路径时FF支持、IE不支持
cursor属性的 url 地址为绝对路径时FF支持、IE支持

cursor:url属性及其兼容性 - 湖小叶叶 - 米欧光影工作室


 
-------------------------------------------------------------------------
鼠标跟随效果js:(缺点:有延时)
-------------------------------------------------------------------------
效果图:
鼠标跟随效果——cursor:url属性及其兼容性 - 湖小叶叶 - 米欧光影工作室
 
演示代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>自定义鼠标图案</title>
<style>
img.mouse{position:absolute; z-index:10000; width:100px; height:100px;
cursor:none; visibility:hidden;}
#stage{position:absolute; top:100px;left:100px;

width:500px; height:500px; background:#efeeef; }
</style>
<script type="text/javascript">
window.onload=function(){
var oImg=document.getElementById('mouse');
var oDiv=document.getElementById('stage');
oDiv.onmousemove=function(e){
oImg.style.visibility='visible';

var e=e?e:window.event;
var posX=e.clientX;
var posY=e.clientY;
var x=100, y=100;
oImg.style.left=posX - x/2 + "px";
oImg.style.top=posY - y/2 + "px";
}

}

</script>
</head>

<body>
<div id='stage'>123
</div>

<img id='mouse' class='mouse' src="http://www.baidu.com/img/bdlogo.gif" />
</body>
</html>

打地鼠 鼠标效果制作:
1)鼠标跟随js效果,但延时太厉害;
2)使用cursor:url()最好,但是 记住浏览器支持最大尺寸128*128.
3)制作cur图标的软件 (AniFX 1.0-cur图标制作工具)
这个软件有个BUG,就是设置热点位置时用他的定位后不能确认,一确认就变成裁减了
      就是左下角的那个工具
可以先点击定位一下,然后记住x,y的值,不确定,返回重新设置热点,输入x,y,确定即可


-------
【1】http://www.w3school.com.cn/cssref/pr_class_cursor.asp
【2】 http://istyles.blog.163.com/blog/static/18110038920122282274282/【3】 http://www.cnblogs.com/xiaohui108/archive/2011/01/20/1940398.html
  评论这张
 
阅读(312)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017