【问题标题】:window.scrollTo is not working in mobile phoneswindow.scrollTo 在手机中不起作用
【发布时间】:2012-08-04 10:23:20
【问题描述】:

在我的网页移动视图中,我可以在垂直和水平方向滚动,但这总是从左上角开始。 现在我想用 window.scrollTo 或类似的东西将视口设置为我的自定义位置。 window.scroll 似乎只适用于桌面浏览器。

知道如何解决这个问题吗?

【问题讨论】:

  • 请更具体地说明您的问题。如果您的内容足够大,window.scrollTo(x, y); 可以正常工作。
  • 我的 dom 看起来像这样
    现在我可以在移动和桌面浏览器中滚动图像内的内容了。但是当我有一个不同的起始位置时,我在哪里看图像时我尝试使用窗口。滚动到(x,y);但这仅适用于桌面而不适用于移动浏览器。
  • 请提供一个完整的包含html、css和JavaScript的测试用例。如果不知道您的图片有多大或内容的尺寸如何,就无法判断问题出在哪里。

标签: javascript mobile


【解决方案1】:

我终于搞定了。

我不得不另外使用 setTimeout 函数

setTimeout(window.scrollTo(x,y),100);

【讨论】:

  • 您应该使用事件而不是超时。例如 Event.observe(window, 'load', function() { window.scrollTo(x,x); })
  • 我不认为你的代码是正确的,事实上 window.scrollTo 不会在 100 毫秒后被调用,而是立即被调用。您应该使用以下内容:JavaScriptsetTimeout(function () { window.scrollTo(x, y); }, 100);
【解决方案2】:

正如我在评论中所说,如果您的内容足够大,这将有效。这意味着大于视口。在不知道具体情况的情况下,您是否考虑过设置视口元标记?

<meta name="viewport" content="width=device-width, initial-scale=1.0">

现在,如果您的内容 div 或图像或其他任何内容超过了视口宽度的大小(在 iPhone 上为 320 个下降),您可以在 x 轴上滚动。但是,对于具有不同值的 y 轴也是如此。

【讨论】:

  • 我已经有这个视口的元标记 我使用的图像大小约为 800x1000 像素。所以它们比视口大,但功能 scrollTo 仍然不起作用
  • 看,如果你不给出完整的上下文,你很难猜到;)
  • 好的。看。当我想看到我的图片在我的网页中放大时,我会加载 big 的 big 版本,然后我想要图片的位置,即用户之前在其中标记的位置。该点的值是正确的。所以我使用:window.scrollTo(point.x, point.y);在 InitZoom 函数中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-15
  • 2021-04-06
  • 2012-08-28
  • 2015-05-26
  • 2017-06-29
  • 1970-01-01
相关资源
最近更新 更多