一旦內容窗口已滾動到它的最大的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。