2012-01-04 52 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项目,所以不能说兼容性,你已经修复它,所以...