我正试图通过动作停止转换(在这种情况下是悬停),但我不知道如何实现它。 这是我正在进行测试的地方:
我有3个jcarousel
个实例,我的目标是在鼠标悬停时停止(立即)移动。
问题是:当鼠标在旋转木马上方时,我会停止它,但当前的过渡在停止之前结束,并且感觉不是理想的,我希望在鼠标悬停时立即停止运动。
这是第一个轮播的初始化:
$('#jcarousel1')
.jcarousel({
'animation': {
'duration': 6000, //DEFINE SPEED
'easing': 'linear',
'complete': function() {
//ON ANIMATION COMPLETE ACTION GO HERE
}
},
'wrap': 'circular'
}).jcarouselAutoscroll({
interval: 1,
target: '+=1',
autostart: true
}).on('mouseover',function(e){
$(this).jcarouselAutoscroll('stop');
}).on('mouseout',function(e){
$(this).jcarouselAutoscroll('start');
});
其他两个jcarousel实例的初始化类似。
更新: 我已经尝试过了:
$('#jcarousel1').jcarousel('list').stop();
这会停止移动(滚动),但是我无法在鼠标移出时再次开始移动,与之前的位置相同。
更新1: 我也尝试过mouseout(并让它再次运行)
$('#jcarousel1').jcarousel('destroy')
$('#jcarousel1').jcarousel( arrayWithInitOptions )
但是这会产生不良影响,因为从第一个项目开始从轮播开始(重新加载)开始移动,我想从鼠标悬停时的相同位置重新开始。
答案 0 :(得分:1)
你可以使用这样的东西
<script type="text/javascript" src="jquery.jcarousel.min.js"></script>
<script type="text/javascript">
function mycarousel_initCallback(carousel)
{
// Pause autoscrolling if the user moves with the cursor over the clip.
carousel.clip.hover(function() {
carousel.stopAuto();
}, function() {
carousel.startAuto();
});
};
jQ=jQuery.noConflict();
jQ(document).ready(function() {
jQ('#mycarousel').jcarousel({
auto: 3,
animation: 1000,
scroll: 1,
easing: "linear",
wrap: 'circular',
initCallback: mycarousel_initCallback
});
});
</script>