我使用Cycle插件实现了幻灯片放映,该插件适用于除IE6和7之外的所有浏览器,其中图像只显示在列表中,#page_copy div未隐藏。我一整天都没有运气,而且不确定我应该寻找的方式或内容。
调试此问题的最佳方法是什么?我知道当我删除剩下的代码时#page_copy div隐藏了,我尝试了反向(没有结果)
<script type="text/javascript" charset="utf-8">
jQuery.fn.fadeToggle = function(speed, easing, callback) {
return this.animate({opacity: 'toggle'}, speed, easing, callback);
};
$(document).ready(function() {
$('#page_copy').hide();
$('a#info_close_button').click(function() {
$('#page_copy').fadeOut(200);
return false;
});
$('a#info_button').click(function() {
$('#page_copy').fadeToggle(200);
return false;
});
});
$(window).load(function() {
// vertically center single image
var $image_cnt = $("#images > img").size();
if($image_cnt < 2) {
var $single_img = $("#images").children(':first-child');
var h = $single_img.height();
$single_img.css({
marginTop: (620 - h) / 2,
});
$(".next").css("display","none");
$(".prev").css("display","none");
}
});
// wait until images have loaded before starting cycle
$(window).load(function() {
// front image rotator
$('#images').cycle({
fx: 'fade',
speed: 300,
next: '.next',
prev: '.prev',
containerResize: 0,
timeout: 0,
delay: -2000,
before: onBefore
});
});
// hide all but the first image when page loads
$(document).ready(function() {
$('#images img:gt(0)').hide();
});
// callback fired when each slide transition begins
function onBefore(curr,next,opts) {
var $slide = $(next);
var w = $slide.width();
var h = $slide.height();
$slide.css({
marginTop: (620 - h) / 2,
marginLeft: (650 - w) / 2
});
};
</script>
答案 0 :(得分:1)
我真的不明白为什么你有多个$(document).ready
和$(window).load
..
也许您应该尝试将所有内容放在一个$(document).ready
块中。
此外,在function onBefore(...)
代码的最开头移动<script>
的定义。直接在jQuery.fn.fadeToggle
代码之前。
尝试删除此段代码末尾不需要的逗号
$single_img.css({
marginTop: (620 - h) / 2, //<---- remove comma
});
并删除这个不需要的分号
function onBefore(curr,next,opts) {...}; //<--- unneeded