2013-08-21 37 views
1

我有一个IMG元素c。以下作品改变其光标(在Chrome):在javascript中设置多个游标值

c.style.cursor='-webkit-zoom-out'; 

但是,如果我尝试添加兼容的其他浏览器,如下面的,它打破:

c.style.cursor='-webkit-zoom-out, -moz-zoom-out'; 

(我的天堂” t甚至已经尝试链接.cur for IE兼容性....)什么是正确的语法添加多个值的样式元素?

+0

你需要用JavaScript做到这一点?这是一种CSS3风格,因此您将目标锁定为现代浏览器。我不知道你的用例,但你可能能够将它应用于CSS并获得你想要的效果。 –

+0

您应该通过CSS设置光标,切换类或属性,并让CSS处理样式。 – zzzzBov

回答

3

您必须单独添加它们:

c.style.cursor = '-webkit-zoom-out'; 
c.style.cursor = '-moz-zoom-out'; 

不幸的是zoom-inzoom-out不被Internet Explorer支持的呢。请参阅MDN Cursor: Browser compatibility

演示

Try before buy

或者您可以创建一个CSS类设置正确的样式以及添加或删除使用JavaScript,如果你需要切换它这个类。

+0

奇怪 - 所以JavaScript中的'='有时实际上是'+ ='?怎样才能知道何时以及如何清除一个具有此特性的属性(因为大概'.cursor ='';'不会删除以前的值)? – feetwet

+2

其实它不会连接它。它的工作原理与CSS规则相同。浏览器选择他可以处理的值并丢弃其他值。如果您检查演示中的元素,您会看到,只有'-webkit'或'-moz'作为内联样式应用。与CSS规则相同:'img {cursor:-webkit-zoom-out;光标:-moz-zoom-out; }而不是'img {cursor:-webkit-zoom-out,-moz-zoom-out; }'。看到这个[demo](http://jsfiddle.net/cV3VN/)。 – insertusernamehere

+0

谢谢!这里是工作示例的一部分(XSLT,但想法是相同的):