Javascript 如何优化jQuery代码?
我有一些实验脚本,当列表元素悬停时,可以制作ul列表元素背景位置的动画。 是否有其他方法来管理此任务?或者只是优化这个代码 作为基本的优化代码,我只能在第一个函数部分调用“Javascript 如何优化jQuery代码?,javascript,jquery,optimization,Javascript,Jquery,Optimization,我有一些实验脚本,当列表元素悬停时,可以制作ul列表元素背景位置的动画。 是否有其他方法来管理此任务?或者只是优化这个代码 作为基本的优化代码,我只能在第一个函数部分调用“css()”方法的地方重新定位jQuery语句 希望能有帮助 作为基本的优化代码,我只能在第一个函数部分调用“css()”方法的地方重新定位jQuery语句 希望有帮助。悬停时将背景更改为gif。您将获得最佳性能。悬停时将背景更改为gif。您将获得最佳性能。优化40毫秒计时器间隔的最佳方法是不要在其中调用昂贵的jQuery函
css()
”方法的地方重新定位jQuery语句
希望能有帮助
作为基本的优化代码,我只能在第一个函数部分调用“css()
”方法的地方重新定位jQuery语句
希望有帮助。悬停时将背景更改为gif。您将获得最佳性能。悬停时将背景更改为gif。您将获得最佳性能。优化40毫秒计时器间隔的最佳方法是不要在其中调用昂贵的jQuery函数。将对
$('.animate')
的调用存储在interval函数之外的变量中,然后像普通数组一样使用for
对其进行循环,并使用标准DOM属性更改每个元素的样式。这就是它的要点,我添加了一些代码重组,使事情变得更简单
var c = 0,
ids;
$(function(){
$("li.animate").hover(function () {
ids = setInterval(function() {
$('.animate').css('backgroundPosition', ((++c==4) && (c=0), (-100 * c) + 'px 0'));
}, 40);
}, function () {
$('.animate').css('backgroundPosition', '0 0');
clearInterval(ids);
}
);
});
var c = 0, ids;
$(document).ready(function(){
$("li.animate").hover(function () {
var ani = $('.animate'), l = ani.length;
ids = setInterval(function() {
var i, param;
if ( c >= 5 ) {
c = 1;
param = '0 0';
} else {
param = (-100 * c++) + 'px 0';
}
for (i=0; i<l; i++) {
ani[i].style.backgroundPosition = param;
}
}, 40);
},
function () {
$('.animate').css('backgroundPosition', '0 0');
clearInterval(ids);
}
);});
var c=0,id;
$(文档).ready(函数(){
$(“li.animate”).hover(函数(){
var ani=$('.animate'),l=ani.length;
ids=setInterval(函数(){
变量i,参数;
如果(c>=5){
c=1;
参数='0';
}否则{
参数=(-100*c++)+‘px 0’;
}
对于(i=0;i优化40毫秒计时器间隔的最佳方法是不要在其中调用昂贵的jQuery函数。将调用存储到$('.animate'))
在区间函数外的变量中,然后像普通数组一样使用for
循环遍历它,并使用标准DOM属性更改每个元素的样式。这就是它的要点,我添加了一些代码重组,使事情变得更简单
var c = 0, ids;
$(document).ready(function(){
$("li.animate").hover(function () {
var ani = $('.animate'), l = ani.length;
ids = setInterval(function() {
var i, param;
if ( c >= 5 ) {
c = 1;
param = '0 0';
} else {
param = (-100 * c++) + 'px 0';
}
for (i=0; i<l; i++) {
ani[i].style.backgroundPosition = param;
}
}, 40);
},
function () {
$('.animate').css('backgroundPosition', '0 0');
clearInterval(ids);
}
);});
var c=0,id;
$(文档).ready(函数(){
$(“li.animate”).hover(函数(){
var ani=$('.animate'),l=ani.length;
ids=setInterval(函数(){
变量i,参数;
如果(c>=5){
c=1;
参数='0';
}否则{
参数=(-100*c++)+‘px 0’;
}
对于(i=0;我认为最好的优化是使用CSS动画,这在一些浏览器中使用硬件加速。您介意它在所有浏览器中都不起作用吗?为了更好的结果,请考虑在这里张贴:我将检查CSS动画…但是,我有跨浏览器兼容性:)谢谢你的推荐,我能想到的最好的优化是使用CSS动画,在一些浏览器中使用硬件加速。你介意它在所有浏览器中都不起作用吗?为了更好的结果,考虑在这里张贴:我将检查CSS动画…但是,我有跨浏览器兼容性:感谢您的推荐伟大的运算符优先用法!伟大的运算符优先用法!