Mootools 1.2.5 Element.setStyle / Morph

时间:2010-12-08 15:52:48

标签: mootools mootools1.2

我最近为我的网站制作了一个Mootols脚本。使用Fx.Morph,我成功地创造了我的目标。但是,脚本在Internet Explorer 7和8中失败(在9中工作正常,没有费心去检查IE6)。我正在使用mootools 1.2.5。

解决问题,我可以找出以下内容

  • 我所有的问题都来自Fx.Morph,他用无效值调用setStyle
  • 不知何故,当一个元素的高度从0px变为160px时,setStyle被调用负值(例如-3px)< ----这就是IE抛出错误的地方

现在,我通过在Mootools核心的setStyle函数中执行以下操作来“修补”错误:

if((Browser.Engine.trident && value[0] == '-' && (property == 'height' || property == 'width')) || value[0] == 'N')
    value='0px';

任何人都有关于此问题的更多信息或遇到类似问题?

1 个答案:

答案 0 :(得分:0)

似乎Morph不关心是否要使用无效的属性/值组合调用setStyle,并且setStyle不关心它是否要为指定的属性设置无效值。

考虑到这一点,我的问题来自于我使用的效果。我正在使用类似“Bounce.easeIn”的东西,其元素必须从0px变为160px。然后变形将使用负值调用setStyle。

在我的情况下,将效果设置为“线性”使其按预期工作。

在我看来,Morph应该“了解”它将要执行的操作,并防止使用无效值调用setStyle。当使用不可能的属性/值调用Element.setStyle时,也应抛出错误,而不是让浏览器崩溃/处理问题。我会看看这是否已在1.3中修复,如果没有,则打开一张票。