一旦内容窗口已滚动到它的最大的100%(隐藏在键盘下方)的窗口,然后自己开始滚动起来,隐藏左上/顶部中心/右上方的div
我无法重现这种情况。当我滚动到100%时,触摸键盘也覆盖了窗口的底部,并且窗口没有开始自动滚动。我的目标是SDK 14393.
我可以将底部的小部件移动到键盘位置的上方,但窗口在到达最低点时仍然滚动,然后顶部小部件消失。
您的目标是正确的方向。当触摸键盘打开时,会显示窗口滚动条,以便您可以在触摸键盘打开时滚动到底部。因此,当您将内容滚动到底部并继续滚动时,窗口将被“拉出”。
所以,解决方法是调整在window.onscrolling
底部的div的位置:
default.js:
var windowHeight = window.innerHeight;
var inputPane = Windows.UI.ViewManagement.InputPane.getForCurrentView();
...
window.onscroll = function (evt) {
//change the position of bottom div
var myDiv = document.getElementById("myDiv");
myDiv.style.top = window.pageYOffset+"px";
}
inputPane.onshowing = function (eventArgs) {
document.getElementById("myDiv").style.height = windowHeight-eventArgs.occludedRect.height+"px";
}
inputPane.onhiding = function (eventArgs) {
document.getElementById("myDiv").style.height = windowHeight + "px";
}
default.html中:
<div id="myDiv" style="position:absolute;height:100%;width:100%;">
<div style="position:absolute;top:2vh;left:2vw">top left</div>
<div style="position:absolute;top:2vh;right:50vw">top center</div>
<div style="position:absolute;right:2vw">top right</div>
<div style="position:absolute;top:50vh;left:2vw">middle left</div>
<div style="position:absolute;top:50vh;right:50vw">middle center</div>
<div style="position:absolute;top:50vh;right:2vw">middle right</div>
<div style="position:absolute;bottom:2vh;left:2vw">bottom left</div>
<div style="position:absolute;bottom:2vh;right:50vw">bottom center</div>
<div style="position:absolute;bottom:2vh;right:2vw">bottom right</div>
</div>
注:为了简化问题,我使用div来包装固定内容。并通过更改div的高度来调整位置。
这里是链接完成演示:ninjaScroll2。