tweak iOS page scroll speed
最近在做 g0v.tw 的立法院公報 READER 雛形界面設計,看起來大概像這樣。
最近在做 g0v.tw 的立法院公報 READER 雛形界面設計,看起來大概像這樣。
今天早上搭車的時候用 iPhone 打開,發現捲動速度慢到無法忍受,於是決定來作性能調教。
首先發現為了讓按鈕的效果美觀,我用了這樣的語法:
.log {
.media {
.btn {
opacity: 0.3;
}
:hover {
.btn {
opacity: 1;
}
}
}
}
因為 .log .media 有幾千個,而且每個 :hover 在 iOS trigger fake 的 click 效果的時候都會打斷 scroll,所以導致捲動速度奇慢無比。
再來原本是這樣一次插入所有的公報內容:
$('#log').append($logs);
原本以為只會 redraw 一次,但是在 iOS 上顯然不是。修改方式是:
$('#log').hide().append($logs).show();
最後是拿掉了原本包在公報內容外面的 Bootstrap Accordion。Bootstrap 的 Accordion 效果是 bootstrap-collapse.js 這個檔案做的。當裡面內容很長的時候,也會嚴重拖慢速度。
這些拿掉之後,iOS 底下的捲動速度又恢復成像飛的一樣了。