无限滚动 Div 与 Ajax 加载内容?

2023-11-24

我想实现一种称为可滚动 div 的技术GWT。我正在尝试做的事情如下。 如果用户在我的页面上,他只能看到视口(图像中的绿色框)。该视口中的所有 DOM 元素在页面加载时对用户可见。在页面加载时加载页面后,所有不在视口上的 DOM 元素尚未加载(图像中的蓝色框)。

如果用户拖动并移动视口,所有进入视口的 dom 元素都会变得可见。如果它们位于视口上,它们将通过 ajax 加载。

用户可以放大和缩小视口以使其变大或变小。此外,如果对用户不可见且尚未加载的元素变得可见,则必须通过 ajax 加载它们并显示在视口上。

我该如何使用 GWT 来实现这一点?

如果用户加载页面,则如下图所示:

enter image description here

用户可以向 8 个方向拖动和移动视口。它们是顶部、右上、右侧、右下、底部、左下、左侧和左上。下图显示了向左移动。 当视口移动时,应使用 ajax 加载新内容。

enter image description here

视口也可以放大。在这种情况下,还应该加载新内容。

enter image description here

视口也可以缩小。请注意,视口必须具有固定尺寸。只有内容应该是可缩放的。

enter image description here


UPD: jsfiddle 示例:http://jsfiddle.net/hv57s/9/

UPD: jsfiddle 具有放大/缩小按钮的功能:http://jsfiddle.net/hv57s/11/

根据这个例子回答:Indira.js 无限滚动

<div id="scrollableDiv" data-scroll-callback="$('#load_button').trigger('click')">
 <table>
  ...
  <tbody id="scrollable_tbody">
    <tr>
     ...
    </tr>
  </tbody>
  <button id="load_button" onclick="load_more(page_number)">Show more</button>
</div>
<script>
var scroll_el_id = 'scrollableDiv';
var element = $('#scrollableDiv');

$(window).unbind('scroll.' + scroll_el_id).bind('scroll.' + scroll_el_id, function(event){

  var scrollBottom = $(window).scrollTop() + $(window).height();
  var elementBottom = element[0].scrollHeight + element.offset().top;

  if(scrollBottom >= elementBottom){
    eval($(element).attr('data-scroll-callback'));
    $(window).unbind('scroll.' + scroll_el_id);
  }
});
</script>

接下来你只需附加到#scrollable_tbodyAJAX 响应,例如:

function load_more(page){

    $.ajax({type: "GET", url: 'some/url/load_more.php?page='+page,})
        .done(function( html ) { 

           $('#scrollable_tbody').append(html); 
       });
}

UPD:我认为你应该设置大尺寸html,body like:

html, body{ 
    min-width: 8192px; 
    width: 8192px; 
    min-height: 8192px; 
    height: 8192px;
}

并将视口设置为您想要的大小。


但如果你设置一些包装也许会更容易div就在之后body标记为

div.wrap{
  overflow: scroll; 
  -webkit-overflow-scrolling: touch; 
/*Do not forget to change your_viewport_* to actual size, also you can do this via jQuery on the fly*/
  max-height: your_viewport_height; 
  min-height:your_viewport_height; 
  height:your_viewport_height; 
  max-width: your_viewport_width; 
  min-height:your_viewport_width; 
  height:your_viewport_width;
}

并且这个元素内部更大div这将是可滚动的。

div.huge{ 
    min-width: 8192px; 
    width: 8192px; 
    min-height: 8192px; 
    height: 8192px;
}

HTML:

<html>
<head>
...
</head>
<body>
  <div class="wrap">
    <div class="huge">
        ...
    </div>
  </div>
</body>
</html>

另外,不要忘记为元素的所有侧面设置滚动控制,例如我只有底线控制,例如:

  var scrollBottom = $(window).scrollTop() + $(window).height();
  var elementBottom = element[0].scrollHeight + element.offset().top;

  var scrollTop = $(window).scrollTop();
  var elementTop = element.offset().top;

  var scrollRight = $(window).scrollLeft() + $(window).width();
  var elementRight = element[0].scrollWidth - element.offset().left;

  var scrollLeft = $(window).scrollLeft();
  var elementLeft = element.offset().left;

  if(scrollBottom >= elementBottom && scrollTop <= elementTop && scrollRight >= elementRight && scrollLeft <= elementLeft){
    eval($(element).attr('data-scroll-callback'));
    $(window).unbind('scroll.' + scroll_el_id);
  }

我没有对此进行测试,无论如何你都必须尝试一下。希望我能为您指出正确的方向。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无限滚动 Div 与 Ajax 加载内容? 的相关文章

  • Chrome 19 无法识别字体粗细:较轻

    我刚刚启动了一个正在开发的项目以进行一些修改 并注意到该声明font weight lighter正在通过以下方式提供服务 font face并且它不再在网站上运行 参见图片 顶部镀铬 底部 ff 自昨晚以来 我的系统 Windows 上没
  • Twitter Typeahead 上使用 Bootstrap 3 的 CSS 问题

    随着 Bootstrap 3 的发布 Typeahead 已被删除 取而代之的是 https github com twitter typeahead js https github com twitter typeahead js 我已经
  • Chrome 版 Firebug Lite 会破坏悬停效果和鼠标悬停事件

    我有一个奇怪的问题 使用时适用于 Chrome 的 Firebug Lite https chrome google com webstore detail firebug lite for google c bmagokdooijbeeh
  • Bootstrap 4 移动导航栏消失

    我刚刚从 Bootstrap 3 转换为 Bootstrap 4 但我的移动导航栏出现问题 使用切换按钮展开导航栏时 导航消失 我不明白为什么会发生这种情况 导航栏下方有一个大屏幕 但整个移动导航向上移动 如下面的 gif 所示 以下是导航
  • 全高全宽 CSS 布局

    我正在寻找一种方法来创建具有 5 个区域的纯 CSS 无 JavaScript 布局 如下所示 H A B C F
  • Chrome --app 相当于 Firefox\IE

    我有一个网络应用程序 客户要求单击不同按钮时更改浏览器窗口大小 我发现在那link https stackoverflow com questions 13436855 launch google chrome from the comma
  • 如何知道 .keyup() 是否是字符键(jQuery)

    如何知道 keyup 是否是字符键 jQuery input keyup function if key is a character such as a b A b c 5 3 2 etc not enter key or shift o
  • 为什么 call 比 apply 快那么多?

    我想知道是否有人知道why call比apply 在 Chrome 中 速度大约快 4 倍 在 Firefox 中快 30 倍 我什至可以制作自定义原型 apply2 在大多数情况下 运行速度是apply 这个想法取自角度 Function
  • 了解 Document.createElement()

    我在用着GWT及其底层DOM能力 我基本上想要实现的是 Have a div包含一些文本的元素 其中一些文本将被包围span元素 span 元素可相互拖动并提供上下文菜单 New span元素可以由最终用户动态创建 它可能是这样的 在应用程
  • WordPress 子主题包括包含文件

    我在一家WordPress使用 AMPPS 作为本地主机在我的本地计算机上进行设置 使用 Delta 主题 我创建了一个子主题 delta2 child 初始设置效果很好 但是 我需要更改包含文件夹中名为 home slider php 的
  • Google 地图 API - 地图未显示 - 没有错误

    我正在尝试将地图从 Google API 加载到 div 中 但是 地图未加载 并且没有输出任何错误 这是代码 google maps var geocoder map function codeAddress address geocod
  • 使用flex-basis控制行上显示的项目数

    我想在使用 Flex 时将元素推出以隐藏它们 例如 如果flex basis为 50 仅显示两个项目弯曲到给定空间 而其他元素则在overflow hidden 领土 Or if flex basis为 25 则仅显示 4 个 Flex 元
  • Google Apps 脚本中 $.ajax() 的服务器端等效项是什么?

    我想在 Google App 脚本中从服务器端代码执行 HTTP 请求Authorization标头 是否有用于发送 HTTP 请求的 App Script API Google Apps 脚本中的这段代码相当于什么 var api URL
  • 我应该创建一个块还是一个元素 BEM CSS?

    Bem官网说 创建一个块如果一段代码可以被重用并且它不依赖于正在实现的其他页面组件 创建一个元素如果一段代码在没有父实体 块 的情况下无法单独使用 我有一个 关于部分 块 它的元素依赖于父级并且不能在网站中重复使用 如何根据 bem 这段代
  • 如何在 TypeScript 中使用 navigation.replace ?

    我试图在我的代码中使用它 const navigation useNavigation navigation replace AllFriends 但我不断收到错误消息 Property replace does not exist on
  • 选择子元素但不选择孙元素

    我有以下简化的代码 div p text p div div p text p div div p text p div div p text p div 每当我设置一些值时 content pCSS 文件中的元素 更改也适用于 col1
  • jQuery Mobile + Admob:轮换?

    我使用 jQuery Mobile 框架创建了一个移动应用程序 所有页面都在index php中加载 使用 div 在每个页面的页脚中 我添加了Admob代码 div div div
  • 将 html 文本框的值分配给 div 的标题

    line 1
  • 为什么 JavaScript 中是 [1,2] + [3,4] = "1,23,4" ?

    我想将一个数组的元素添加到另一个数组中 所以我尝试了以下方法 1 2 3 4 它的回应是 1 23 4 到底是怎么回事 The 操作员没有为数组定义 发生的事情是 JavaScript将数组转换为字符串并将它们连接起来 Update 由于这
  • 如果 POST 响应仅包含 ID,如何将数据保存到我的 Ember 存储?

    Ember 数据期望我的服务器在每次成功后返回完整的对象POST 但是 我的 API 只返回一种元对象 其中包含id 当 Ember 收到此对象时 记录中的现有数据将被删除 除了id 例如 当我这样做时 var asset App Asse

随机推荐

  • 特金特。创建多个具有“不同”命令功能的按钮

    首先 对这个标题感到抱歉 我找不到更好的标题 以下代码是我的 Python 程序中遇到的问题的最小化版本 顺便说一句 我是新手 def onClick i print This is Button str i return def star
  • CLLocationDegrees 初始化

    如何制作 CLLocationDegrees 它不是浮动 那么它是什么 根据CLLocation文档 CLLocationDegrees简直就是一个双倍 因此 要创建一个 您可以执行如下简单的操作 CLLocationDegrees deg
  • 为什么 HttpContext.Current 为空?

    我有一个在所有应用程序中使用的值 我在application start中设置了这个 void Application Start object sender EventArgs e Dictionary
  • 如何链接滚动条和滚动查看器

    我目前有两个 ScrollViewer 其中包含同一集合的备用视图 我通过处理 ScrollChanged 事件并使用 ScrollToVerticalOffset 将两个滚动查看器的滚动绑定在一起 出于演示原因 我已将两个 ScrollV
  • Android 中如何检查 URL 是否有效

    有没有一种好方法可以避免导致应用程序崩溃的 主机未解析 错误 有某种方法可以尝试连接到主机 例如 URL 并查看它是否有效 Use URLUtil验证 URL 如下所示 URLUtil isValidUrl url 它会返回如果 URL 有
  • 这个 Perl 正则表达式中的“?”是什么意思?

    我有一个 Perl 正则表达式 但我不确定什么是 在此上下文中的意思 m w 什么是 意思是这里 在这种情况下 实际上是与 放在一起 在分组的开头意味着分组但不捕获括号内的文本 模式 例如 它不会存储在任何反向引用中 例如 1 or 1 因
  • CMake - 依赖于另一个 cmake 项目

    我正在从事的项目具有以下结构 Library1 build include src CMakeLists txt Library2 build include src CMakeLists txt Executable1 build inc
  • 使用@@identity而不是scope_identity的原因

    在 SQL Server 2005 数据库上 我们的一位远程开发人员刚刚签入了对存储过程的更改 该更改将 select scope identity 更改为 select identity 您知道为什么要使用 identity 而不是sco
  • CUDA:CPU 定时器和 CUDA 定时器事件之间的区别?

    使用 a 有什么区别CPU定时器和CUDA定时器事件测量执行某些 CUDA 代码所需的时间 CUDA 程序员应该使用其中哪一个 为什么 我知道的 CPU定时器使用将涉及调用cudaThreadSynchronize在任何时间被记录之前 为了
  • Ipython 可以在命令提示符下运行,但不能在浏览器中运行

    我使用的是 Windows 8 64 位笔记本电脑 我的电脑上已经安装了 python 2 7 所以我使用 easy install 安装了 Ipython 我现在可以在 C Python27 Scripts 中看到 ipython 应用程
  • 在 For Of 循环中使用对象

    为什么不能在 for of 循环中使用对象 或者这是一个浏览器错误 这段代码在 Chrome 42 中不起作用 表示 undefined 不是一个函数 test first one for var item of test console
  • numpy的fft结果的幅度要乘以采样周期?

    我尝试用一 个例子来验证我对 Numpy 的 FFT 的理解 exp pi t 2 应该exp pi f 2 当没有对直接变换应用缩放时 但是 我发现要获得这个结果 我需要将 FFT 的结果乘以一个因子dt 这是我的函数上两个样本点之间的时
  • 使用 date_format 选择日期范围 MySQL

    我在使用 MySQL 选择日期范围时遇到问题 SELECT MvtDate date format MvtDate d m Y FROM immmvt WHERE date format MvtDate d m Y BETWEEN 01 0
  • 自定义to_yaml和domain_type

    我需要定义用于序列化 反序列化对象的自定义方法 我想做如下的事情 class Person def to yaml type example com 2010 11 30 Person end def to yaml string repr
  • 管理 IO 单子

    我正在学习一些 Haskell 请原谅新手错误 这个例程出错了 我对 do exister String gt Bool exister path do fileexist lt doesFileExist path direxist lt
  • 基于生成器的协程与原生协程

    我刚刚读过PEP0492谈论协程的新方法 但 PEP 未能让我理解基于生成器的协程和本机协程之间的区别 有人可以告诉我其中的区别 也许可以举例 吗 据我了解 他们使用不同的词 yield yield from 和 wait async yi
  • GBZ80:LD HL,(SP+e) 如何影响 H 和 C 标志?

    在 Gameboy Z80 上 究竟如何LD HL SP e 操作影响 H 和 C 标志吗 半进位 进位 参考 http www devrs com gb files opcodes html 我意识到这是一个老问题 但我不久前遇到了类似的
  • 依赖属性错误

    我正在学习依赖属性 我读了很多帖子和书籍 但仍然不清楚 下面的程序是我为了学习而写的 其中有些错误 请帮忙解决 我有疑问 自定义依赖属性元素的主要用途是用于更改通知 我找到了一个 IsDefaultProperty 代码Button在 WP
  • 设置asterisk agi功能处理的等待音

    我使用星号和正常的 PHP AGI 以下this链接问题是我的 PHP AGI 需要 5 秒才能执行 我只是想设置一些等待音 让用户等待 AGI 处 理完毕 在同一个链接上我发现了一些东西 设置音乐 启用 禁用保持音乐发生器 例如 默认设置
  • 无限滚动 Div 与 Ajax 加载内容?

    我想实现一种称为可滚动 div 的技术GWT 我正在尝试做的事情如下 如果用户在我的页面上 他只能看到视口 图像中的绿色框 该视口中的所有 DOM 元素在页面加载时对用户可见 在页面加载时加载页面后 所有不在视口上的 DOM 元素尚未加载