【发布时间】:2012-07-12 20:54:51
【问题描述】:
通过浮动 CSS 参数使用两个并排对齐的 div。
jQuery 同时改变它们的宽度。这引起了生涩的像素化激动。我设置了一个小提琴,但 jsfiddle 已关闭。
我们如何使每个 div 宽度同时滑动而不发生这种抖动。
<div class="container">
<div class="div d1">DIV 1</div>
<div class="div d2">DIV 2</div>
</div>
<div style="clear:both;"></div>
</br></br>
<input class="s1" type="button" value="shift"/>
<input class="s2" type="button" value="shift back"/>
$(document).ready(function(){
$('.s1').click(function(){
$('.d1').animate({width:100},{duration:300,queue:false});
$('.d2').animate({width:300},{duration:300,queue:false});
});
$('.s2').click(function(){
$('.d1').animate({width:100},{duration:300,queue:false});
$('.d2').animate({width:300},{duration:300,queue:false});
});
});
.div { display:block; width:200px; height:90px; background:#666; colour:#FFF; float:left; }
.container { border:1px solid #000; background:#EEE; width:400px; }
input { clear:both;}
这是一个将正确的 div 浮点数更改为正确的版本,因此您可以确切地看到我的意思。查看动画期间您可以在它们之间看到的白线。
【问题讨论】:
-
这是你的小提琴jsfiddle.net/74zNU 我稍微修改了 s2 动画,因为你的代码没有向后移动。我也没有看到任何奇怪的东西。你能把你看到的截图贴出来吗?
-
@barts 制作动画时,您仍然可以看到右侧边距减少了 1 或 2 个像素。
-
确实……很奇怪。动画中的宽度或左侧位置似乎存在一些偏移问题
-
不是,这是因为两个动画同时在每个像素的基础上运行造成的。问题是如何解决它
-
我以为我找到了解决方案,但它再次显示右侧的像素。看起来它与 jquery 中的这个错误有关(bugs.jquery.com/ticket/7109)
标签: jquery css-float width jquery-animate