2012-05-26 44 views
1

在網頁的標題中放置一個顯示幻燈片的橫幅。一個例子可以發現here。現在,當用戶在包含照片庫的頁面上並且他點擊縮略圖時,將打開一個燈箱(shadowbox.js)。在打開燈箱的同時,應停止幻燈片腳本,以便用戶不會被背景分心。如何在Shadowbox打開和關閉時暫停/播放Drupal旋轉橫幅?

總結: 普通:幻燈片放映腳本應阻止:當用戶點擊縮略圖(有一定相對ATTR「太極拳」)正在執行 腳本幻燈片。 當燈箱關閉時(使用Shadowbox的onClose hook?)應重新初始化標題中幻燈片的腳本。

對此的任何想法?

+0

JavaScript中一次只運行一個腳本。您可能只需要取消超時或間隔。 – Paulpro

+0

你有任何代碼去解決這個問題嗎? –

+0

@ZeeTee恐怕我不知道。你可以通過我發佈的鏈接找到shadowbox的代碼,但幻燈片是一個Drupal菜單,我似乎無法找到創建滑動的代碼。 –

回答

1

您使用的Shadowbox版本是v3.0.3,目前的穩定版本。

您正在使用的其他插件的名稱是Durpal Rotating Banner v6,但版本7.2可供使用。

您在使用太極拳勾選項.onOpen();onClose();與旋轉旗幟腳本互動完全正確的。但是,除了通過自定義菜單配置選項以外,Rotating Banner腳本沒有API使用文檔。

檢查有據可查的JavaScript可下載的壓縮文件顯示如何與Durpal旋轉橫幅接口,無論您使用的是什麼版本。

首先,我沒有使用Shadowbox的插件版本,只有Shadowbox網站的獨立版本,但是這種方法應該爲各種各樣的Shadowbox插件(例如Drupal,WordPress)在那裏登陸這個答案。

如果您沒有訪問Shadowbox.init({});,使用這個腳本您的網頁的結束標記之前正確的,否則跳下到下一個代碼塊:

<script type="text/javascript"> 

    window.onload=function(){ 

     Shadowbox.setup('',{ 

      // Besides 'pause' and 'resume' are 'prev', 'next', and 'stop' found in the jQuery Cycle Plugin (check inside jQuery Easing Plugin to see if it's combined). 

       onOpen: function(){ 
        jQuery('.rb-slides').each(function() { 
        if (jQuery(this).cycle) { 
         jQuery(this).cycle('pause'); 
        } 
        }); 
       }, 
       onClose: function(){ 
        jQuery('.rb-slides').each(function() { 
        if (jQuery(this).cycle) { 
         jQuery(this).cycle('resume'); 
        } 
        }); 
       } 

      // If you have access to Shadowbox.init({}), then place the above onOpen and onClose in there instead of using this script. 

     }); 

    }; 

    </script> 

如果你有機會通過Shadowbox.init({});進行Shadowbox初始化,然後使用下面的onOpen();onClose();部分,如圖所示。

<script type="text/javascript"> 

     Shadowbox.init({ 

      onOpen: function(){ 
       jQuery('.rb-slides').each(function() { 
       if (jQuery(this).cycle) { 
        jQuery(this).cycle('pause'); 
       } 
       }); 
      }, 
      onClose: function(){ 
       jQuery('.rb-slides').each(function() { 
       if (jQuery(this).cycle) { 
        jQuery(this).cycle('resume'); 
       } 
       }); 
      } 

     }); 

    </script> 

在我的測試環境中,這非常適用於太極拳與基地或jQuery的適配器接口......這對我來說是一個下載選項(除了jQuery庫)。

上述腳本將暫停全部 Shadowbox打開時在網頁上找到的旋轉橫幅,然後在Shadowbox關閉時將其全部恢復。

+0

這看起來非常有前途!有一件事:我正在使用shadowbox-js.com的腳本!我將它添加到我的.info文件中,以便它被加載。隨後,我可以訪問shadowbox.init();但我真的不知道現在應該是什麼樣子。當我將從'onOpen'發佈的代碼粘貼到註釋上方的代碼到初始化的圓括號中時,我的編輯告訴我有什麼不對。也許你可以發佈一個init-code應該是什麼樣子的例子? –

+0

感謝您解釋爲什麼我在.js文件中查看.init(),這很奇怪,但如果它適合您,它是可以接受的。我只是更新了** Shadowbox.init **的標記,您可以用它替代.js文件中的標記。 – arttronics

+0

非常感謝!這很棒!不僅更好地將重點放在燈箱上,而且還會提高性能!非常感謝! –