我正在使用flexslider来显示一系列照片。在Ajax上,我每隔30秒定期获得新的幻灯片组。使用addSlide()
和removeSlide()
更新flexslider内的幻灯片集或多或少都可以,但附带副作用。
1)flexslider中的currentSlide
变量超越了最后一张幻灯片。这导致显示空幻灯片,因为这些幻灯片不存在。所以,我添加了一些修复代码来循环currentSlide
指针:
current = slider.currentSlide;
...slider.addSlide(...);
...slider.removeSlide(...);
slider.currentSlide = current < slider.count ? current : slider.count - 1;
这可以解决问题,但非常难看
2)接下来的挑战是,在幻灯片更新期间,flexslider管理会搞砸。这导致幻灯片顺序的变化(我可以忍受),幻灯片的不规则数量,幻灯片方向的反转以及显示的空白幻灯片。
作为测试,我使用
after : function(slider) {updateImages(slider)}
解决潜在的竞争条件,但唉,这并没有改善这种情况。
3)我尝试使用slider.flexslider("pause")
和slider.flexslider("start")
方法在更新期间停止并启动flexslider节目。不幸的是,这没有帮助。
我的印象是我做错了什么,忘了非常重要的事情。有人知道吗?