2014-07-12 129 views
4

我有建于PhoneGap的单页应用程序,我早就与iOS设备(不是机器人)的问题,同时使用:scrollTop的不-webkit-溢出滚动工作:触摸

document.querySelector('page').scrollTop = 0; 

如果我导航到不同的页面,我刚从scrollTop //38的视图,它会保持相同的scrollTop //38,因为我只更改page内的内容。

所以我就用上面的jS编辑滚动顶部,所以这样做:

document.querySelector('page').scrollTop //outputs 38 

好极了,但是当我触摸屏幕,将跳了下去38px和重置scrollTop = 38

如果我删除

page { 
     -webkit-overflow-scrolling: touch; 
} 

然后将不再出现这个问题,而且平滑滚动会停下来这么久只会滚动为您进行触摸屏幕。

现在是否有人可以正确使用scrollTop,同时保持此滑动效果本身处于活动状态?

+0

http://stackoverflow.com/questions/2863547/javascript-scroll-event-for-iphone-ipad/17195346#17195346 –

回答

1

我认为这是因为JS和CSS中的查询选择器page

选择器page指具有标签名称的page标签(一个或多个),其是这样的:

<page foo="bar"></page> 

这不是一个有效的标准HTML5元件。

你的意思是.page#page分别是类名和id。

我试过了,每件事情都很好。

HTML

<div class="page"> 
    foo<br>bar<br> 
    foo<br>bar<br> 
    foo<br>bar<br> 
    foo<br>bar<br> 
    foo<br>bar<br> 
    foo<br>bar<br> 
    foo<br>bar<br> 
    foo<br>bar<br> 
    foo<br>bar<br> 
    foo<br>bar<br> 
</div> 

CSS

.page { 
    display: block; 
    width: 10em; 
    height: 5em; 
    overflow: auto; 
    -webkit-overflow-scrolling: touch; 
} 

JS

document.querySelector('.page').scrollTop = 0; 

当我触摸屏幕上或在页面没有意外跳。

console.log(document.querySelector('.page').scrollTop); 
+0

不,它只是'page',那一边。我认为你误解了我的问题,同样感谢你的努力。但是,当我在页面加载之间跳转时,现在它不会给我回正确的scrollTop值,当我将它设置为0时,然后触摸屏幕将重置为其原始状态,在这种情况下,“38” –

+0

@GajasKuizinas - 所以你说你有一个在你的HTML中看起来像这样的元素? '/* content here */' –

相关问题