2012-03-26 33 views
5

我用jQueryMobile 1.1-rc1使用PhotoSwipe 3.0.4。防止永远隐藏工具栏中的photoswipe

我试图阻止PhotoSwipe隐藏它的工具栏。

我试过captionAndToolbarAutoHideDelay paramater设置为0,希望这会防止将工具栏隐藏,但这似乎只是防止其自动隐藏。

我还设置了标题和工具栏隐藏到虚假希望这会防止它隐藏,但这并没有帮助。

我想阻止工具栏在用户点击和滑动图像时隐藏,因为在某些手持设备上,要再次显示工具栏有点困难。

有没有人有这样的运气?

回答

8

从浏览源代码here看来有几个可能的选择。

  1. 覆盖的OnFadeout或toolbar.class.js所以它不会淡出根据你的设置设置工具栏淡出功能。具体通过添加一个基于if语句的设置围绕以下line

  2. 重写或添加其他事件监听器到OnBeforeJide或OnHide事件,以取消隐藏或停止工具栏的隐藏。

    对于定制事件听者的一个例子见here 或直接通过调用Util.Events.remove(this.toolbar,Toolbar.EventTypes.onHide, this.toolbarHideHandler);,所述PhotoSwipe dispose方法以外除去OnHide事件。

  3. 将自定义事件处理程序添加到OnHide或OnBeforeHide事件,该事件从默认事件继承,但基于您设置的设置停止隐藏工具栏。

从我所看到的

  • captionAndToolbarHide变量默认为false,当设置为true防止工具栏将永远不能在的createComponents函数创建。
  • captionAndToolbarAutoHideDelay变量确实如此,但它只能防止标题和工具栏的自动隐藏,而不会阻止任何其他OnHide事件调用。
  • preventHide变量阻止用户关闭photoSwipe,但不一定保证工具栏不会被隐藏。

此外PhoneSwipe文档是可用的here

6

我需要防止PhotoSwipe隐藏图像标题,但仍然会让它隐藏页面底部的工具栏。我只是添加下面的CSS来覆盖PhotoSwipe适用于隐藏此元素的内联样式。您可以使用类似的方法来防止隐藏工具栏。

.ps-caption{ 
opacity:0.8 !important; 
display:block !important; 
} 
+0

您必须将不透明度设置为1!对工具栏和图像标题很重要。 – andi1984 2012-05-29 11:50:21

-1

添加的代码下面一行显示的工具栏永久

.ps-toolbar{ 
    opacity:0.8 !important; 
} 
3

同时需要在你的CSS这些标签:

.ps-caption{ 
opacity:0.8 !important; 
} 

.ps-toolbar { 
opacity:0.8 !important; 
} 
0

我使用photoswipe以幻灯片模式只,照片通过ajax调用加载。我希望标题永久贴在幻灯片的底部。这是我想出来的。注意最后两行:

instance.toolbar.showCaption(); 
    instance.toggleToolbar = function() {}; 

这迫使标题来显示,然后覆盖一无所有切换功能。这个解决方案我没有错误。

loadSlideshow = function(items){ 


var options = { 
    captionAndToolbarOpacity: 0.9, 
    captionAndToolbarFlipPosition: true, 
    captionAndToolbarAutoHideDelay: 0, 
    captionAndToolbarShowEmptyCaptions: true, 
    preventHide: false, 
    enableKeyboard: false, 
    autoStartSlideshow: true, 
    target: $('#PhotoSwipeTarget'), 
    imageScaleMethod: 'fit', 
    preventHide: true, 
    margin: 0, 
    allowUserZoom: false, 
    backButtonHideEnabled: false, 
    //captionAndToolbarHide: true, 
    getImageSource: function(obj){ 
     return obj.url; 
    }, 
    getImageCaption: function(obj){ 
     return obj.caption; 
    } 
    }; 

    instance = window.Code.PhotoSwipe.attach(
    items, options 
); 

    instance.show(0); 
    instance.toolbar.showCaption(); 
    instance.toggleToolbar = function() {};       
    return true; 
} 
+0

你介意共享作为第一个参数传入attach函数的var变量的内容格式吗?我正在尝试做类似的事情。 – 2013-12-06 22:31:24

1

要显示所有的时间,工具栏和第一删除脚本高于标题依次是:

this.caption.fadeOut(); 
this.toolbar.fadeOut(); 

然后

this.captionAndToolbar.fadeOut() 

细心,有两种尝试之一,那么其他要知道是哪个。 注意修改网站的链接。大部分时间都是分钟。