zoukankan      html  css  js  c++  java
  • [jquery]如何实现页面单块DIV区域滚动展示

        // 未实现功能的代码 1(自己写的代码)
        var _cur_top = $(window).scrollTop();
               var num = $(".class_section").length;
               var wH = $(window).height();
               var t = [];
               var i = 0;
               $(window).scroll(function () {
                   var sH = $(window).scrollTop();
                   var total = wH + sH;
                  // 滚动条的高度 + 窗口的高度
                  $(".class_section").each(function (index) {
                    var offsetTop = $(this).offset().top;
                    console.log(++i);
                    console.log('index:' +index +'offTop:' + offsetTop);
                    
                  });
               });
               console.log(t);
                       
        // 已实现功能的代码 2 (devin)
     var $contentList = $(".class_section");
                var _cur_top = $(window).scrollTop();
                var contentNum = $contentList.length;
                var  $nowActiveContent = $contentList.eq(0);
                // get the current position
                for(var i = 0 ; i < contentNum ; i++)
                {
                    
                    if($(window).scrollTop() <= $contentList.eq(i).offset().top + $contentList.eq(i).height()) {
                        $nowActiveContent = $contentList.eq(i);
                        break;
                    }
                }
              
                //self.position($nowActiveContent);
                 if($nowActiveContent.prev().length == 0){
                        $(window).scrollTop(0);
                    } else{
                        $(window).scrollTop($nowActiveContent.offset().top);
                    } 
                // manage the scroll's situation
                $(window).scroll(function(){
    				var top = $(window).scrollTop();
                    
                    var cmpNowActiveTop = $nowActiveContent.prev().length == 0 ? 0 : $nowActiveContent.offset().top;
                    var cmpNowActiveBottom = $nowActiveContent.next().length == 0 ? $("body").height() : $nowActiveContent.offset().top + $nowActiveContent.height();
                    if(top >=  cmpNowActiveTop && top +  $(window).height() <= cmpNowActiveBottom){
                        _cur_top = top;
                        return;
                    }
                    
                    
                    if(_cur_top < top)
                    {          
                        if(top > cmpNowActiveTop)
                        {
                            $nowActiveContent = $nowActiveContent.next().length > 0 ? $nowActiveContent.next() : $nowActiveContent;
                        }
                    } else {   
                        if(top +  $(window).height() < cmpNowActiveBottom){
                            $nowActiveContent = $nowActiveContent.prev().length > 0 ? $nowActiveContent.prev()  : $nowActiveContent;
                        }
                    }
    // self.position($nowActiveContent); if($nowActiveContent.prev().length == 0){ $(window).scrollTop(0); } else{ $(window).scrollTop($nowActiveContent.offset().top); } _cur_top = $(window).scrollTop(); });
  • 相关阅读:
    极高效内存池实现 (cpu-cache)
    gles2.0环境的在windows上的建立
    使用OpenGL绘制 shapefile文件 完成最基本的gis操作
    纯C++安卓开发 (ndk)系列之 ---- 常见问题
    如何用 纯C++(ndk)开发安卓应用 ?
    Android-NDK处理用户交互事件
    图解-安卓中调用OpenGL
    图解安卓-c++开发-通过java 调用c++ jni的使用
    搭建安卓开发环境 hello world andriod
    关于socket通讯,如何才能高效?
  • 原文地址:https://www.cnblogs.com/shuman/p/5141112.html
Copyright © 2011-2022 走看看