在iOS中,以下代码在hide()和scrollBy()之间有明显的闪烁:
element.hide();
window.scrollBy(0, -elementHeight);
这是因为在iOS上显示:none和display:block之间切换是一项繁重的任务,就像在DOM中添加和删除元素一样。
一旦hide()成功完成并且DOM已更新,我需要一种方法来执行window.scrollBy()作为回调。有没有办法在jQuery中执行此操作?
答案 0 :(得分:3)
传递持续时间和回调,或者只传递一个回调选项,如下所示:
element.hide(0, some_function);
// or
element.hide({done: some_function});
默认情况下,第二个选项需要400毫秒。要立即执行此操作,请使用以下方法之一:
element.hide(0, some_function);
// or
element.hide({duration: 0, done: some_function});
答案 1 :(得分:0)
来自jQuery api:
.hide(选项)
完整 类型:功能() 动画完成后调用的函数。
试试这个:
element.hide({complete:function(){ window.scrollBy(0,-elementHeight); });