我需要为按钮添加一个新功能,该功能是:
当鼠标悬停在轮播中的左键或右键时,轮播必须开始移动。
向左按钮很容易做到,当它向前循环时,但当我必须反向做同样的事情时,旋转木马只向后移动 1 步,然后只向后移动 1 步,然后它就停止了。
所以我用 setInterval 函数帮助自己
onmouseover
control = setInterval( "$('#" + name_carrousel + "_next_button').cyclenext()", 200 );
onmouseleave
clearInterval( control );
$('#' + name_carrousel).carousel('pause');
我还对控件做了一点改动:
<!-- Controls -->
<a data-slide="prev" href="#carousel-example-generic" class="left carousel-control" id="carousel-example-generic_prev_button">
<span class="icon-prev"></span>
</a>
<a data-slide="next" href="#carousel-example-generic" class="right carousel-control" id="carousel-example-generic_next_button">
<span class="icon-next"></span>
</a>
变化是
id="carousel-example-generic_prev_button"
和
id="carousel-example-generic_next_button"
这种变化有助于我们通过选择器找到。
这是下面代码的基础,它有效。
下面的代码,不好理解,因为是搞jquery库的。而且它必须与几个轮播一起工作,所以控制变量是一个数组。
globalbootstrap.js
$(function() {
$(document).ready(function(){
carousel_params_custom = { name_carrousel: 'carousel-example-generic' , time_interval: 200 };
$('#' + carousel_params_custom.name_carrousel ).launch_carrousel( carousel_params_custom );
});
});
jquery.customcarrousel.js
(function($){
$.fn.extend({
controlcarrousel: []
,
cyclenext:function(){
return this.each(function(){
$('#' + carousel_params_custom.name_carrousel).carousel({
interval: carousel_params_custom.time_interval
,slide:'next'
,wrap:true
});
$('#' + carousel_params_custom.name_carrousel).carousel('cycle');
});
}
,
cycleprev:function(){
return this.each(function(){
$('#' + carousel_params_custom.name_carrousel).carousel({
interval: carousel_params_custom.time_interval
,slide:'prev'
,wrap:true
});
$('#' + carousel_params_custom.name_carrousel).carousel('cycle');
});
}
,
launch_carrousel:function(carousel_params_custom){
$('#' + carousel_params_custom.name_carrousel + '_prev_button').mouseover(function(){
$('#' + carousel_params_custom.name_carrousel).controlcarrousel[ carousel_params_custom.name_carrousel ] = setInterval( "$('#" + carousel_params_custom.name_carrousel + "_prev_button').cycleprev()", carousel_params_custom.time_interval );
});
$('#' + carousel_params_custom.name_carrousel + '_prev_button').mouseleave(function(){
clearInterval( $('#' + carousel_params_custom.name_carrousel).controlcarrousel[ carousel_params_custom.name_carrousel ] );
$('#' + carousel_params_custom.name_carrousel).carousel('pause');
});
$('#' + carousel_params_custom.name_carrousel + '_next_button').mouseover(function(){
$('#' + carousel_params_custom.name_carrousel).controlcarrousel[ carousel_params_custom.name_carrousel ] = setInterval( "$('#" + carousel_params_custom.name_carrousel + "_next_button').cyclenext()", carousel_params_custom.time_interval );
});
$('#' + carousel_params_custom.name_carrousel + '_next_button').mouseleave(function(){
clearInterval( $('#' + carousel_params_custom.name_carrousel).controlcarrousel[ carousel_params_custom.name_carrousel ] );
$('#' + carousel_params_custom.name_carrousel).carousel('pause');
});
}
});
})(jQuery);