0

在我的网站上,我有一个高度为 100% 的主体,jquery 应该找到主体的高度,然后更改侧边栏上的 css 以匹配它的高度。它适用于 Firefox 和所有版本的 IE,但不适用于 Chrome 或 Safari。我对此有点陌生,所以提前感谢您的帮助。这是我的网站:http ://avk.io-web.com/product-list/healthy-gormet-cookies 这是我的 jquery:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>    
<script type="text/javascript">
$(document).ready(function() {

var SecondaryContentHeight= $(".secondary_body_content").height()
$(".left_menu").css("height", SecondaryContentHeight);
});
</script>
4

3 回答 3

1
<script type="text/javascript">
$(window).load(function() {
    var SecondaryContentHeight = $(".secondary_body_content").height();
    $(".left_menu").css("height", SecondaryContentHeight);
});
</script>

或优化

<script>$(window).load(function(){$(".left_menu").css("height",$(".secondary_body_content").height())})</script>
于 2012-08-20T23:52:24.983 回答
1

问题是您在加载正文内容中的所有内容之前获得了高度。如果您删除正文内容中的大图像,您会看到它们大多排成一列。请记住,当 DOM 准备好而不是页面中的所有内容都完成加载时,document ready 会触发。您可以将 .load() 事件绑定到页面上的图像,然后计算左侧菜单的高度,但这不会 100% 起作用。

理想的解决方案是全部使用 HTML 和 CSS。有很多固定列 css 布局示例。一个例子在这里

顺便说一句,如果您清除缓存并足够快地向下滚动,它在 FireFox 中也不起作用。有时图像会在 javascript 之前加载,但这不能保证。

于 2012-08-21T00:10:44.987 回答
0

这似乎在您网站上的 chrome 中对我有用:

$(".left_menu").height($(".secondary_body_content").height());
于 2012-08-21T00:06:42.163 回答