我怎样才能控制自举传送带在物品中滑动的速度?
我看到你可以设置时间间隔,但我想控制物品的滑动速度有多快?
// 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添加了.6s
和0.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>