问题标签 [scroll-position]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2333 浏览

android - 是什么导致 ListView 在方向更改后保持其滚动位置?

我有一个包含 ListView 的活动。我使用 SimpleCursorAdapter 填充列表视图。当我运行应用程序时,我可以在 ListView 中手动向下滚动(例如到第 10 项)。然后,当我旋转手机时 - 这会破坏并重新创建我的 Activity,并且 ListView 会按预期重新制作。

但是,在我的手机上旋转后,重新创建的 Activity 显示我的 ListView 仍然在我的手动滚动位置(在这个例子中,第 10 行)。我很确定我的代码没有调用 ListView.setSelection(int) 那么是什么导致了 ListView 的重新定位?

这可能看起来很方便,但它不是我想要的。它是 ListViews 行为的一部分吗?如果是这样,如何停止/覆盖这个重新定位?

0 投票
1 回答
682 浏览

javascript - .lockToggle( ) jQuery

I am trying to use this script to freeze scrolling when an 'lightbox-style' image is opened. There's probably just a small error in the script but can't figure it out

How this script works (in display order):

  1. Grabs the current scroll position and stores it in two variables
  2. Creates a variable for the number of clicks the object has
  3. If the click count is odd then it freezes the page in its current position
  4. Else (is even) then it allows the page to be freely scrolled

All of this works in a simple jQuery function that can be used just by calling .lockToggle()

You can view this in a full example here:

http://jsfiddle.net/JamesKyle/8H7hR/30/

(Click on the image)

0 投票
2 回答
5929 浏览

android - 更新 SimpleCursorAdapter,同时保持 ListView 中的滚动位置

我的问题:每当我通过其(自定义)SimpleCursorAdapter 更新其内容时,我的 ListView 会将其滚动位置重置为顶部。我希望 ListView 在更新时保持其滚动位置。

我开始时每次都创建一个新的适配器实例并使用ListView.setAdapter(),但根据这个讨论,我应该更新适配器而不是重置它。我找不到可以正常工作的 SimpleCursorAdapter 的方法。

以下是我尝试过的一些事情,省略了方法参数:
-SimpleCursorAdapter.changeCursorAndColumns()使用新光标成功更新了适配器,但仍重置了滚动位置。
-SimpleCursorAdapter.changeCursor()行为相同。
-SimpleCursorAdapter.swapCursor()直到 api 11 才可用,我正在为 api 8 开发。
-SimpleCursorAdapter.notifyDataSetChanged()不更新 ListView。(也许我还缺少另一个步骤。)
-ListView.invalidate()不更新 ListView。
-SimpleCursorAdapter.requery()使 ListView 为空白,并且已被弃用。
- 我熟悉ListView.setSelection()解决方案,但我不希望我的 ListView 在更新时移动。这会将其捕捉到列表中的某个位置。

这似乎应该是一个常见且简单的问题。有人处理过吗?

0 投票
1 回答
1687 浏览

jquery-mobile - 使用 SplitView (JQuery Mobile) 获取面板的滚动位置

我已经使用 SplitView - http://asyraf9.github.com/jquery-mobile/ - (并且似乎使用 ScrollView 组件)和 jQuery Mobile 实现了一个 WebApp。一切正常...

在面板中,我有一个元素列表,当滚动到列表末尾时应该动态添加元素。在 iPhone 上,我不使用 SplitView,而是使用 iScroll - http://cubiq.org/iscroll - 和以下代码来实现这一点(并且它正在工作)。

HTML:

Javascript:

但是在使用 SplitView 时,我真的不知道要绑定侦听器的事件和元素,也不知道如何获取滚动位置。我已经尝试了几种组合,但都没有取得好的效果。最好的是以下:

我的问题是:我是否使用了正确的事件监听器(因为它已经触发了滚动动画仍在使用中)以及如何获得滚动位置?

0 投票
1 回答
4575 浏览

c# - 如何获取 RichTextBox 的滚动位置?

我在 C#、Windows 窗体应用程序中工作,并且在获取带有大量文本的 RichTextBox 的滚动位置时遇到问题。

我正在使用这段代码:

SendMessage(this.Handle, EM_GETSCROLLPOS, 0, res)

但是,当控件包含大量文本时,产生的 y 偏移是不正确的,因为 Y 的高 16 位始终为 0。

有没有办法让滚动位置大于 16 位?

0 投票
0 回答
794 浏览

android - Android:图像阵列不断变化的垂直图像滚动

我有一组在代码中生成的位图(不是取自资产、卡片、网络等),并且大约有 50 个(这个数字不是常数)位图需要在该数组中。起初我试图一次创建所有位图,这显然导致了 outOfMemory 错误。因为图像必须根据 id 一个接一个地按照精确的顺序排列,所以我创建了变量 bitmapID,当创建一个位图时该变量会增加,并且仅在需要根据该 bitmapID 变量显示在屏幕上时才创建图像。

所以第一个解决方案(有效)是用 ImageView(s)填充 ScrollView 内部的 LinearLayout。内部活动 onCreate() 调用方法 fillScreen(int how_many_times) 它将用图像填充屏幕的次数与变量 how_many_times 预期的一样多。在我的演示应用程序中,我将平板电脑屏幕填满了 3 次。fillScreen(int how_many_times) 正在处理调用 loadBitmap(int bitmapID) 的循环,该循环负责根据给定的 id 创建单个位图。创建的位图保存在 imageHolder 对象的数组中。除了 bitmap 和 id 之外的 imageHolder 对象还有 scroll_start 和 scroll_end 参数来指示它们的滚动位置。例如,第一个 imageHolder 的 scroll_start = 0 和 scroll_end = 500,而第二个 imageHolder 的 scroll_start = 500 和 scroll_end = 800。Activity 实现了 onScrollChanged(scrollView, int x, int y, int oldx, int oldy) 以响应滚动并在屏幕底部添加图像并从顶部删除。所以实现工作就像这样:

有了这个实现,滚动是平滑的,当添加或删除图像时我几乎没有滚动跳跃。在所有 imageHolder 对象上添加或删除图像后,总是会更新 scroll_start 和 scroll_end 值。所以这个实现适用于向前滚动,但我也需要它以相同的方式向后滚动。因此,我添加了如果案例对向后滚动做出反应,并且在我的脑海中它必须像向前滚动一样完美地工作。如果情况向后滚动:

我尝试在不同的地方包含 scrollTo() ,但它在任何地方都不起作用。当在开头添加或从结尾删除某些内容时,滚动只会继续移动。无论 scrollView 变大还是变小,我都想保持滚动位置不变。关于如何实现它的任何想法?或者关于如何实现这种滚动视图的任何其他想法?

我还尝试了使用自定义适配器的 ListView 和 onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) 的实现,并尝试通过删除和添加项目并调用 notifyDataSetChange() 来更改 arrayOfImageHolders,但无法获得稳定的屏幕位置删除或添加时。

为了让这个案例和问题更清楚,试着想象一下赌场老虎机。有一个图像列表一直保持有序,但屏幕上只显示一个。而且您可以双向滚动滚轮,即使您在滚轮上添加一些图像或删除一些图像,您在屏幕上看到的图像仍然保持不变。

对我来说,这看起来像是一个复杂的问题,所以任何想法(不仅仅是具体的解决方案)都会受到赞赏。

0 投票
1 回答
273 浏览

javascript - 如何在包含 iframe 的页面中检索滚动位置

我的代码在具有 iframe 更改的页面中不起作用 (document.cookie)!回发后!代码是:

0 投票
1 回答
796 浏览

ajax - ajax滚动位置

我一直在我的网站上实现一段代码,我在 phpacademy.org 教程中发现了该教程是“如何创建类似按钮”。iv 按钮可以正常工作,但我需要额外的功能。问题是当我点击like按钮时页面弹回顶部

有什么我可以应用到这个脚本来保存滚动位置???...我已经将保存滚动位置应用到我网站上的链接,但我不知道这个:(

干杯

0 投票
0 回答
510 浏览

javascript - div隐藏后获取滚动位置

我有一个网页,其中有一个浮动 div,它在页面滚动时跟随用户。

该页面由可以使用 jquery slideToggle 功能扩展和隐藏的其他 div 组成。

问题是当我隐藏一个 div 时,滚动条会在 div 被隐藏而不是停留在页面顶部时向下移动页面。知道为什么会这样吗?

滚动代码:

隐藏 div 后,我调用此方法的目的是将浮动 div 定位回页面顶部,但它不起作用:

0 投票
0 回答
59 浏览

android - GridView 中滚动的确切位置

如何在 GridView 中获取滚动的确切位置? gridView.getFirstVisiblePosition()不好,因为它只显示像 0、2... 这样的值,我需要准确的浮点数。