2012-01-04 121 views
9

我試圖在我的magento安裝上實現nivoslider。我只是複製粘貼到downloaded demo package(我測試了我的Firefox並運行非常流暢)到magento。我做了所有的功課NivoSlider在magento上不能正常工作

  • 複製所需的所有js和css文件到我的主題皮膚文件夾
  • 加上page.xml這些文件

    <reference name="head"> 
        <action method="addCss"><stylesheet>css/styles.css</stylesheet></action> 
        ... 
        <action method="addCss"><stylesheet>css/nivo-slider.css</stylesheet></action> 
        <action method="addCss"><stylesheet>css/themes/default/default.css</stylesheet></action> 
        <action method="addCss"><stylesheet>css/themes/default/pascal.css</stylesheet></action> 
        <action method="addCss"><stylesheet>css/themes/default/orman.css</stylesheet></action> 
        <action method="addItem"><type>skin_js</type><name>js/jquery-1.6.2-no-conflict.js</name><params/></action> 
        ... 
        <action method="addItem"><type>skin_js</type><name>js/jquery.nivo.slider.pack.js</name><params/></action> 
        <action method="addItem"><type>skin_js</type><name>js/my_own_custom_script.js</name><params/></action> 
        ... 
    </reference> 
    
  • 複製滑塊magento cms頁面上的html部分

enter image description here

  • 最後加jQuery(document).ready(function($) { $('#slider').nivoSlider(); });到my_own-custom_script.js

它運行,但並不順利。有時幻燈片暫停了一段時間。其他時候,其中一張圖片不會顯示出來。動畫也有點閃爍。滑塊導航(prev-next按鈕和滑塊底部的圓圈)有時會對我的點擊事件無響應。讓我困惑的是,所有這些症狀都發生在有時,其他一些時候它運行良好。

哦,還有一件事,這個nivoslider也總是讓我的firefox崩潰,每次我檢查它的元素與螢火蟲之一。

任何人都可以給我一些線索,爲什麼會發生這種情況?我懷疑這與magento的原型腳本衝突有關(儘管它已經全部運行在noconflict模式下)

+1

有用的事情。我也嘗試運行客戶登陸頁面的NivoSlide以及雪花jquery插件,這是舊PC的死亡^^同時我使用的是一個易於使用和快速jQuery滑塊的Orbit Slider:http:/ /www.zurb.com/playground/orbit-jquery-image-slider唯一的問題是,它與IE6不兼容。 – tecmec 2012-01-05 07:23:22

+0

你應該能夠現在發佈它作爲答案。繼續並做到這一點。 – NullUserException 2012-01-06 02:50:06

回答

21

經過一些挖掘,我發現該解決方案... ...和解決方案非常簡單: 就像向nivoslider腳本添加一個小下劃線字符一樣簡單。 只是nivoslider腳本替換此行:

$.fn._reverse = [].reverse; 

這個

$.fn._reverse = []._reverse; 

這裏的解釋是爲那些誰需要解釋:

,如果你看到錯誤列表(與Firefox, ctrl + shift + j)在使用nivoslider時,您會看到原型得到了太多的遞歸。這是原型的「太多遞歸」的解釋:prototype too much recursion problem

Prototype上反向函數的使用與NivoSlider發生衝突。在github上的傢伙發現了這個問題並給出一個快速的解決方案在這裏: https://github.com/gilbitron/Nivo-Slider/issues/35

這個問題有我發瘋,因爲有沒有到處足夠的資源(試用谷歌它,你會發現沒有直接回答這個問題) 。所以我希望我的問題,以及我自己的答案可以幫助其他人與我在同一案件:)

+3

非常棒,謝謝我有同樣的問題,並修復它 – 2012-02-03 02:14:40

+0

我也有同樣的問題。這解決了「遞歸太多」的部分,但滑塊在我的magento安裝中仍然無法正常工作。它不響應點擊來更改幻燈片,並且動畫不連貫。仍在尋找完整的解決方案。 – shanemgrey 2012-06-29 15:35:50

+0

謝謝你,這實際上工作和解決了這個問題。 – suvajit 2013-04-25 08:01:55

0

最近在一個已經開發了一段時間的網站上開始看到這個。看到:

Uncaught RangeError: Maximum call stack size exceeded 
Object.extend.reverse 

在Chrome中的控制檯。 'Object.extend.reverse'詳細參考原型行881.我不是一個JavaScript傢伙,所以這是一個更適合其他人的細節。

/skin/frontend/gas/default/js/jquery.nivo.slider.pack.js被加載,所以它必須有一些衝突,也許與新的jQuery版本或什麼。

我想你可以切換到不同的滑塊。我最近發現BX滑塊,喜歡它,但尚未用於Magento項目,所以不能說兼容性,你已經修復它,所以...