Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使旋转木马在滚动和悬停时不摇晃_Javascript_Jquery_Html_Scroll_Carousel - Fatal编程技术网

Javascript 如何使旋转木马在滚动和悬停时不摇晃

Javascript 如何使旋转木马在滚动和悬停时不摇晃,javascript,jquery,html,scroll,carousel,Javascript,Jquery,Html,Scroll,Carousel,问题是每次调用AnimateCarousel(),图像都会在继续之前在滑块中向右跳一点。我怎样才能预防它 还有,我如何在鼠标悬停时继续鼠标悬停 这是我的密码: $(文档).ready(函数(){ 动画片(); }); 函数AnimateCarousel(){ 控制台日志(“测试”); var SD=210; //var$carousel=$(that.parent(); var$ul=$(“.carousel”).children('ul'); var距离=标准差; var时间=5500; v

问题是每次调用
AnimateCarousel()
,图像都会在继续之前在滑块中向右跳一点。我怎样才能预防它

还有,我如何在鼠标悬停时继续鼠标悬停

这是我的密码:

$(文档).ready(函数(){
动画片();
});
函数AnimateCarousel(){
控制台日志(“测试”);
var SD=210;
//var$carousel=$(that.parent();
var$ul=$(“.carousel”).children('ul');
var距离=标准差;
var时间=5500;
var率=距离/时间;
距离=数学绝对值($ul.position().left);
控制台日志(距离+距离);
如果(距离!=0){
距离=SD-距离;
时间=距离/速率;
}
$ul.stop().animate({
左:-210
},时间,'线性',函数(){
$ul.append($ul.children('li:first children'));
$ul.css({
左:0
});
动画片();
});
}
*{
填充:0;
保证金:0;
}
旋转木马{
位置:相对位置;
宽度:100%;
溢出:隐藏;
高度:200px;
}
卡鲁塞尔{
显示:块;
列表样式:无;
空白:nowrap;
位置:绝对位置;
左:0;
填充:0;
保证金:0;
}
.tst1{
颜色:#FFF;
不透明度:0;
-webkit转换:所有500毫秒易用性;
-moz转换:所有500毫秒的易用性;
-毫秒转换:所有500毫秒的转换都很容易;
-o型过渡:所有500毫秒的缓解;
过渡:所有500ms缓解;
}
李先生{
显示:内联块;
位置:相对位置;
}
.carousel li:悬停>div{
不透明度:1;
}

  • 视图配置文件
  • 视图配置文件
  • 视图配置文件
  • 视图配置文件
  • 视图配置文件
  • 视图配置文件

要避免跳转,请将代码的最后一部分更改为以下内容:

$ul.stop().animate({
            left: -200
        }, time, 'linear', function(){
            $ul.append($ul.children('li:first-child'));
            $ul.css({left: 4});
    AnimateCarousel();
        });

因为li之间的默认边距是4px,所以我将其添加到css中的.carousel li{,以便在任何时候将第一个li附加到末尾时,都会遵守此边距

添加:鼠标悬停在上方并继续鼠标悬停

片段:

$(文档).ready(函数(){
动画片();
$(“.carousel ul”).悬停(功能(e){
$(this.addClass('stop-animation');
$(此)。停止(false,false);
},功能(e){
$(this.removeClass('stop-animation');
动画片();
});
});
函数AnimateCarousel(){
var$ul=$(“.carousel”).children('ul');
var时间=1500;
$ul.animate({
左:-210
},时间,'线性',函数(){
$ul.append($ul.children('li:first children'));
$ul.css({左:0});
如果(!$ul.is('.stop animation')){
动画片();
}
});
}
*{
填充:0;
保证金:0;
}
旋转木马{
位置:相对位置;
宽度:100%;
溢出:隐藏;
高度:200px;
}
卡鲁塞尔{
显示:块;
列表样式:无;
空白:nowrap;
位置:绝对位置;
左:0;
填充:0;
保证金:0;
}
.tst1{
颜色:#FFF;
不透明度:0;
-webkit转换:所有5000ms的易用性;
-moz转换:所有5000ms易用;
-ms过渡:所有5000ms缓解;
-o-转换:所有5000ms的易用性;
过渡:所有5000ms缓解;
}
李先生{
显示:内联块;
位置:相对位置;
左边距:4px;/*行已添加*/
}
.carousel li:悬停>div{
不透明度:1;
}

  • 视图配置文件
  • 视图配置文件
  • 视图配置文件
  • 视图配置文件
  • 视图配置文件
  • 视图配置文件

我会测试一下。谢谢。对悬停暂停有什么想法吗?顺便说一句,这并不能解决问题。如果你用不同的图像替换占位符图像……它会显示:9你可以使用所有图像并进行检查。它们都是200x200和不同的图像,以便更好地理解。Thanks@SearchForKnowledge代码段已更新。修正了我的错误。补充:鼠标悬停并继续鼠标移出。你能试着让我知道吗?谢谢