JS实现让页脚一直固定在页面底部问题

zyz_0420 2013-06-02 02:58:49
$(window).bind("load", function() {
var footerHeight = 0, footerTop = 0, $footer = $("#footer");
positionFooter();
function positionFooter() {
footerHeight = $footer.height();
footerTop = ($(window).scrollTop()+$(window).height()-footerHeight)+"px";
//如果页面内容高度小于屏幕高度,div#footer将绝对定位到屏幕底部,否则div#footer保留它的正常静态定位
if ( ($(document.body).height()+footerHeight) < $(window).height()) {
$footer.css({ position: "absolute" }).stop().css({top:footerTop});
}
}
$(window).scroll(positionFooter).resize(positionFooter);
});




全部源码:http://pan.baidu.com/share/link?shareid=489427&uk=1745185362

感觉问题应该出在JS上,还望精通JS的朋友帮忙看看!!!
...全文
844 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyz_0420 2013-06-04
  • 打赏
  • 举报
回复
引用 8 楼 xiaofanku 的回复:
他就应该是这样的呀,默认的情况下main>div 的高度为999px,切换后其高度为0
当main内容少于页面可视高度时页脚应该置于页面底部才对啊
街头小贩 2013-06-04
  • 打赏
  • 举报
回复
他就应该是这样的呀,默认的情况下main>div 的高度为999px,切换后其高度为0
zyz_0420 2013-06-04
  • 打赏
  • 举报
回复
引用 1 楼 xiaofanku 的回复:

$(window).bind("load", function() {
var footerHeight = 0;
var footerTop = 0;

positionFooter();

function positionFooter() {
footerHeight = $("#footer").height();
footerTop = ($(window).scrollTop()+$(window).height()-footerHeight)+"px";
//如果页面内容高度小于屏幕高度,div#footer将绝对定位到屏幕底部,否则div#footer保留它的正常静态定位
if(($(document.body).height()+footerHeight) < $(window).height()) {
$("#footer").css({ position: "absolute",left:"0" }).stop().css({top:footerTop});
}
}
$(window).scroll(positionFooter).resize(positionFooter);
});


不好意思,又要麻烦您帮忙看看啊!
源码地址:http://pan.baidu.com/share/link?shareid=2825682553&uk=1745185362
街头小贩 2013-06-02
  • 打赏
  • 举报
回复

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
a.on{color:#f00}

#main div.on{background-color:#f00;display:block;}
#main div{display:none;}
</style>
</head>

<body>
  <div id="header">
     <a id="anchor1" class="on" href="#">1111111</a><br />
     <a id="anchor2" href="#">2222222</a><br />
     <a id="anchor3" href="#">3333333</a><br />
  </div>
 
  <div id="main">
     <div id="anchor1_main" class="on">1111111</div>
     <div id="anchor2_main">2222222</div>
     <div id="anchor3_main">3333333</div>
  </div>
<script type="text/javascript">
jQuery(function($){
	$('a').click(function(){
		var att=$(this).attr('id');
		var attmain='#'+att+'_main';
		
		$('#header').find('a').not($(this)).removeClass('on');	
		$(this).addClass('on');
		
		$('#main').find('div').not($(attmain)).removeClass('on');
		$(attmain).addClass('on');
	});
});
</script>
</body>
</html>
zyz_0420 2013-06-02
  • 打赏
  • 举报
回复
引用 4 楼 xiaofanku 的回复:
点机1111111,显示<div class="1">,2222222显示<div class="2">,3333333显示<div class="3">吗? 最简单的方法是为main层的div加id,给锚点加id.例如: <a id="anchor1">,... <div id="anchor1_main">,...
main中的1111111,2222222....,默认只显示一个,如:默认显示的是1111111,当点击<a href="#">2222222</a><br />时,就显示2222222
街头小贩 2013-06-02
  • 打赏
  • 举报
回复
点机1111111,显示<div class="1">,2222222显示<div class="2">,3333333显示<div class="3">吗? 最简单的方法是为main层的div加id,给锚点加id.例如: <a id="anchor1">,... <div id="anchor1_main">,...
zyz_0420 2013-06-02
  • 打赏
  • 举报
回复
引用 1 楼 xiaofanku 的回复:

$(window).bind("load", function() {
	var footerHeight = 0;
	var footerTop = 0;
	
	positionFooter();
	
	function positionFooter() {
		footerHeight = $("#footer").height();
		footerTop = ($(window).scrollTop()+$(window).height()-footerHeight)+"px";
		//如果页面内容高度小于屏幕高度,div#footer将绝对定位到屏幕底部,否则div#footer保留它的正常静态定位
		if(($(document.body).height()+footerHeight) < $(window).height()) {
			$("#footer").css({ position: "absolute",left:"0" }).stop().css({top:footerTop});
		}
	}
	$(window).scroll(positionFooter).resize(positionFooter);
});
您好,朋友!还有个问题想请教:如以下代码,点击header中对应的 a 标签,切换main中对应的div内容,如何写JS?
<html>
<head>
</head>
<body>
  <div id="header">
     <a href="#">1111111</a><br />
     <a href="#">2222222</a><br />
     <a href="#">3333333</a><br />
  </div>

  <div id="main">
     <div class="1">1111111</div>
     <div class="2">2222222</div>
     <div class="3">3333333</div>
  </div>
</body>
</html>
zyz_0420 2013-06-02
  • 打赏
  • 举报
回复
谢谢
街头小贩 2013-06-02
  • 打赏
  • 举报
回复

$(window).bind("load", function() {
	var footerHeight = 0;
	var footerTop = 0;
	
	positionFooter();
	
	function positionFooter() {
		footerHeight = $("#footer").height();
		footerTop = ($(window).scrollTop()+$(window).height()-footerHeight)+"px";
		//如果页面内容高度小于屏幕高度,div#footer将绝对定位到屏幕底部,否则div#footer保留它的正常静态定位
		if(($(document.body).height()+footerHeight) < $(window).height()) {
			$("#footer").css({ position: "absolute",left:"0" }).stop().css({top:footerTop});
		}
	}
	$(window).scroll(positionFooter).resize(positionFooter);
});

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧