[英]Overflow Scrolling on Android doesn't work?
yupp,我是其中一個想要用HTML5開發移動應用程序的人。 在Android和iOS上。 聽起來很瘋狂我知道。 可悲的是我有問題......
我有一個經典的應用程序,頁腳和標題以及應該可滾動的內容。 在iOS上這太棒了! 頁眉和頁腳的“位置:固定”到頂部/底部,內容使用原生滾動動量“-webkit-overflow-scrolling:touch;”。 我知道“-webkit-overflow-scrolling:touch;” 在Android上不可用,但此屬性不僅被忽略,滾動根本不起作用!
所以,任何人都可以告訴我如何在iOS上進行“原生”滾動,並在Android上使用相同的標記和樣式進行“良好”滾動操作? 例如,如果我可以使用具有動量的原生滾動 - 很棒,如果不是 - 純滾動。
注意:我現在只需要支持最新版本(沒有Android 2.3!),所以我不想要像iScroll 4這樣的JS-Fallback。
.content {
// no(!) scrolling on Android - why?
overflow-x: hidden;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}
JSFiddle: http : //jsfiddle.net/bmJxN/
謝謝!
很抱歉挖了一個舊帖子,但因為似乎沒有令人滿意的答案,我想我會為像我這樣在這里結束的任何人添加我的2cents。
談到移動WebApps中滾動的一般問題,移動瀏覽器上的滾動和動量很痛苦,因為根據平台有各種不同的實現:Android瀏覽器!= Chrome!= Safari!= opera等,以及Android < 3不支持滾動以及更新的版本,就像iOS <5一樣。
情況很復雜,對於大多數設備都在iOS 5或6上的iOS來說可能是一個問題,但這是Android碎片的真正問題。
為了更好地掌握這一點,你可以讀到這個 。
為了回應這個問題,正如您已經指出的那樣,有諸如iScroll之類的后備或者最近,Overthrow,您可以更好地處理本機實現和JS回退。 最近,英國“金融時報”團隊發布了看起來很有前景的FTScroller庫。
現在針對您的情況,如果您只想支持Android 4+和iOS5 +,您應該能夠使用固定定位和
overflow: auto;
-webkit-overflow-scrolling: touch;
在您的可滾動內容上(如果使用auto屬性,則不需要指定“overflow-x:hidden”)。 如果沒有,你可能在你的固定位置或其他一些css布局屬性中犯了錯誤? (繼承了身體道具等)。
更新:我應該在發布我的答案之前完成此操作,但我剛剛測試了我的Nexus4上的小提琴並且您的代碼在Chrome中運行:這可能意味着您在沒有安裝Android 4+的舊設備或沒有安裝的瀏覽器上進行了測試支持溢出屬性?
附注:
所有這些都說滾動簡單的東西在移動WebApps中遠非完美,而且在WebViews性能方面更糟糕(例如在開發PhoneGap應用程序時)。 祝好運 !
由於其他地方似乎沒有正確解釋的行為,因此在此處添加其他注釋。
當使用'溢出:自動'或'溢出:滾動'時,Chrome for Android將僅在頁面加載時暫時顯示滾動條指示符,然后再隱藏它們(與桌面瀏覽器的典型行為不同)。 復雜的是,這些指標非常薄且半透明,很容易被遺漏。
這可能不是一般頁面滾動的問題; 但是,當用於滾動頁面區域(例如整頁應用程序)時,丟失滾動條以指示其他內容會產生嚴重的UX問題。
要解決此問題,您可以添加自定義滾動條。 使用'overflow:auto'時,只有當內容超出可見區域時才會顯示這些滾動條(就像在桌面瀏覽器上一樣)。
將以下代碼添加到CSS:
::-webkit-scrollbar-track {
background-color: #F5F5F5;
}
::-webkit-scrollbar {
width: 12px;
background-color: rgba(0,0,0,0);
}
::-webkit-scrollbar:hover {
background-color: rgba(0, 0, 0, 0.09);
}
::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.3);
border: 2px solid #F5F5F5;
-webkit-border-radius: 100px;
}
::-webkit-scrollbar-thumb:active {
background: rgba(0,0,0,0.61);
-webkit-border-radius: 100px;
}
您還可以使用下面的代碼添加垂直箭頭。 類似地,可以通過垂直交換水平來包括水平箭頭。
::-webkit-scrollbar-button {
width: 12px;
height: 12px;
background-color: #F5F5F5;
background-size: 100%;
}
::-webkit-scrollbar-button:vertical:increment {
background-image: url('../images/arrows/arrow-down.png');
}
::-webkit-scrollbar-button:vertical:decrement {
background-image: url('../images/arrows/arrow-up.png');
}
請注意,最后兩行需要存在箭頭圖像,但無法將這些添加到帖子中(可能是由於它們的小尺寸)。
其他滾動條屬性也可以自定義。 以下指南提供了詳細說明:
現在它會起作用,原因很多。 您可以做的是使用任何第三方庫來完成此任務。 我使用了github的一個開源庫來獲得結果: - 庫就在這里
希望它會有用......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.