当前位置:首页 > 网站维护 > 列表

DIV随页面滚动遇顶固定的几种方法

来源:浦一科技点击:时间:2016-12-9 关键词:上海网页制作 div css css排版
div层随屏幕滚动遇顶固定的智能浮动效果下载相应代码智能浮动效果的实现原理它分两种状态,一是默认状态,二是浮动固顶状态。默认状态就是默认状态,什么也不用做,保持原有的CSS就好。无论有没有对它做定位,做了absolute也好,没做也好,都行。关键是当浏览器屏幕

DIV随页面滚动遇顶固定的几种方法

div层随屏幕滚动遇顶固定的智能浮动效果 下载相应代码

智能浮动效果的实现原理

它分两种状态,一是默认状态,二是浮动固顶状态。

默认状态就是默认状态,什么也不用做,保持原有的CSS就好。无论有没有对它做定位,做了absolute也好,没做也好,都行。

关键是当浏览器屏幕滚动时,该对象div层要移除浏览器界面视区的时候,是要修改它的position属性,让它浮动在窗口的上沿显示就行了。最好的position属性是fixed,可以在IE6+和其他浏览器浮动层平滑的固定定位,由于IE6老大哥不支持fixed属性,所以可以另外赋予它absolute属性。当然也会产生副作用——滚动不平滑。不过也无所谓了,在微软公布不再修补更新XP漏洞,在中国360安全卫士的帮助下虽然大家仍然使用XP,但IE的用户已经是少之又少了。

那接下来,如何判断当前div层与浏览器窗口的上边缘接触了呢?遇到浏览器顶部了呢?

当浮动层div与浏览器窗口上边缘接触的一瞬间,其页面垂直偏移值与页面的滚动高度是一致的,所以我们就用这个进行判断。那如何获得页面上元素距离页面的垂直距离呢?

这里则是使用javaScript库实现。

1、第一种实现div层智能浮动的方法

具体代码如下:

$.fn.smartFloat = function() {
var position = function(element) {
 var top = element.position().top, pos = element.css("position");
 $(window).scroll(function() {
  var scrolls = $(this).scrollTop();
  if (scrolls > top) {
   if (window.XMLHttpRequest) {
    element.css({
     position: "fixed",
     top: 0
    });
   } else {
    element.css({
     top: scrolls
    });
   }
  }else {
   element.css({
    position: pos,
    top: top
   });
  }
 });
};
return $(this).each(function() {
 position($(this));      
});
};

调用其实很简单,将需要浮动的目标层div所设定的id,添加到以下函数代码,如下:

$("#fixed").smartFloat();

这样两段代码就可以实现ID为fixed的层有了智能浮动效果,当该层在页面滚动时,与浏览器上边缘接触时就会固定顶部,不再跟随滚动条而滚动了。当滚动回上面时,又会还原成原有状态。当然,别忘记在页面head之前调用jquery库呀。具体代码与压缩包请在文章末尾下载!

2、第二种实现div层的智能浮动效果办法

与前面的方法差不多,只是语句更简单一些,当然逻辑上是没有这么严谨吧。

function scrollLis(){
var toTop = offs.top-$(window).scrollTop();
if(toTop==0||toTop<0){
 if(!$('#fixed').hasClass('ab'))$('#fixed').addClass('ab');
}else{
 $('#fixed').removeClass('ab');
}
}

它的调用就多了几句代码了,同样是放在层的后面,以ID标签fixed为名:


var offs=$('#fixed').offset();
$(window).scroll(function(){
scrollLis();
});


以上两种方法我们都在不同的浏览器下测试通过,包括了360安全浏览器、搜狗、火狐、IE6~9、遨游等等。

div层随屏幕滚动遇顶固定的智能浮动效果 下载相应代码

服务项目

网站建设

网站建设

通过SEO优化技术,提供更多的展示机会,带来大量精准流量和询盘,每月意向客户增长20%。

手机网站建设

手机网站建设

手机网站的时代强势来袭,赢在全网营销时代,手机+电脑双剑合璧,把握商机滴水不漏。

网站维护

网站维护

一个好的网站需要定期或不定期地更新内容,才能不断地吸引更多的浏览者,增加访问量。

整合网络营销

整合营销

为了建立、维护和传播品牌,以及加强客户关系,而对品牌进行计划、实施和监督的一系列营销

预约建站
免费提供网站优化
领取关键词