2012-03-26 69 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() 

細心,有兩種嘗試之一,那麼其他要知道是哪個。 注意修改網站的鏈接。大部分時間都是分鐘。