我有一个Ionic应用程序,它有一个侧面菜单,我把一些按钮作为大型html内容的索引。当我单击双面菜单按钮element.scrollIntoView(false)
时,会将ion-scroll
容器滚动到该元素
我发现的问题是我可以向下滚动并继续阅读html但我无法向上滚动。
离子滚动定义:
<ion-scroll delegate-handle="contentScroll" zooming="true" min-zoom="1.0" height="100%" style="height:100%" direction="['x','y']">
<div id="page-container" style="padding: 45px 5px 5px 5px;text-align: justify;">
</div>
</ion-scroll>
按钮定义:
<ion-content ng-controller="ScrollCtrl as scroll">
<button class="button" ng-click="scroll.to('markElementN')" menu-close style="width:100%">ElementN</button>
</ion-content>
scroll.to函数是:
function(mark) {
if (mark == undefined || typeof mark != 'string' || mark.length < 1) {
return;
}
var ob = document.getElementById(mark);
if (ob) {
ob.scrollIntoView(false);
}
}
¿任何有同样问题的人? 我应该补充一点,我可以向上和向上滚动但不高于我滚动到视图中的元素
答案 0 :(得分:0)
回答自己......太伤心了......我说道
好吧,经过google'ing很多页面后我发现问题始于scrollIntoView本身所以我不得不通过scrollBy函数更改它。
运气不好,对于下一个有同样问题的人来说更好
答案 1 :(得分:0)
经过几天的努力寻找答案后,我发现了这篇文章。 OP的答案并没有解决我的问题。但希望这能节省一些时间。
我们的问题来自于混合element.scrollIntoView()和离子的scrollDelegate。我们需要滚动到一个字段,当它有无效数据但没有Ids(锚定滚动需要工作)。我最终按名称获取元素,设置id并将其传递给scroll委托上的anchorScroll()。