div 一直处于屏幕中间

 

 

1 js 实现

  原理: 窗口滚动条滚动,不断调整div的位置

  

<!DOCTYPE unspecified PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
 
 <body>  
<div style="position: absolute;height: 2000px;border: 1px solid green;"> <div style="margin-top: 400px">这个div用来撑起真个页面</div> </div>
<div id="fd" style="height:100px;width:100px;z-index:9999;border:1px solid red">  
	 中间<br><span id="pos"></span>
</div>  
</body>
<script type="text/javascript" src="/js/jquery-1.4.2.min.js"></script>
<script language="javascript">  
   $(function() {  
	 $(window).scroll(function(){  
	    var point = getObjWh1( "fd" );  
	    $('#pos').html('x:'+point.x+',<br>y:'+point.y);
	    $('#fd').css( { position: "relative" , left: point.x , top:point.y  } );  
	});  
   });   
   
   function getObjWh1(obj){  
	  var point={};  
	  var st=$(document).scrollTop();//滚动条距顶部的距离  
	  var sl= $(document).scrollLeft();//滚动条距左边的距离  
	  var ch=$(window).height();//屏幕的高度  
	  var cw=$(window).width();//屏幕的宽度  
	  
	  var objH=$("#"+obj).height();//浮动对象的高度  
	  var objW=$("#"+obj).width();//浮动对象的宽度  

	  var objT=Number(st)+(Number(ch)-Number(objH))/2;  
	  var objL=Number(sl)+(Number(cw)-Number(objW))/2;  
	  point.x = objL ;  
	  point.y = objT;    
	  return point;  
	 
}  
 </script> 
</html>


 

 

 

 

 

2 css + div 实现div 始终显示屏幕中间

 

   原理:html 作为外层的容器一直都是窗口大小 ,如果内部东西超过边界则隐藏

             body 作为内层容器一直是窗口大小,内部内容高度大于窗口高度边界则滚动条滚动,但总体窗口位置一直不变

             内部不动的div是相对于窗口的位置,无论滚动条怎么滚动窗口不动,则这个div位置也不变化。

 

 

<html> <head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title> </title> <style> 
*{ 
	padding:0px; margin:0px; 
	margin-right:10px;
	margin-bottom:10px;
} 

	html{border:4px solid red}
	/*height与width 改成 100%  这里方便观看现象*/
	body,html{height:98%; width:98%; } 
	html{overflow:hidden;} 
	body{overflow-y:auto } 
	.display{  position:absolute;  
		left:50%; top:50%;  
		height:300PX;  width:500PX;  
		margin-left:-250PX;  
		margin-top:-150PX;  
		border:1PX solid #F00;
	} 
</style> 
</head> 
<body style="border:4px solid red"> 
      
	<DIV style="height:2000PX;">测试滚动</DIV> 
	<DIV style="height:2000PX;">测试滚动 </DIV> 
	<DIV style="height:2000PX;">测试滚动</DIV> 
	<div class="display">11111</div> 

</body> 


</html>

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值