`
DBear
  • 浏览: 231244 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类

js实现滚动条到底自动加载图片

阅读更多

    之前Google的图片搜索结果界面提供了一个功能,即滚动条滚动到接近底部的位置自动加载剩余图片。个人觉得这个功能还蛮人性化的,避免来回翻页的繁琐,让搜索结果以增量形式展现。所以也自己仿造了一个。功能是基于JQuery的。下面是代码。

 

$(window).scroll(function() {
	var o = $('#pincontainer');
        
        // 并不是所有页面都要执行加载操作。
        // 你也可以选择别的识别条件。
	if(o!=null && o.length !=0){
          
          //获取网页的完整高度(fix)
	  var hght= window.scrollHeight;

	  //获取浏览器高度(fix)
	  var clientHeight =window.clientHeight;

          //‡获取网页滚过的高度(dynamic)
	  var top= window.pageYOffset || 
                        (document.compatMode == 'CSS1Compat' ?  
                        document.documentElement.scrollTop : 
                        document.body.scrollTop);
	  

          //当 top+clientHeight = scrollHeight的时候就说明到底儿了
	  if(top>=(parseInt(hght)-clientHeight)){
		 show();
	  }
	}
  });
  
  //我所要执行的操作是把ajax取得的数据塞到目标div中
  function show(){
  	var target = $('#pincontainer'); 

	if(!target){return false;}

        //一般你都要记录一下你的数据的录入状态,比如到当前显示页码
	var current_page = parseInt(target.attr('index'));

        //还要记录一个最大显示页码,以阻止请求溢出
	var max_page = parseInt(target.attr('maxPages'));
	if(current_page >= max_page){
	  return false;
	}
	
	var data={};
	data.nextPage = parseInt(current_page)+1;
	
	
	var currentHref = window.location;       
	
        // 有的时候可能还要从url中读取参数,我使用正则式
	var tcaStr = new RegExp("(^|)tca=([^\&]*)(\&|$)","gi").exec(currentHref);
	if(tcaStr) data.tca = tcaStr[2];
    
	var scaStr = new RegExp("(^|)sca=([^\&]*)(\&|$)","gi").exec(currentHref);
	if(scaStr) data.sca = scaStr[2];
	
	var tagStr = new RegExp("(^|)tag=([^\&]*)(\&|$)","gi").exec(currentHref);
	if(tagStr) data.tag = tagStr[2];
	
        // ajax请求数据
	jQuery.ajax({
	    type:"POST",
        url: "/show/getPins/",
        data:data,
        dataType: "json",
        beforeSend: function(XMLHttpRequest){
		  $("#loading").css('display','');
	    },
        success:function(response) {
	      if(response.data){
	    	for(var i=0, length = response.data.length; i<length; i++){
	    		var html = response.data[i];
	    		var test = $(html);
	    		target.append(test);
	    		var img = test.find('img');
	    		X.util.flowPin(img[0],188);
	    	}
	    	
                target.attr('index',parseInt(current_page)+1);
             
                $("#loading").css('display','none');
	      }
  	},
  	error:function(){
  	      alert("加载失败€‚");
  	}
    });
	
	return false;
  }

 

    这个功能的一个关键成败点是scrollTop的计算。刚开始我只使用了document.body.scrollTop,但是这个数值在chrome中一直显示0,于是有了上面的多浏览器兼容计算方法。

 

        //‡获取网页滚过的高度(dynamic)
	  var top= window.pageYOffset || 
                        (document.compatMode == 'CSS1Compat' ?  
                        document.documentElement.scrollTop : 
                        document.body.scrollTop);

 

   改进:考虑到有些用户并不喜欢自动加载的功能,可以在页面上添加“取消自动加载”的按钮,换以按钮控制。

分享到:
评论

相关推荐

    拖动滚动条自动加载图片页面

    4. `jquery.scrollLoading.js`:这个文件可能是基于jQuery编写的脚本,专门用于实现滚动条自动加载图片或页面内容的功能。它可能包含了监听滚动事件、判断加载时机、请求新数据以及插入新内容到页面等逻辑。 综上所...

    页面滚动到底部自动加载数据

    在实现滚动加载中,JQuery的`$(window).scroll()`事件监听用户的滚动行为,`$(document).height()`获取文档总高度,`$(window).height()`获取窗口可视区域高度,以及`$(window).scrollTop()`获取滚动条距离顶部的...

    js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法

    页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空间,...

    无刷新联级,滚动条滚动加载数据

    滚动条滚动加载数据,也称为“无限滚动”或“瀑布流加载”,是当用户滚动到页面底部时,新的内容自动加载到页面下方。这种设计模式常用于社交媒体、新闻网站和电商产品列表等,让用户可以无缝浏览大量内容。实现这一...

    模拟QQ空间,滑动滚动条,自动加载数据

    在IT行业中,模拟QQ空间的滑动滚动条自动加载数据是一项常见的前端开发技术,主要用于提升用户体验,特别是对于内容丰富的社交网络平台。这个技术的核心在于实现“无限滚动”或“滚动加载”,即用户在滚动页面时,...

    ASP.NET+jquery实现AJAX滚动滚动条加载数据的下拉列表控件

    在本示例中,我们将讨论如何结合jQuery和AJAX技术,实现在ASP.NET环境中,当用户滚动滚动条时,下拉列表控件自动加载更多数据的功能。 jQuery是一个流行的JavaScript库,它简化了DOM操作、事件处理以及Ajax交互。在...

    jscroll_js实现QQ软件滚动条

    在本主题中,我们将深入探讨如何使用`jscroll.js`这个JavaScript库来实现类似QQ软件那样的滚动条效果。 `jscroll.js`是一个轻量级的JavaScript插件,主要用于创建自定义的滚动条,它可以提供更加优雅的滚动体验,...

    HTML一张大图片,屏幕显示不下,显示滚动条,拖动滚动条来观看大图片(移动视口).zip

    在这个场景下,由于屏幕尺寸限制,大图片会触发浏览器的默认滚动条,允许用户通过拖动滚动条来移动视口查看未显示的部分。以下是对这些知识点的详细说明: 1. **HTML 图片标签**: HTML中的`&lt;img&gt;`标签用于插入...

    JS JQUERY实现滚动条自动滚到底的方法

    在网页开发中,有时我们需要实现一个功能,即页面加载完成后,滚动条自动滑动到页面底部,这在处理长文章、无限滚动或者加载更多内容的场景中非常常见。本篇文章将详细讲解如何使用JavaScript和jQuery来实现这个功能...

    滚动条到底部时自己加载新的内容

    在网页设计中,当用户滚动到页面底部时自动加载新的内容是一种常见的优化用户体验的技术,通常被称为“无限滚动”或“滚动加载”。这种技术在社交媒体网站如新浪微博、Facebook等广泛使用,因为它可以避免用户手动...

    监听浏览器滚动条 回调加载

    这种技术通常应用于无限滚动或称为“滚动加载”(Lazy Loading)的场景,当用户滚动页面到底部时,新内容会自动加载,而不是一次性加载所有数据。这样做可以显著减少页面加载时间,提高页面性能,并节省用户流量。 ...

    h5下拉刷新上拉加载滚动条位置

    在H5页面开发中,下拉刷新和上拉加载是常见的功能,...综上所述,H5下拉刷新上拉加载滚动条位置的处理是提升Web应用用户体验的关键一环。通过合理的技术实现和优化策略,我们可以为用户提供更加流畅、自然的浏览体验。

    js+实现+滚动的表格

    JavaScript(简称JS)是实现这一功能的关键,它是一种轻量级的解释型编程语言,广泛应用于网页和应用程序,特别是处理用户交互、浏览器端的动态内容和Ajax(异步JavaScript和XML)通信。 要创建一个滚动的表格,...

    jquery滚动条使用图片自定义美化(可使用图片替换滚动条)

    本教程将围绕“jQuery滚动条使用图片自定义美化”这一主题,教你如何通过图片替换滚动条,以实现更美观、更符合网站设计的滚动条。 首先,我们需要了解jQuery库,这是一个强大的JavaScript库,提供了丰富的功能,...

    基于javascript实现浏览器滚动条快到底部时自动加载数据

    本篇文章将详细介绍如何使用JavaScript来实现这一功能,特别是当浏览器滚动条快到底部时自动加载数据。 首先,这个功能的基本原理是监听用户的滚动事件,当检测到滚动条的位置接近页面底部时,触发新的数据加载。在...

    使用图片代替的特殊滚动条

    如果使用ASP,可以结合JavaScript来实现更复杂的交互,例如动态加载内容时自动调整滚动条的位置,或者根据服务器端数据更新滚动条的状态。 总结,通过结合JavaScript和ASP,我们可以创建独特的、使用图片替换的滚动...

    带滚动条拖动图片特效

    JavaScript或jQuery可以监听滚动事件,根据滚动条的位置动态加载或隐藏图片,创造出无尽滚动的视觉效果。这种技术被称为无限滚动,可以优化用户体验,避免因图片过多而导致的页面加载缓慢。 在后端,SQL Server ...

    JS实现图片无缝滚动的完美解决

    本文将深入探讨如何通过JavaScript(简称JS)来实现图片的无缝滚动,旨在为开发者提供一个完整且易于理解的解决方案。 #### 关键概念解析 - **`&lt;marquee&gt;`**:这是一个HTML标签,用于创建自动滚动的文本或图片流,...

    自定义滚动条 scroll js滚动条

    "自定义滚动条 scroll js滚动条"就是这样一个主题,它涉及到JavaScript库,如jQuery和jScroll,以及图像资源的使用,来实现滚动条的个性化效果。 首先,jQuery.js是广泛使用的JavaScript库,它简化了DOM操作,事件...

    全屏焦点图片无滚动条 css3动画特效 图片随鼠标移动而移动

    在本项目中,我们主要探讨的是如何利用CSS3和HTML5技术实现一个全屏焦点图片展示效果,其中图片能够随着鼠标的移动而平滑地移动,同时无滚动条设计使得用户体验更加流畅。以下是对这个主题的详细解释: 一、全屏...

Global site tag (gtag.js) - Google Analytics