Javascript Chrome的移动仿真有多可靠?
我有一个问题,如果我禁用触摸仿真或移动仿真,Chrome的移动仿真会很好地工作,这看起来只是有时会出错: 我问过很多安卓用户,他们可以在自己的本地设备上很好地滚动——这可能是因为Chrome中的错误移动模拟造成的吗?如果是这样,有人知道是什么让它恐慌吗Javascript Chrome的移动仿真有多可靠?,javascript,android,jquery,google-chrome,Javascript,Android,Jquery,Google Chrome,我有一个问题,如果我禁用触摸仿真或移动仿真,Chrome的移动仿真会很好地工作,这看起来只是有时会出错: 我问过很多安卓用户,他们可以在自己的本地设备上很好地滚动——这可能是因为Chrome中的错误移动模拟造成的吗?如果是这样,有人知道是什么让它恐慌吗 $(document).on('pagecontainershow', function () { // ISCROLL $('[data-iscroll]').each(function () { $(thi
$(document).on('pagecontainershow', function () {
// ISCROLL
$('[data-iscroll]').each(function () {
$(this).wrapInner("<div class='scroller'></div>")
.wrapInner("<div class='scroller_wrapper'></div>");
var wrapper = $(this).find('.scroller_wrapper').first(),
windowHeight = $(window).height();
wrapper.height(windowHeight);
var scrollerTest = new IScroll(wrapper.get(0), {
eventPassthrough: false,
scrollX: false,
scrollY: true,
preventDefault: false,
scrollbars: true
});
scrollerTest.on('scrollEnd', function () {
// For Android users to see whether it's iScroll or their native scroller
$('.ui-page').css('background', '#ccc')
});
});
document.addEventListener('touchmove', function (e) {
e.preventDefault();
}, false);
// EMBEDLY
var element = $('a');
element.embedly({
key: '',
query: {
maxwidth: 400,
autoplay: true
},
display: function (data) {
if (data.thumbnail_url) {
element.html('<img src="' + data.thumbnail_url + '" />');
}
}
}).on('click', function () {
var data = $(this).data('embedly');
$(this).replaceWith(data.html);
return false;
});
});
问题不在本例中的客户端仿真器中,而是在代码中 Embeddely将在iscroll初始化后加载内容,因此iscroll插件无法检索正确的高度 糟糕的是,Embeddely插件似乎没有回调函数,至少我找不到它说什么时候加载完内容 因此,我编辑了您的脚本,删除了高度设置,并插入了手动超时以加载iscroll
setTimeout(function(){
$('[data-iscroll]').each(function () {
...
},1000);
在设备上,它可以正常工作,因为用户使用鼠标滚动时,他们使用普通浏览器滚动条,而不是伪iscroll滚动条——至少在滚动完成之前,他们使用滚动条,而不是传递到模拟器在触摸事件中使用的普通滚动条,这是一个浏览器模拟不能与移动浏览器相同的例子。移动仿真器永远无法与真正的设备浏览器相比,它们在不同的操作系统中实现,您永远无法确定结果。您能确认这确实是Chrome的移动仿真器的故障吗?一点也不可靠!谢谢你的尝试,但恐怕还是不行。你有没有试过在Chrome上模仿谷歌Nexus10然后访问?Embeddely确实有一个回调函数,我在其中尝试刷新iScroll,但没有任何区别。拿出Embeddely代码,iScroll在移动仿真下工作正常。我相信需要.scroller\u包装上的高度。iScroll应该在加载后自动更新.scroller上的高度或scrollerTest.refresh。是的,我已经在varous chrome仿真上对其进行了测试,但我没有看到错误。可能是我不理解你所犯的真正错误,但如果我在你的手机上理解正确,例如,iscroll停止在实际总滚动的一半,问题是在Chrome仿真中,在嵌入式执行后,不可能滚动iscroll滚动器。请注意,还有一个Chrome滚动条,可以单击并向下拖动,但这是可以忽略的。