Ben*_*Ben 2 css jquery dom galleria slideshow
我正在网站上实现Galleria幻灯片,我在大多数情况下都能正常工作.我正在使用api来自定义幻灯片的外观,我想从图像中获取alt文本并显示在div中(我现在只是登录到firebug控制台)
这是我写的脚本:
<script type="text/javascript">
Galleria.loadTheme('galleria/themes/classic/galleria.classic.min.js');
$("#gallery").galleria({
width: 420,
height: 370,
autoplay: 5000, // will move forward every 5 seconds
extend: function(options) {
var gallery = this; // "this" is the gallery instance
this.bind("loadstart", function(e) {
var currImg = gallery.getActiveImage();
var altText = $(currImg).attr('alt');
console.log(altText);
});
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
似乎这会起作用,但我在控制台中"未定义".有谁知道如何从"Galleria"图像中获取alt文本?API文档说.getActiveImage()方法返回一个返回IMG元素,所以我不确定我是否以正确的方式使用IMG元素,或者它是否有我可以抓取的替代文本.
我也试过使用我的图像ID,这是
('slideshow_image_' + e.index)
Run Code Online (Sandbox Code Playgroud)
但这也给了我一个未定义的日志结果.
我知道HTML中有一个名为slideshow_image_0等的元素,我认为按元素ID查找alt文本并显示它很容易.如果我查看firebug的HTML选项卡,整个div是完全不同的,并且图像被galleria动态填充到这些部分中.不知道该怎么办...请帮忙!
您需要绑定在图像更改时调用的方法.
getAsctiveImage()也不是很有用,因为getData是.以下代码,在控制台中打印您想要的ALT,以及标题,以防您需要.
试试这个:
$("#gallery").galleria({
width: 420,
height: 370,
autoplay: 5000, // will move forward every 5 seconds
extend: function(options) {
var gallery = this; // "this" is the gallery instance
this.bind(Galleria.IMAGE, function(e) {
var current = gallery.getData(gallery.getIndex());
var currImg = current.original;
var altText = $(currImg).attr('alt');
console.log(altText, current.title);
});
}
});
Run Code Online (Sandbox Code Playgroud)