jQuery 过渡还是 CSS?

jQuery transitions or CSS?

我应该使用 CSS 转换还是 jQuery?

我看到一些 jQuery 插件同时使用了两者 jQuery 仅当浏览器不支持 CSS 转换时才使用。

这是怎么做到的?

插件可能正在检查浏览器版本。 Take a look here 了解支持 CSS 转换的浏览器概览。

您可以使用 JQuery 进行 JQuery 转换和 CSS 转换。

您可以运行检查用户的浏览器并执行类似这样的操作

var thing = $('#something');
var browserIsIE = function() {
    return false;
}

if ( browserIsIE() ) {
    thing.fadeOut();
}
else {
    thing.addClass('hidden');
}

CSS:

#something{
   transition: opacity 0.4s;
}

.hidden {
    opacity: none;
}

请注意,这段代码实际上并不检查浏览器版本,但它处理如何淡化元素,您应该创建一个函数来检查您需要检查的任何内容!

如果您非常确定您的用户将使用最新版本的 chrome 或 Mozilla 或任何其他软件(不包括 IE),那么 CSS 也可以考虑作为一个选项。或者你也可以使用 JQuery 的版本,它也支持 IE。最好的组合是将两者用于网站将提供更好的结果。

Never ever use User Agent sniffing, rather use feature support/ detection. That is what god gave us Modernizr 对于.

Modernizr 将 CSS 类 添加到您的 html 中,具体取决于查看浏览器支持的技术。然后在你的 CSS 中你可以写:

.csstransitions #myelement { /* do css3 stuff */ }

并在 jQuery 中:

if (!$('html').hasClass('csstransitions')) { /* jQuery fallback */ }