我正在使用 flexslider 显示一系列照片。通过 Ajax,我每隔 30 秒就会定期获得新的幻灯片集。addSlide()
使用and更新 flexslider 中的幻灯片集或多或少都可以removeSlide()
,但有副作用。
1) currentSlide
flexslider 中的变量超出了最后一张幻灯片。这会导致显示空白幻灯片,因为这些幻灯片不存在。所以,我添加了一些修复代码来循环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显示。不幸的是,这无济于事。
我得到的印象是我做错了什么,忘记了一些非常重要的事情。有人有线索吗?