我的代码如下:
<p:imageSwitch effect="none" slideshowAuto="false" widgetVar="images">
<ui:repeat var="image" value="#{indexController.cd.imagesView}">
<o:graphicImage value="#{imagesController.get(indexController.name, image)}" />
</ui:repeat>
</p:imageSwitch>
和这个bean来加载图像
@GraphicImageBean
public class ImagesController implements Serializable {
private static final long serialVersionUID = 6497820188225935778L;
private static final String APP_PATH = System.getProperty("application.path");
public byte[] get(String name, String file) {
String path = APP_PATH.concat(name).concat(File.separator).concat(file);
try {
return Files.readAllBytes(Paths.get(path));
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
我需要当它在最后一个图像中时,组件停止并且不要再次进入第一个图像。
有办法做到吗?
谢谢。
答案 0 :(得分:2)
是的。首先让我们向您展示如何停止幻灯片放映。在此处转到PrimeFaces展示柜:https://www.primefaces.org/showcase/ui/multimedia/switch.xhtml
在浏览器中打开一个JavaScript控制台,然后输入:
PF('widget_j_idt638').stopSlideshow();
是否注意到“缩放”幻灯片已停止?因此,“ widget_j_idt638”是一个名称不正确的widgetvar,您将其称为widgetVar =“ images”,这样您就可以...
PF('images').stopSlideshow();
现在,从阅读ImageSwitch使用的Jquery Cycle plugin文档开始,可以找到一种自动停止方法。
autostop:0,//为true,在X过渡后结束幻灯片 (其中X ==幻灯片计数)
因此要在您的页面上启用此功能,只需添加此内联脚本即可在页面加载后运行...
$(document).ready(function() {
PF('images').jq.cycle({autostop:1});
});
可以解决问题。我刚刚在PrimeFaces展示柜中对其进行了测试。