我正在尝试在项目上实现this sideshow,我想添加一些功能:
我尝试了什么?
我已添加此代码
var autoscroll = window.setInterval(function(){ navigate( 'next' )}, 5000);
component.onmouseover = function(e){
autoscroll = clearInterval(autoscroll);
console.log('onmouseover');
};
component.onmouseout = function(e) {
clearInterval(autoscroll);
var autoscroll = setInterval(function() {navigate( 'next' )}, 5000);
console.log('onmouseout');
};
现场演示: http://jsfiddle.net/M2CwF/1/
有什么问题?
自动播放工作正常,直到我们手动使用控制箭头,我看到在这种情况下间隔会发生变化,也许我需要添加if( isAnimating ) return false;
悬停暂停似乎不起作用,从控制台日志中我看到只在一次悬停中多次触发事件!
如果我有滑块的多个实例,则第一个实例
传递给下一张幻灯片的键盘键
谢谢你的帮助。
答案 0 :(得分:1)
您处理鼠标悬停和鼠标移动的问题是,您正在重新定义全局自动滚动变量,而不是在mouseout事件中更改其值。
更改它和一些相对简单的keydown事件代码修复了幻灯片显示以执行您想要的操作(我认为)。
我对mouseover / mouseout代码所做的更改:
var autoscroll = window.setInterval(function(){ navigate( 'next' )}, 5000);
component.onmouseover = function(e){
autoscroll = clearInterval(autoscroll);
console.log('onmouseover');
};
component.onmouseout = function(e) {
clearInterval(autoscroll);
autoscroll = setInterval(function() {navigate( 'next' )}, 5000);
console.log('onmouseout');
};
这里是箭头键事件的代码:
document.onkeydown = function(event) {
event = event || window.event;
switch (event.keyCode || event.which) {
case 37:
clearInterval(autoscroll);
navigate( 'prev' );
autoscroll = setInterval(function() {navigate( 'next' )}, 5000);
break;
case 39:
clearInterval(autoscroll);
navigate( 'next' );
autoscroll = setInterval(function() {navigate( 'next' )}, 5000);
break;
}
};
这是我想出的: http://jsfiddle.net/M2CwF/2/
<强>更新强>
这是一个支持每页多个幻灯片演示的版本。我删除了左箭头和右箭头操作,因为我不确定你想要在一个页面上处理多个幻灯片导航...
尽管如此,修改代码并不难。