【发布时间】:2013-01-23 20:42:55
【问题描述】:
我正在尝试创建一个简单的 jquery 图片库,其中单击缩略图按钮(每张图片 1 个)通过淡入淡出交换图像并交换文本标题。
我的 div 包含绝对位于另一个之上的图像,以及旁边的标题,下方带有缩略图/按钮。
我写的 jquery 可以工作——除了页面加载时的第一次转换。第一个过渡使目标图像出现,然后淡出,然后淡入。它应该只是淡入。
我是 jquery 的新手,如果这是糟糕的代码,我深表歉意......
谁能告诉我为什么第一个转换不能正常工作?
谢谢
查询:
$(document).ready(function(){
$('.gallery_button').click(function(){
$('.gallery_slide').animate( {opacity:0.0}, 2000 );
$('#slide'+$(this).attr('id')).toggleClass('visible');
$('#slide'+$(this).attr('id')).animate( {opacity:1.0}, 2000 );
$('.gallery_caption').hide();
$('#caption'+$(this).attr('id')).show();
$('#caption'+$(this).attr('id')).toggleClass('visible');
});
});
HTML:
<div id="gallery_slider">
<div class="gallery_slide" id="slide1"><img src="img1.jpg"/></div>
<div class="gallery_slide hidden" id="slide2"><img src="img2.jpg"/></div>
<div class="gallery_slide hidden" id="slide3"><img src="img3.jpg"/></div>
<div class="gallery_caption" id="caption1">Caption 1</div>
<div class="gallery_caption hidden" id="caption2"/>Caption2</div>
<div class="gallery_caption hidden" id="caption3"/>Caption3</div>
<div class="gallery_button"><img src="button.gif" id="1"/></div>
<div class="gallery_button"><img src="button.gif" id="2"/></div>
<div class="gallery_button"><img src="button.gif" id="3"/></div>
</div>
CSS:
#gallery_slider{position:relative; height:500px;}
.gallery_slide{position:absolute; top:0; left:0; width:640px; height:480px;}
.gallery_caption{position:absolute; bottom:20px; left:660px; width:160px; min-height:150px;}
.gallery_button{width:10px; height:10px; margin:490px 8px 0 0; float:left;}
.hidden{display:none;}
.visible{display:block; visibility:visible;}
【问题讨论】:
-
id="1"。 ID 不能以数字开头,并且必须是唯一的。 -
这是上面代码的一个小技巧:jsfiddle.net/znsS5 并且我修复了相同的按钮 ID...当您单击时它似乎工作正常,但也许我错过了什么?
-
谢谢你——我的错误,id 实际上在实际代码中是唯一的。 @j08691 我相信 HTML5 现在允许 id 以数字开头
-
是的。但是为了兼容性,我建议避免以数字开头的 ID。
标签: jquery jquery-animate show-hide