html 轮播图左右有空白,轮播图无缝切换时,补在后面的图片会有短暂的空白。。...

本文探讨了使用jQuery实现轮播图时遇到的动画闪动问题,并尝试通过调整CSS样式及动画实现方式来解决该问题。作者分享了两种不同的解决方案及其效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Demo

*{margin:0;padding:0;box-sizing:border-box;}

.wrap{

overflow:hidden;

position:relative;

}

ul{

width:3600px;

margin-left:calc((100% - 1200px)/2 - 1200px);

}

li{

list-style:outside none none;

float:left;

width:1200px;

height:300px;

}

.prev,.next{

width:calc((100% - 1200px) / 2);

height:300px;

line-height:300px;

text-align:center;

position:absolute;

top:0;

background:rgba(0,0,0,.1);

}

.prev{left:0;}

.next{right:0;}

.clearfix:after{

content:'';

clear:both;

overflow:hidden;

height:0;

display:block;

}

.red{background:red;}

.black{background:black;}

.orange{background:orange;}

  • 1
  • 2
  • 3

$('.prev, .next').click(function(event){

var target = $(event.target);

if(target.attr('class') == 'prev'){

}else{

var node = $('.current').prev('li');

$('ul').animate({

'margin-left' : '+=' + -1200

}, 1000, function(){

$('ul').append(node).css('margin-left', '+=' + 1200);

});

$('.current').next('li').addClass('current').siblings('li').removeClass('current');

}

});

往下翻时第一张会出现短暂的空白再补到后面去. 我知道问题是哪,但不知道怎么解决??

曾试过animate移动600,再把node插入到后面去和再直接写css('margin-left')用transition来实现动画。 结果也不行....

var node = $('.current').prev('li');

$('ul').animate({

'margin-left': '+=' + -600

},1000,function(){

$('ul').css('margin-left': '+=' + -600);

$('ul').append(node).css('margin-left', '+=' + 1200);

});

//css

ul{transition:-margin-left 1s linear 1s;}

还想请问下,这当中触发了多少次重绘? 为什么执行这句(css('margin-left', '+=' + 1200);)没有感到闪动的情况发生???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值