js中間鏈接位於底部。jQuery Mobile:.animate({scrollTop})在修復頁面轉換後不起作用
我有一個我用jQuery Mobile創建的Phonegap應用程序。在我發現this solution之前,原生iOS應用中的頁面轉換非常波動且不一致。它使我的滾動不是很好,所以我根據this follow-up article進行了一些更改。我實現了第二個解決方案
第一個解決方案之後,仍然之後,下面的代碼停在我的應用程序工作:在2.5秒
$('html, body').animate({scrollTop: $('#specificID').offset().top}, 2500);
上面的代碼滾動用戶頁面向下到DIV ID爲specificID
。
我已經試過許多東西,但似乎沒有任何工作:
$('#container').animate({scrollTop: $('#specificID').offset().top}, 2500);
$('html, body, #container').animate({scrollTop: $('#specificID').offset().top}, 2500);
$('.scrollable').animate({scrollTop: $('#specificID').offset().top}, 2500);
$(".scrollable").animate({ scrollTop: $("#specificID").scrollTop() }, 2500);
所以,這裏是我如何調整我的jQuery Mobile的代碼來修復頁面過渡:
1.我包[data-role="page"]
DIV與container
DIV
<body>
<div id="container">
<div data-role="page">
2.我添加了下面的JavaScript
$(document).one('mobileinit', function() {
// Setting #container div as a jqm pageContainer
$.mobile.pageContainer = $('#container');
// Setting default page transition to slide
$.mobile.defaultPageTransition = 'slide';
});
3.添加以下CSS
body {
margin: 0;
}
div#container {
position: absolute;
width: 100%;
top: 0;
bottom: 0;
}
div[data-role="header"] {
position: absolute;
top: 0;
left: 0;
right: 0;
}
div[data-role="content"] {
position: absolute;
top: 41px;
bottom: 0;
left: 0;
right: 0;
}
.scrollable {
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}
/* iOS specific fix, don't use it on Android devices */
.scrollable > * {
-webkit-transform: translateZ(0px);
}
我設置3個jsFiddles表明這一點:
平原jQuery的 - scrollTop的工作:http://jsfiddle.net/pxJcD/1/
過渡修復 - scrollTop的不工作:http://jsfiddle.net/ytqke/3/
過渡修復瓦特/本土滾動 - scrollTop的不工作:http://jsfiddle.net/nrxMj/2/
最後的jsfiddle是我使用的解決方案和一個我需要工作。我提供了第二個顯示scrollTop
功能在我做出的任何本地滾動更改之前停止。 關於我能做些什麼來使用javascript向下滾動頁面的想法?
我使用jQuery 1.8.2,jQuery Mobile 1.2.0和Phonegap 2.2.0(通過Build)。
謝謝你提供的任何幫助。
雖然我沒去深讀你的問題,我想補充一點滾動動畫作品的文件(準備好),只要頁面不被緩存。換句話說,您可能需要一個獨特的uri,以便jqm將重新加載頁面。 – 2013-11-03 07:55:48