我建立基于以下标记一个简单的图片库:jQuery的画廊淡入/淡出
<div id="image-list">
<ul>
<li id="image-1">
<img src="myimage1.jpg" width="500" height="500" alt="My Image" />
</li>
<li id="image-2">
<img src="myimage2.jpg" width="500" height="500" alt="My Image" />
</li>
<li id="image-3">
<img src="myimage3.jpg" width="500" height="500" alt="My Image" />
</li>
</ul>
</div>
<ul id="thumb-list">
<li id="thumb-1"><img src="myimage1-thumb.jpg" width="50" height="50" alt="My Image" /></li>
<li id="thumb-2"><img src="myimage2-thumb.jpg" width="50" height="50" alt="My Image" /></li>
<li id="thumb-3"><img src="myimage3-thumb.jpg" width="50" height="50" alt="My Image" /></li>
</ul>
我都称呼这个使用CSS,这样只有较大的图像,一个在同一时间是可见的(使用溢出:用固定的容器高度隐藏)。
然后我使用jQuery的容器内的绝对定位UL,以显示每个图像,使用下面的标记:
$('#thumb-list li img').click(function() {
var image = $(this).parent().attr('id').substring(6);
var position = $('#image-' + image).position();
$("#image-list ul").css({'top' : '-' + position.top +'px'});
});
基本上我想淡出了整个“#图像列表UL”,而它的位置会发生变化,然后将其淡入以显示新图像。
有人可以建议最有效的方法来做到这一点? - 任何帮助深表感谢!
jQuery的fadeOut()和fadeIn()不适合你? – 2010-01-10 12:25:18
是的,我更不确定如何让他们获得理想的效果。我猜我需要在fadeOut回调函数中的大部分代码? – Fred 2010-01-10 12:41:57
此代码是最佳解决方案吗?: $('#thumb-list li img')。click(function(){ \t var image = $(this).parent()。attr('id') ('#image-list ul')。fadeOut('fast',function(){ \t \t $(本)的.css({ '顶': ' - ' + position.top + '像素'})淡入( '快'); \t}); \t \t \t \t \t }); – Fred 2010-01-10 12:50:58