zoukankan      html  css  js  c++  java
  • 页面回滚效果(滚动条到底部刷新页面)

    jquery滚动监听方法如下,
    $(window).scroll(function(){
        var scrollTop = $(this).scrollTop();
        var scrollHeight = $(document).height();
        var windowHeight = $(this).height();
        if(scrollTop + windowHeight == scrollHeight){
          alert("you are in the bottom");
        }
      });
     
    在实际的应用中,比如微博、qq空间等有这样的效果,打开首页默认显示几条,但我们的鼠标将滚动条下滑到底部时,加载出更多的内容,这个方法是如何实现的?
    通关的demo,simple-weibo中有这样一个要求,个人采用了ajax及jquery的scroll方法一起实现了这个效果,思路如下:
    1、设置滚动条监听事件,如上所示
    2、当scrollTop + windowHeight == scrollHeight时,alert替换成ajax方法,从后端返回需要吐出的数据,
    具体如下

    $.ajax({
      type: 'POST',
      url: "pub.php",

      data:id,  //比如首页默认显示10条,从param中获取参数,比如设为1、2、3表示滚动到底部,sql跳过10条取n条。

      success: function(data) { 
        $("#moreinfo").before(data);

        history.go(0);   //使得显示的是数据库中的数据
      },
      fail: function() {
        alert('请求失败!');
      }
    });

    因为不需要数据,所以ajax方法中没有提到data,success中的data是从pub.php中返回的数据。

    过程中遇到了问题,因为每次到底部时,只加载出了一条消息,因为用的是ajax,此处的DOM是假数据,并未真正存在与HTML中,只有刷新了,显示的才是从数据库中取出的数据。另外,因为默认显示的列表中,为了使得每次加载出的数据都从最下面显示,我们可以建一个<div id="moreinfo"></div>但是什么也不写,只是为吐数据的before方法提供支撑。具体原因可以理解!

  • 相关阅读:
    WM_CHAR消息分析
    数据库OleDbConnection对象参考
    数据库使用Command对象进行数据库查询
    如何在VBNET中使用调试输出类Debug和Trace
    数据库与数据库连接
    数据库ADONETOleDbDataReader对象参考
    VBNET运行时处理对象事件(AddHandler和RemoveHandler)
    防火墙分类简述(班门弄斧了)
    杀毒防护类软件的组合转帖
    数据库ADONETOleDbCommand对象参考
  • 原文地址:https://www.cnblogs.com/upfriend/p/4676802.html
Copyright © 2011-2022 走看看