我怎样才能控制自举传送带在物品中滑动的速度?

我看到你可以设置时间间隔,但我想控制物品的滑动速度有多快?

// Sets interval...what is transition slide speed? $('#mainCarousel').carousel({ interval: 3000 }); 

速度不能被API控制。 虽然你可以修改负责的CSS。 在carousel.less文件中find

 .item { display: none; position: relative; .transition(.6s ease-in-out left); } 

并将.6s改为任何你想要的。


如果你不使用.less,请在bootstrap.css文件中find:

 .carousel-inner > .item { position: relative; display: none; -webkit-transition: 0.6s ease-in-out left; -moz-transition: 0.6s ease-in-out left; -o-transition: 0.6s ease-in-out left; transition: 0.6s ease-in-out left; } 

并改变0.6s到你想要的时间。 您也可以在下面的函数调用中编辑时间:

 .emulateTransitionEnd(2000) 

在函数Carousel.prototype.slide bootstrap.js中。 在转换结束之前,同步转换并防止幻灯片消失。

编辑7/8/2014

正如@YellowShark指出,在JS的编辑不再需要。 只应用css更改。

编辑你的css文件之后,你只需要编辑CAROUSEL.TRANSITION_DURATION(在bootstrap.js)或者c.TRANSITION_DURATION(如果你使用bootstrap.min.js)并且改变里面的值它(默认为600)。 最后的值必须和你放在你的css文件中的一样(例如,在.js中用css = 10000表示10s)

只需在包含传送带的div中写入data-interval

 <div id="myCarousel" class="carousel slide" data-ride="carousel" data-interval="500"> 

从w3schools采取的例子。

对于Twitter Bootstrap 3:

你必须改变其他答案中指定的CSS转换:

 .carousel-inner > .item { position: relative; display: none; -webkit-transition: 0.6s ease-in-out left; -moz-transition: 0.6s ease-in-out left; -o-transition: 0.6s ease-in-out left; transition: 0.6s ease-in-out left; } 

从0.6秒到1.5秒(例如)。

但是,也有一些Javascript改变。 在bootstrap.js中有一行:

 .emulateTransitionEnd(600) 

这应该更改为相应的毫秒数。 所以1.5秒钟,你会改变数字1500:

 .emulateTransitionEnd(1500) 

我注意到的一件事是Bootstrap 3添加了.6s0.6s的样式。 所以你可能需要明确定义你的转换时间(CSS)

  .carousel-inner>.item { -webkit-transition: 0.9s ease-in-out left; transition: 0.9s ease-in-out left; -webkit-transition: 0.9s, ease-in-out, left; -moz-transition: .9s, ease-in-out, left; -o-transition: .9s, ease-in-out, left; transition: .9s, ease-in-out, left; } 

您需要将主DIV中的间隔设置为数据区间标记。 它会正常工作,你可以给不同的幻灯片不同的时间。

 <div class="carousel" data-interval="5000"> 

对我来说,在我看来最后加上了这一点:

 <script type="text/javascript"> $(document).ready(function(){ $("#myCarousel").carousel({ interval : 8000, pause: false }); }); </script> 

它给旋转木马8秒的间隔

在包含bootstrap.min.js或未压缩的文件之后,您可以添加interval作为参数,如下所示: jQuery("#numbers").carousel({'interval':900 }); 这个对我有用

如果你需要以编程的方式来改变(例如)基于某些条件的速度,也许只有一个传送带中的一个,你可以这样做:

如果Html是这样的:

 <div id="theSlidesList" class="carousel-inner" role="listbox"> <div id="Slide_00" class="item active"> ... <div id="Slide_01" class="item"> ... ... </div> 

JavaScript会是这样的:

 $( "#theSlidesList" ).find( ".item" ).css( "-webkit-transition", "transform 1.9s ease-in-out 0s" ).css( "transition", "transform 1.9s ease-in-out 0s" ) 

添加更多.css(…)以包含其他浏览器。

如果你不想改变引导程序的js文件,你也可以直接将需要的值注入jquery插件(bootsrap 3.3.6)。

这当然要求传送带通过js手动激活,而不是直接通过data-ride属性。

例如:

 var interval = 3500; $.fn.carousel.Constructor.TRANSITION_DURATION = interval - 500; elem.carousel({ interval : interval }); 

对我来说有效的是改变bootstrap.js的 时间间隔

  Carousel.DEFAULTS = { interval: 2000, // <----- change this pause: 'hover', wrap: true, keyboard: true } 

为了补充以前的答案,编辑CSS文件之后,只需编辑c.TRANSITION_DURATION (在bootstrap.js中 )或c.TRANSITION_DURATION (如果使用bootstrap.min.js )并更改其中的值(600默认)。 最后的值必须和你放入CSS文件的值相同(例如,CSS中的10s = 10000,使用.js)

 Carousel.VERSION = '3.3.2' Carousel.TRANSITION_DURATION = xxxxx /* Your number here*/ Carousel.DEFAULTS = { interval: 5000 /* you could change this value too, but to add data-interval="xxxx" to your html it's fine too*/ pause: 'hover', wrap: true, keyboard: true } 

所有的旋转木马

  <script type="text/javascript"> $(document).ready(function () { $('.carousel').carousel({ interval: 15000 }) }); </script>