BlocksIt.js瀑布流插件结合ajax实现无限加载数据

jquery.infini_scroll.js:jquery无限滚动加载插件 What is infini scroll jquery 插件用来在页面滚动到屏幕底部时自动加载内容并追加 DOM 元素到页面底部,api接口友好,可能是你目前能找到的最简单好用的无限滚动加载插件。 Live Demo Installation 包含 infini_scroll javascript 文件 运行 $("#J_mod_article_list").infini_scroll({}); 配置选项包含: totalPages 总页数,默认为0 url 获取列表url请求地址,直接返回列表的html varPage 分页变量,默认为p triggerBottom 距离最底部多少像素触发,默认为100 round 默认当上拉刷新3次后,显示“加载更多”,防止无限制加载 loadingElement 显示“正在加载更多”节 立即下载

        最近无聊,搜索了网络上的瀑布流插件,最终下载BlocksIt.js的插件,在结合ajax异步获取数据。实现滚动无限加载数据。

一开始以为只要把append添加内容地方替换为ajax方法就可以了,结果一测试完才发现有好多问题。


一:数据一开始无法重排??

function ajaxData(page){
	$.get("getData.asp", {"curpage" : page}, function(result){
		if(result != ""){
			$('#container').append(result);
		}		
	});	
}

$(function(){
    //初始化图片
    ajaxData(1);
    $('#container').BlocksIt({//执行瀑布流命令
                numOfCol:5,
                offsetX: 8,
                offsetY: 8
            });    
})
        起先我是把瀑布流插件执行命令,放在了ajax获取数据函数的外面,结果却发现这个并没有起作用,

然后我一直往下拉动,发现又可以了。然后在返回顶部发现有些图片,可以发现最开始的加载的那些图片并没有改变定位属性,导致无效。

        于是我猜测是不是由于首次图片加载的原因??不能使用ajax??为了证实这个想法,我把初始化ajax函数注释掉,在代码里头直接使用asp加载了20来张图片,然后在运行页面。可是还是发现同样的结果。

        最后对比原插件命令,才注意到$('#container').BlocksIt()这个命令是仅仅跟在加载数据【appendTo()】的后面的。然后我在把asp初始化图片命令都去掉,转为ajax加载函数引用,然后把这个命令移入到ajax函数里头,运行插件。谢天谢地,总算是对了。【但是,唯一不了解是为什么先加载完数据使用$('#container').BlocksIt()这个来对图片进行重排会无效?同样都是在加载完调用的,只不过一个是在执行完函数调用,一个是直接在函数里头等待数据添加到dom节点就执行的。】


二:鼠标滚动加载ajax数据事件被多次调用??

$(function(){
	var curpage = 1;//定义一个全局变量page
	//初始化图片
	ajaxData(1);
	
	$(window).scroll(function(){    
		
		// 当滚动到最底部以上50像素时, 加载新内容
		if ($(document).height() - $(this).scrollTop() - $(this).height()<50){
			curpage++;//一滚动变量自动递增
			ajaxData(curpage);
			
		}
	});

        一直搞不懂什么原因,查找了很多资料也都不明白为什么?有看到说用延迟来加载,然并卵,还是被加载了好多次。最终,找到一个方案,也是在全局设定开关。然后判断是否开启开关,立刻将开关关闭,等ajax加载完吧开关在开启。完整js代码如下:

<script type="text/javascript">
var isStop=0;//触发开关,防止多次调用事件	..全局变量

function ajaxData(page){
	$.get("getData.asp", {"curpage" : page}, function(result){
		if(result != ""){
			$('#container').append(result);
			$('#container').BlocksIt({
				numOfCol:5,
				offsetX: 8,
				offsetY: 8
			});	
			isStop = 0;
		}		
	});	
}

$(function(){
	var curpage = 1;//定义一个全局变量page
	//初始化图片
	ajaxData(1);
	
	$(window).scroll(function(){    
		
		// 当滚动到最底部以上50像素时, 加载新内容
		if ($(document).height() - $(this).scrollTop() - $(this).height()<50){
			if(!isStop){				
				isStop = 1;
				curpage++;
				ajaxData(curpage);
			}
			
		}
	});	
});
</script>

        然后,后端我是使用的asp语法来获取数据的,当然关键获取sql固定条数是根据sql的分页查询【between and】来实现的,如下sql语句:

select * from (select *, row_number() over (order by id) rn from [tb1] s left join [tb2] m on s.m_id = m.id) as T 
where T.rn between "& ((curpage - 1) * ipagesize + 1) &" and "& curpage * ipagesize 


资源【资源里头的数据是先用access替代,结果发现他没有row_number方法只有top n这种方式】:

http://download.youkuaiyun.com/detail/eadio/9170207


拓展:

插件官方网站:http://www.inwebson.com/jquery/blocksit-js-dynamic-grid-layout-jquery-plugin/

BlocksIt.js工作原理:

给选中的元素加上absolute属性,重新定位。然后根据以下标准计算top和left定位:

        1、从左往右一个块一个块元素的排

        2、根据将新的块放置到上一排最矮的块元素下方。


怎么使用BlocksIt.js:

        1、引入jq和BlocksIt.js脚本文件,注意jq脚本不低于jQuery 1.7.1,官网标明了没有对低版本进行测试【It should works well with jQuery 1.7.1 (haven’t tested for lower version)】。

        2、直接调用方法【.BlocksIt()】,需要注意的是,在调用方法前,如果你的块元素里头包含img标签,那么需要保证所有的图片具有实际高度,否则必须保证图片都载入窗体。可以使用$(window).load() 确保一切Dom节点都加载完毕,也可以使用某些图片插件来检查图片载入状态。


方法参数配置

        1、numOfCol            Int          5          创建的列数,默认5列

        2、offsetX                  Int          5          每个块左右间隙【margin-left 和 margin-right,默认是5px】

        3、offsetY                  Int          5          每个块上下间隙【margin-top和 margin-bottom,默认是5px】

        4、blockElement     String    ”div”     将指定的子元素转换为块【data-size属性指定该子元素块占据多大尺寸】

示例:

<div id="container">
<div class="grid class">...</div>
<div class="grid class2" data-size="2">...</div>
<div class="grid">...</div>
<div class="grid class" data-size="3">...</div>
<div class="grid">...</div>
</div>


最终脚本引用:

$(document).ready(function() {
    $('#container').BlocksIt({
        numOfCol: 5,
        offsetX: 8,
        offsetY: 8,
        blockElement:'.grid'
    });
});

显示:


blocksit:BlocksIt.js是一个用于创建动态网格布局的jQuery插件。 它设法将HTML元素转换为“块”,并将其放置在排列良好的网格布局(如Pinterest)中 街区 BlocksIt.js是一个用于创建动态网格布局的jQuery插件。 它设法将HTML元素转换为“块”,并将它们放置在排列良好的网格布局(如Pinterest)中。 如何? 好吧,只需指定您希望拥有的列数,然后BlocksIt.js将为您完成其余的工作。 另外,您甚至可以结合“块”来制作一个巨大的块! 演示页 这个怎么运作 BlocksIt.js将使用CSS绝对位置属性重新定位所选元素。 它具有根据某些条件计算元素的顶部和左侧位置的功能,如下所示: 从左到右启动新块,然后 将新块放在最短块下。 配置 .BlocksIt( [Options] ) 选项 numOfCol-要创建的列数。 (默认值:5) offsetX-每个块的左右边界。 (预设值:5) offsetY-每个块的顶部和底部边距。 (预设值:5) blockElement-目标子元素,将转换为块。 (默认值:div 立即下载

相关推荐

流布局 blocksit-js开发文档 API

流布局 blocksit-js开发文档 API Dynamic Grid Layout jQuery Plugin 英文开发文档,jQuery开发插件

jquery.infinitescroll无限加载插件

jquery.infinitescroll实现无限分页加载

JiangJunDriver的博客 6872

零基础教程:用Python给试卷照片自动切题(有道OCR+PIL完整流程)

本文为零基础用户提供了一套完整的Python自动化切题方案。通过调用有道OCR API识别试卷照片中的题目坐标,并利用PIL库进行精准裁剪,将杂乱的试卷图片自动分割为独立的题目图像。教程详细涵盖了环境搭建、图像预处理、API调用、坐标解析与批量处理全流程,帮助教育工作者和技术爱好者高效处理大量试卷,实现工作流程自动化。

grpc6streamer的博客 1172

ajax瀑布流插件,jQuery瀑布流无限加载插件:jquery.falless.js

慌慌张张,匆匆忙忙,为何生活总是这样?难道说,我的理想,就是这样度过一生的时光?...........真的是一年一年飞逝而去,而人的一生,又有几个一年?第一个四年即将结束,得到了什么?又失去了什么?仔细想想,却并没有答案。而夜深人静的时候,想起四年前的自己,三年前的自己,真的和现在的自己不一样了。现在这样的我,还依旧是我吗?不知道。不过就像《活着》这首歌中所表达的那样,生活,也许真的就是这样。又有...

weixin_29200741的博客 496

数据预处理的分箱操作

数据分箱 介绍 我们在建立模型前,一般需要对特征变量进行离散化,特征离散化后,模型会更稳定,降低模型过拟合的风险。尤其是采用 logsitic 建立评分卡模型时,必须对连续变量进行离散化。而特征离散化处理通常采用的就是分箱法,数据分箱(也称为离散分箱或分段)是一种数据预处理技术,用于减少次要观察误差的影响,提高泛化性。 数据分箱又分为有监督分箱和无监督分箱,是否使用标签进行离散化(分箱)决定了有监督还是无监督的离散化方法。 知识点 无监督分箱 split 分箱 merge 分箱 无监督分箱 这里为了

随笔记 5332

王道考研计算机网络课件全解析:从零搭建你的知识框架(附B站视频+PPT下载)

本文全面解析王道考研计算机网络课程的核心知识体系,从OSI七层模型到TCP/IP四层架构,详细讲解物理层、数据链路层、网络层、传输层和应用层的关键技术。提供高效学习路径、实战案例和常见误区警示,帮助考生系统构建计算机网络知识框架,适合计算机考研备考者参考学习。

leaf8的博客 560

js实现无限滚动加载数据

entries是传递给回调函数的一个参数,它是一个包含对象的数组。每个对象表示一个被观察目标元素的最新交叉状态(即目标元素与根元素或视口的交集)。IntersectionObserverEntry 对象每个time一个时间戳,表示交叉状态变化的时间戳,精确到毫秒,通常用于性能测量。target被观察的目标元素,即观察器正在观察的具体 DOM 元素。rootBounds一个对象,表示根元素的边界框。如果根元素是视口,则表示视口的边界框。一个对象,表示目标元素的边界框,即元素在视口中的位置和尺寸。一个。

lbking666666的专栏 2158

初识数据之特征选择

【代码】初识数据之特征选择。

M_inherit的博客 1134

blocksit.js插件瀑布流

blocksit.js插件瀑布流 <!DOCTYPE html> <html> <head> <title>jQuery瀑布流插件BlocksIt </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />...

aili1947的博客 259

【YOLOv11】070、YOLOv11异常检测:正常数据训练下的异常目标识别

本文探讨了如何利用YOLOv11模型进行工业异常检测,重点介绍了仅使用正常样本训练模型的创新方法。文章首先通过产线误报案例引出异常检测的核心问题,阐述了YOLOv11作为特征提取器的改造思路,包括正常数据训练、特征空间构建和异常度量等关键步骤。实战部分提供了精简代码示例,强调数据增强控制、特征层选择和自编码器应用等技巧。作者还总结了容易出错的细节,如特征选择、阈值设定和计算效率优化等,并给出实用建议:从简单方法入手、重视可视化、确保数据质量、部署时设置复核机制等。最后指出该方法虽能减少对异常样本的依赖,但需

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 235

逻辑回归:利用Python实现二分类算法

通过使用Python编写的代码,我们可以训练逻辑回归模型并进行预测。接下来,我们将实现逻辑回归算法的训练函数。训练函数将接受训练数据集X和对应的标签y,以及学习率alpha和迭代次数num_iterations。训练完成后,我们可以使用训练得到的参数theta来进行预测。在这个例子中,我们有一个包含4个样本的训练数据集X,每个样本有两个特征。在这个例子中,如果预测概率大于等于0.5,则预测为类别1,否则预测为类别0。现在,我们可以使用训练函数来训练模型。根据给定的样本x_new,预测函数将返回相应的类别。

XlltEditor的博客 326

waterfall.js瀑布流无限加载图片插件

waterfall是一款响应式无限动态加载图片瀑布流特效jQuery插件。 waterfall瀑布流特效使用ajax调用来动态加载图片,达到无限加载的效果。 使用方法 使用这个瀑布流插件需要引入jQuery.min.js和jquery.waterfall.js文件。 <script src="js/jquery-1.11.1.min.js"></script> <s...

weixin_34405925的博客 1247

基于Simulink的占空比调制DTC降低转矩脉动

修改传统SVPWM模块,输入占空比d和有效矢量索引,计算Ton​=d∗Tc​、Toff​=(1−d)∗Tc​,生成对称PWM波形(替代开关表直接输出)。:低速时(n<500rpm)减小dmax​=0.6(避免磁链畸变),高速时(n>2000rpm)增大dmax​=0.8(提升动态响应);kT​/kψ​:转矩/磁链误差增益(需整定,如kT​=0.02/(N⋅m),kψ​=0.1/Wb);(θ为电压矢量与磁链夹角)。② SVM-DTC(占空比计算模块启用,d0​=0.5,kT​=0.02,kψ​=0.1)。

amy_mhd的博客 87

html瀑布流布局layui,Blocksit+Layui实现响应式瀑布流加载

前言流加载是一种比较酷炫的数据加载方式,它类似分页却又不同于分页,可以随着滚动条的滚动,不断加载数据展现给用户。瀑布流是一种比较美观的布局方式,它可以让你不必计较每个div块的高度,自然而然的展现给用户。相关组件Blockslt:基于jQuery的瀑布流布局插件。官网Layui(flow模块+jquery模块):模块化前端框架。官网准备工作由于我们使用了layui框架,而layui封装了jquer...

weixin_35756624的博客 1137

位置点位到达判断FC(Easy+Codesys+博途平台)

IN rActPositon REAL 轴当前实际位置 1IN arAbsPosition REAL[10] 各工作点位坐标 2IN rDeadZone REAL 位置达到判断域值 范围 3OUT abInAbsPos BOOL[10] 到达各绝对定位点位标志 位置到达输出 4VAR i INT 循环计数 5VAR rErr REAL 位置偏差 6。

RXXW_Dor的博客 531

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

mysql瀑布流布局插件_Blocksit插件实现瀑布流数据无限( 异步)加载

html代码:{#$item.title#}时间:{#$item.start_date#}-{#$item.end_date#}地点:{#$item.area_name#}{#$item.title#}时间:{#$item.start_date#}-{#$item.end_date#}地点:{#$item.area_name#}{#$item.title#}时...

weixin_35937871的博客 172

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jquery 瀑布流插件

基于jquery,支持window-resize和ajax取数据; 测试通过ie6+,FF3+,chrome,safari; github地址:[url]https://github.com/chembohuang/jquery.waterfall.plugin[/url] demo地址:[url]http://paradise4ever.com/waterfall/demo.html[/u...

持续疯长,往天那边去 163

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

blocksit.js绘制移动端瀑布流样式

blocksit.js官方的demo有两个,适用于pc端浏览器的缩放来改变瀑布的列数; 我修改了一下适用于移动端;默认设置显示两列 ; 代码基本如下:style.css body { margin: 0; padding: 0; background: url(bg.gif) 0 0 repeat #f7f5f5; color: #333; font-family: Cambria

Jinx 2622

HTML5开发动态网格布局的jQuery插件BlocksIt.js 瀑布流

HTML5瀑布流效果——BlocksIt.js 瀑布流     动态网格布局的jQuery插件 $(document).ready(function() {            //blocksit define     $(window).load( function() {         $('#container').BlocksIt({

ccnanxi的博客 1561

JavaScript实现列表无限加载

起因 之前自己在使用这种网站时,经常看到无限加载的效果。今天正好看到了getBoundingClientRect这个Api,就想着试试看如何实现Infinite scroll的效果。 原理 在需要无限加载的列表底部,埋下一个隐藏元素。当不断滑动时,隐藏元素将出现在视窗(viewport)里,也就意味着当前浏览的列表已经到底部了。这时候就需...

weixin_34387284的博客 483

elementUi——table中实现滚动到底部无限加载数据功能——功能实现

最近在看同事代码时,发现同事使用了一个表格自动滚动加载数据的功能。 这个功能适用于:表格中内容过多,需要分页展示,但是又不想使用分页组件,此时可以只展示一页的数据,然后当表格滚动到底部时,再加载下一页的数据。 参看大神链接:element-ui 的 el-table 上使用无限滚动加载(与自带的 infinite-scroll 结合):https://blog.csdn.net/baidu_27769027/article/details/101924676 elementUi官网上是有无限滚动加载功能的。

yehaocheng520的博客 1万+

jquery插件infinitescroll滚动无限加载的简单示例

滚动无限加载示例 代码如下: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;title&gt;无限翻页效果&lt;/title&gt; &lt;script src="load/jquery-2.1.0.min.js"&gt;&a

Jenny—静默时间,花开灿然 729

js 大数据列表虚拟滚动_使用虚拟滚动列表实现大数据和无限加载

js 大数据列表虚拟滚动 虚拟虚拟滚动列表 (vue-virtual-scroll-list) A vue (2.x) component that supports big data and infinite loading by using virtual scroll list. Tiny and very easy to use. 一个vue(2.x)组件,通过使用虚拟滚动列表支持大数据...

cuk5340的博客 2511

【无限滚动加载数据】—infinite-scroll插件的使用

网上对于infinite-scroll插件使用的例子不多。但由于它的出现,鼓吹了瀑布流形式的页面展示方式,所以不得不了解了解这种新的分页方式。 官网上有对infinite-scroll的详细描述,但一般人即使看未必看得懂,看得懂未必就调试成功。所以借今晚有点时间,把跑通的例子供大家借鉴。 一.无限滚动概念 首先,它是基于Jquery的,另外还要明白无限滚动的概念:无限滚动的实现原理就是当你在

︿( ̄︶ ̄)︿ 9万+

js 实现无限加载分页(适合移动端)

js 实现无限加载分页(适合移动端) 原理:当滚动条到达底部时,执行下一页内容。 判断条件需要理解三个概念:     1.scrollHeight 真实内容的高度     2.clientHeight 视窗的高度,即在浏览器中所能看到的内容的高度     3.scrollTop 视窗上面隐藏掉的部分,即滚动条滚动的距离 思路:     1.使用fixed定位加载框

良_123的专栏 3万+

上拉加载更多后台数据_VUE指令:无限上拉加载更多插件

前言无限上拉加载更多,在很多场景都有使用,无论是PC还是移动端,尤其是移动端,都应用非常广泛,比如掘金、头条等。 都知道,无论是下拉,亦或是上拉,都是基于滚动条的位置而言的,如果滚动条触底,表示需要加载更多了,而触顶,再次下拉,表示刷新。看个简单的代码示例:let list = []let pageSize = 10let pageNo = 1// 刷新function refresh(){ li...

weixin_39765588的博客 595
上一篇: easyUI+mvc开发列表页页面渲染先出现编辑框和添加框
下一篇: win7下本iis域名测试asp站点
草灯
博客等级 码龄15年 150粉丝 85原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值