我想检测浏览器是否支持onscroll吗?..问题是较旧的IOS IOS版本支持onscroll,但它会在滚动结束时触发。但是我想不出一种方法来检测这个?
答案 0 :(得分:1)
由于你没有尝试检测是否支持onscroll
但是你试图检查它的实现我会说代理嗅探是最好的方法(虽然代理嗅探通常是坏事)。
答案 1 :(得分:1)
旧的版本然后IOS8在触发滚动事件时暂停“DOM绘画”。 关于IOS版本之间的滚动差异的优秀文章可以在这里找到:
http://developer.telerik.com/featured/scroll-event-change-ios-8-big-deal/
http://ejohn.org/blog/learning-from-twitter/
自IOS版本8以来,onscroll将持续激活。你可以用javascript查看IOS版本。
function iOSversion() {
if (/iP(hone|od|ad)/.test(navigator.platform)) {
var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
}
}
version = iOSversion();
if (version[0] > 7) {
alert('Continuous scrolling is working!');
}
答案 2 :(得分:0)
您没有指定具有此类滚动事件行为的iOS版本,因此我建议在页面加载时使用用户代理字符串处理。
http://www.webapps-online.com/online-tools/user-agent-strings/dv/operatingsystem51849/ios有很好的iOS 7和8个用户代理字符串来源。如果没有匹配,则应用程序可以转到另一组定义的行为以进行滚动。