如何检测浏览器是否支持js onscroll ..立即
问题描述:
我想检测浏览器是否支持onscroll立即?问题是IOS的旧IOS版本支持onscroll,但它会在滚动结束时触发。但我想不出一种方法来检测这个?如何检测浏览器是否支持js onscroll ..立即
答
既然你不试图检测,onscroll
是否支持,但你试图检查它的实现我会说,代理嗅探是最好的方法(尽管代理嗅探通常是坏事)。
答
您不指定具有这种滚动事件行为的iOS版本,所以我建议在页面加载时处理用户代理字符串。
http://www.webapps-online.com/online-tools/user-agent-strings/dv/operatingsystem51849/ios拥有iOS 7和8用户代理字符串的良好来源。如果没有匹配,那么应用程序可以转到另一组定义的滚动行为。
答
旧版本然后IOS8暂停“DOM绘画”,而滚动事件被触发。 一个关于IOS版本之间的差异onscroll优秀的文章可以在这里找到:
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!');
}
既然你用jquery标记了这个问题,是element.on(“scroll”,function(){})不工作? – 2015-02-06 09:46:10
@kasperTaeymans - 该测试如何说明问题描述的'scroll'的两个实现之间的区别?这甚至不会告诉你它是否被支持*在事件被解雇之前。 – Quentin 2015-02-06 09:50:49
它不,但为什么这个问题标签为jquery? – 2015-02-06 09:52:16