我有一个使用jquery循环插件构建的嵌套幻灯片库。我希望基于alt
文本的标题显示在幻灯片中的每个图像上,但我不知道脚本中我需要在哪里激活它。如果有人能提供帮助,我会非常感激。谢谢!
//stop subgal initially
$('#hovergal .subgal').cycle({
fx: 'fade',
timeout: 10000,
slideExpr: 'img'
}).cycle('pause');
//start subgal on click
$('#hovergal').cycle({
fx: 'scrollUp',
speed: 300,
timeout: 0,
slideExpr: '>div.subgal',
pager: 1,
pagerAnchorBuilder: function(i) {
return $('aside.sgnav a:eq(' + i + ')');
},
after: function(curr,next,opts) {
var cmd = opts.currSlide == 1 ? 'resume' : 'pause';
$('div.subgal').cycle(cmd);
}
});
} else {//else, if there's only one gallery to be shown
$('#hovergal .subgal').cycle({
fx: 'fade',
timeout: 3000,
slideExpr: 'img'
});
}
答案 0 :(得分:0)
我猜每个人都像我一样陷入困境,因为我一直试图找到这个问题的答案两个星期没有运气。我已经放弃尝试在Jquery.Cycle的参数内解决它,并改为将我的库转换为列表而不是div,每个列表项包含一个从alt标记中提取其内容的标题容器。完成后,我只需将slideExpr更改为列表,瞧。
此方法仍然不需要,因为我必须构造第二个Jquery语句,在页面加载时检查每个标题容器,确定它是否有任何内容,如果它是空的则隐藏它。但它确实有效,而且在这一点上我真正关心它。
也许某人有一天会得到这个问题的真正答案。与此同时,我将这里留给任何可能遇到同样堵塞的人。
答案 1 :(得分:0)
我认为这与循环插件无关。 如果你对这些行很好,你只需要在$(document).ready(function(){}中添加一个函数,比如
$('.slideshow img').each(function(){
var el = $(this);
var alttext = el.attr('alt');
el.after('<span>'+alttext+'</span>');
});
这会在图像后面直接附加您的替代文字,您可以使用css将其定位为绝对。 您可能需要根据您的结构进行调整,可能不是img和“el.after”,而是
$('.slideshow img').each(function(){
var el = $(this);
var parentdiv = el.parents('div:eq(0)');
var alttext = el.attr('alt');
parentdiv.append('<span>'+alttext+'</span>');
});
左右。 你可以在这里找到一个工作实例(我今天的帖子) Jquery Cycle —multiple nested slideshows and cycle terminating 或者在这里 http://ferienhaus-fischland-ahrenshoop.de/mini4/完成此项目后需要删除mini4 / 欢迎提出更多问题,greetinx,Michael