gpt4 book ai didi

javascript - 为 webkit 浏览器优化 javascript 浏览器缩放器

转载 作者:行者123 更新时间:2023-11-28 02:13:35 26 4
gpt4 key购买 nike

我会保持这个简短而甜蜜的。在 webkit 浏览器中,我应用于 [我的网站][1] 的自动调整大小功能似乎响应缓慢,只有在调整浏览器后,事情才似乎到位。下面是我的 JS 的片段。

function setTheHeight() {

if( $('.col-small, .img_hover').length ) {
//Get value of highest element
var maxHeight = Math.max.apply(Math, $('.col-small, .img_hover').map (
function() {
var totalHeight = 0;

$(this).children().each(function() {
totalHeight += $(this).outerHeight();
});

return totalHeight;
}
));
console.log(maxHeight);
$('.col-small, .img_hover').height(maxHeight);
}
}

setTheHeight();

$(window).resize(function() {
setTheHeight();
});

我是不是漏掉了什么?

最佳答案

尝试优化,不需要重新计算几次

$('.col-small, .img_hover')

喜欢

.children()

也尝试减少 map 和每个的使用

也许是这样的事情? :

var elems = [], $elems = $('.col-small, .img_hover');

$elems.each(function(i){
var $t = $(this);
var $c = $t.children();
elems[i] = { $:$t, $c:$c, nb:$c.length };
});

function getHeight(e,i){
var total=0,n=0;
while(n < e.nb)
total += e.$c.eq(n++).outerHeight();
return total;
}

function setTheHeight(){
$elems.height( Math.max.apply(Math, $.map(elems,getHeight)) );
}

$(window).resize(setTheHeight).resize();

$elems.find("img").on("load",setTheHeight);

您也可以尝试不在每个像素更改时进行有效调整大小

var timer = false;
$(window).resize(function(){
if(timer !== false) return; // or clearTimeout(timer);
timer = setTimeout(function(){
setTheHeight();
timer = false;
},20); // 20ms => 50fps max
}).resize();

fiddle => http://jsfiddle.net/r043v/HvmmM/

关于javascript - 为 webkit 浏览器优化 javascript 浏览器缩放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16724931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com