JS-JQ-垂直居中的侧边栏

一、原理:

  滚动高度+(可视区高度-div高度的一半)/2

  JS:document.documentElement.scrollTop+(document.documentElement.clientHeight-div/2)/2

  JQ:$(window).scrollTop()+($(document).height()-div/2)/2

二、知识

  $(document):获取整个网页的文档对象

  $(window):获取窗口对象,也就是浏览器客户区       是窗口

  $('body,html'):获取的是文件本身   是文档

 

!!!- CSS

<style>
  body{height:2000px;}
  *{margin:0;padding: 0;}
  #div1{width:200px;height:100px;background:red;position:absolute;top:0;bottom:0;}
</style>

 

!!! - HTML

<div id="div1"></div>

 

 

!!! - JavaScript

window.οnscrοll=window.οnlοad=function()
{
  //1、垂直居中
  var div1=document.getElementById('div1');
  var w=document.documentElement.clientWidth||document.body.clientWidth;
  var h=document.documentElement.clientHeight||document.body.clientHeight;
  //2、滚动也能居中
  var Y=document.documentElement.scrollTop||document.body.scrollTop;
  div1.style.top=Y+(h-div1.offsetHeight/2)/2+"px";
}

 

!!! - JQuery

//这个效果并没有完美,会发现DIV并不垂直居中,仅给朋友们参考

$(function(){
  function ok()
  {
    var h=$(window).height();//可视区高度
    $('#div1').css('top',$(document).scrollTop()+(h-$(this).height()/2)/2);
  }
  ok();
  $(window).scroll(function(){
    ok();
  })
})

转载于:https://www.cnblogs.com/xiaoyangtian/p/7922917.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值