Jquery 每隔一段时间重新计算一次高度功能
我在脚本中遇到了一些问题,它读取div的高度,然后调整另一个的大小 基本上,它只是偶尔做一次 在我看来,该函数是在实际加载所有元素之前获取div的高度Jquery 每隔一段时间重新计算一次高度功能,jquery,css,resize,load,height,Jquery,Css,Resize,Load,Height,我在脚本中遇到了一些问题,它读取div的高度,然后调整另一个的大小 基本上,它只是偶尔做一次 在我看来,该函数是在实际加载所有元素之前获取div的高度 function recalculate_h() { if ($(".content_full").is(":visible")){ var cur = $(".content_full").height()+100; animate_height(cur); } } fu
function recalculate_h() {
if ($(".content_full").is(":visible")){
var cur = $(".content_full").height()+100;
animate_height(cur);
}
}
function smooth_change(way) {
// rest of the code
$("#here").load("index.php?siteno="+next+" #there", function(evt) {
$("#outer").attr("siteno", next);
recalculate_h();
});
}
它在document.ready中调用
$(".left_navigator").click(function() {
smooth_change("back");
});
知道我做错了什么吗
附言
有两种导航站点的方法,一种是通过基本的刷新和获取属性,另一种是使用ajax请求进行更平滑的导航。
另外,在每次页面加载时都会像这样调用recalculate_h,这非常有效
$(window).load(function() {
recalculate_h();
//$('#map_canvas').gmap();
})) 可以尝试使用jquery ajax调用加载index.php吗。。。。并调用重新计算_h();关于ajax的完整事件 我发现您设置的这些值不正确:
var middle_banner_height = 100;
var middle_banner_width = 802;
您应该这样设置它们:
var middle_banner_height = "100px";
var middle_banner_width = "802px";
另外,在这个调用中,您将midle_banner_设置为,而不是middle_banner_width,因此未定义midle_banner_。
无论如何,这可能是为了解决整个bug,但是你的脚本在这里被破坏了。我以前在我的一个项目中也做过同样的场景,我解决它的方法是抓取你想要调整大小的元素,并将其css设置为高度:auto。然后添加其余的代码。让我知道它是否有效。请添加为JSFIDLE,因为我们无法知道“下一步”是什么,或者jquery加载是否每次都从服务器返回。您正在加载的页面中是否有任何图像?是的,有一些。我的第一个猜测是,这可能是css定位的原因。。。但正如我之前写的,这实际上是可行的。有时它做得很好,有时它似乎忘记了一些div。
.load
不是.ajax()
的缩写吗?他已经在完整函数中调用了重新计算\u h()
。。。“哦,是的。我没注意到。毕竟我使用了css,完全忘记了索引中的残余内容,谢谢。顺便说一句,虽然输入错误,但这段代码现在基本上什么都不做。我用css:auto将所有代码封装在一个div中,但没有太大变化。如果你想看一下,这里是实际项目BTW。如果你用中间横幅上的箭头导航,这只是时间崩溃的问题。因为我已经尝试了很多事情,所以我终于把CSS高度设置为固定值。这实际上是最糟糕的解决方案,但它目前正在发挥作用。