2012-08-07 344 views
5

在我的网页的移动视图上,我可以在垂直和水平方向上滚动,但始终始终在左上角。 现在我想用window.scrollTo或其他等价物将视口设置为我的自定义位置。 window.scroll似乎只适用于桌面浏览器。window.scrollTo无法在手机上工作

任何想法我能如何解决这个问题?

+0

请再具体些,以您的问题是什么。 'window.scrollTo(x,y);'如果你的内容足够大,'完美地工作。 – 2012-08-07 11:54:08

+0

我的dom看起来像这样

现在我可以在移动和桌面浏览器中滚动图片。但是当我有什么不同的开始位置,我在哪里看图像,我尝试使用窗口。 scrollTo(x,y);但这只适用于桌面而不适用于移动浏览器。 – Safari 2012-08-07 11:59:55

+0

请提供完整的html,css和JavaScript测试用例。不知道你的形象有多大,或者你的内容的尺寸如何,就不可能估计问题出在哪里。 – 2012-08-07 12:07:22

回答

3

我知道它终于工作。

我不得不使用另外的setTimeout函数

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

您应该使用事件而不是超时。例如Event.observe(window,'load',function(){window.scrollTo(x,x); }) – 2013-11-11 13:31:29

+0

setTimeout也为我解决了这个问题。非常奇怪的行为... – patrickfox 2015-05-07 21:06:20

+0

我不认为你的代码是正确的,事实上window.scrollTo将不会在100ms后被调用,但马上。你应该使用下面的代码:'''JavaScriptsetTimeout(function(){window.scrollTo(x,y);},100)'''' – 2017-06-22 12:17:04

0

正如我在我的评论中说的那样,如果你的内容是足够大。这意味着比视口大。不知道具体细节,您是否考虑设置视口元标记?现在

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

,如果您的内容股利或图像或其他超出视口宽度的尺寸(320名跌落在iPhone上),你可以滚动在x轴上。不过,对于y轴也是如此。

+0

我已经有这个meta标签的视口 我使用的图像大约是800x1000像素大。所以它们比视口大,但函数scrollTo仍然不起作用 – Safari 2012-08-07 12:09:22

+0

看,如果你没有给出完整的上下文,很难猜测;) – 2012-08-07 12:10:24

+0

好的。看到。当我想看到我的图片在我的网页中放大时,然后我加载大版本的大图,然后我想要图片的位置,用户在此之前加入。该点的值是正确的。所以我使用:window.scrollTo(point.x,point.y);在InitZoom函数中。 – Safari 2012-08-07 12:14:03