【发布时间】:2015-07-15 01:00:34
【问题描述】:
我正在使用 nivoSlider 插件在客户网站上幻灯片放映横幅。我需要为每张幻灯片设置不同的延迟时间。我找到了这个解决方案:
var nivoSliderDelays = [5000,2000,3500];
function setDelay() {
var currentSlide = $('#slider').data("nivo:vars").currentSlide;
setTimeout(function () {
$('#slider').find('a.nivo-nextNav').click()
}, window.nivoSliderDelays[currentSlide]);
}
$('#slider').nivoSlider({
pauseTime: 3000,
startSlide: 0,
directionNav: true,
controlNav: true,
controlNavThumbs: false,
pauseOnHover: false,
manualAdvance: true,
beforeChange: function(){},
slideshowEnd: function(){},
lastSlide: function(){},
afterLoad: function(){ setDelay() },
afterChange: function(){ setDelay() }
});
正如您在client's website 上看到的那样,这似乎工作正常。问题是,如果您通过controlNav 或directionNav 导航,脚本就会发疯。所有设置的延迟似乎都变成了无法解释的短时间,每张幻灯片都有不同的时间。
因为客户端可以通过 CMS 更改每张幻灯片的时间,我不得不将 nivoSliderDealys 设置为全局 JavaScript 变量,你认为这可能是问题吗?我还有其他机会从 scripts.js 访问存储在 MySQL 数据库中的变量吗?
【问题讨论】:
标签: javascript jquery nivo-slider