第 1 步)删除分号,这是您正在创建的对象...
a(this).next().css({
left : c,
transition : 'opacity 1s ease-in-out';
});
到
a(this).next().css({
left : c,
transition : 'opacity 1s ease-in-out'
});
第 2 步) 供应商前缀...没有浏览器使用 transition,因为它是标准,即使在最新的浏览器中也是一项实验性功能:
a(this).next().css({
left : c,
WebkitTransition : 'opacity 1s ease-in-out',
MozTransition : 'opacity 1s ease-in-out',
MsTransition : 'opacity 1s ease-in-out',
OTransition : 'opacity 1s ease-in-out',
transition : 'opacity 1s ease-in-out'
});
这是一个演示:http://jsfiddle.net/83FsJ/
第 3 步) 更好的供应商前缀...与其向元素添加大量不必要的 CSS(只会被浏览器忽略),您可以使用 jQuery 来决定供应商前缀是什么使用:
$('a').on('click', function () {
var myTransition = ($.browser.webkit) ? '-webkit-transition' :
($.browser.mozilla) ? '-moz-transition' :
($.browser.msie) ? '-ms-transition' :
($.browser.opera) ? '-o-transition' : 'transition',
myCSSObj = { opacity : 1 };
myCSSObj[myTransition] = 'opacity 1s ease-in-out';
$(this).next().css(myCSSObj);
});
这是一个演示:http://jsfiddle.net/83FsJ/1/
另请注意,如果您在 transition 声明中指定要设置动画的属性为 opacity,则设置 left 属性将不会设置动画。