我认为您的关键是在整个 javascript 中使用 fadeTo()。fadeTo() 不会将其从文档中取出,因此您将避免其他方块跳转到新位置。
另外,我稍微简化了您的 javascript。还有一件事:<center>
标签在 html5 中已被弃用。尽量避免使用它。让我知道你的想法!
html:
<body>
<div id="clickableContainer">
<div class="clickable" id="one"></div>
<div class="clickable" id="two"></div>
<div class="clickable" id="three"></div>
</div>
<article class="slider" style="display:none;" id="1"><div class="back">Back</div>
</article><article class="slider" style="display:none;" id="2"><div class="back">Back</div>
</article><article class="slider" style="display:none;" id="3"><div class="back">Back</div>
</article>
</body>
Javascript:
$(document).ready( function(){
$('#one').on("click",function(){
$("#two, #three").delay(300).fadeTo(300,0, function(){
$('#one').delay(1000).fadeTo(300,0,function(){
$("#one, #two, #three").css("display","none");
$('#1').delay(1900).fadeTo('slow', 1);
});
});
});
$('#two').on("click",function(){
$("#one, #three").delay(300).fadeTo(300,0, function(){
$('#two').delay(1000).fadeTo(300,0,function(){
$("#one, #two, #three").css("display","none");
$('#2').delay(1900).fadeTo('slow', 1);
});
});
});
$('#three').on("click",function(){
$("#one, #two").delay(300).fadeTo(300,0, function(){
$('#three').delay(1000).fadeTo(300,0,function(){
$("#one, #two, #three").css("display","none");
$('#3').delay(1900).fadeTo('slow', 1);
});
});
});
$('article').on("click",function(){
$(this).fadeTo(300,0,function(){
$(this).css("display","none");
$('#one, #two, #three').delay(800).fadeTo(300,1);
});
});
});
http://jsfiddle.net/itsmikem/nU8hC/3/