2010-12-08 4 views
0

최근에 내 웹 사이트 용 Mootols 스크립트를 만들었습니다. Fx.Morph를 사용하여, 내가 목표로했던 효과를 성공적으로 만들었습니다. 그러나 스크립트는 Internet Explorer 7 및 8에서 실패합니다 (9에서 정상적으로 작동하고 IE6을 확인하지 않아도 됨). mootools 1.2.5를 사용하고 있습니다. 문제를 파고Mootools 1.2.5 Element.setStyle/Morph

, 나는

  • 0 픽셀에서 요소의 높이를 모핑 동안 내 모든 문제는,
  • 어떻게 든 유효하지 않은 값의 setStyle을 호출 Fx.Morph에서 오는 다음 알아낼 수있다 IE 수행하여

지금의 경우, I는 "패치"오류를 오류 발생 위치를 160 픽셀로의 setStyle가 < (예 -3px)을 음의 값으로 호출 ----이 상기의 setStyle에서 다음과 같다 Mootools 코어의 기능 :

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

누구든지이 문제에 대해 더 많은 정보를 갖고 있습니까? 아니면 비슷한 문제가 발생 했습니까?

+0

모르 프 코드를 공유하거나 www.jsfiddle.net에서 휴식을 취하는 실례를 만드십시오. 경험치를 벗어난 IE는 잘못된 속성에 대해 잘못된 종류의 값을 얻었을 때 흔들 리게됩니다. 말하면 '안정적으로 확인할 수있는'element.setStyle ("scroll", "none");은 다른 브라우저. IE에서 부정적인 높이를 갖는 것은 나쁜 행동입니다. FYI, 이것은 jquery의 문제이기도합니다. - http://bugs.jquery.com/ticket/5588 - 테스트 케이스를 작성하면 내가 할 수있는 것을 볼 수 있습니다. –

답변

0

Morph는 잘못된 속성/값 조합으로 setStyle을 호출 할 것인지 걱정하지 않는 것 같고 setStyle은 지정된 속성에 유효하지 않은 값을 설정하려고 할 때 걱정하지 않습니다.

이 점을 염두에두고 내 문제는 내가 사용하고 있던 효과에서 비롯된 것입니다. 나는 "Bounce.easeIn"과 같은 것을 0px에서 160px로 높이를 바꾸는 요소와 함께 사용했다. 그런 다음 Morph는 음수 값으로 setStyle을 호출합니다.

필자의 경우 효과를 "선형"으로 설정하면 예상대로 작동합니다.

제 생각에는 Morph가 할 일을 "인식"하고 잘못된 값으로 setStyle을 호출하지 못하게해야합니다. Element.setStyle은 브라우저 충돌/문제 처리 대신 불가능한 속성/값으로 호출 할 때도 오류가 발생합니다. 이 문제가 1.3에서 수정되었는지 확인하고 그렇지 않은 경우 티켓을 엽니 다.

+0

일어나지 않을 것입니다. 이것은 당신이 가질 수있는 모든 가능한 속성에 가능한 모든 값의 브라우저 당 유효한 정규 표현식을 가짐을 의미합니다. 프레임 워크는 브라우저를 속일 수있는 것이 아니어야하며 API 일 뿐이며 궁극적으로 유효하고 합리적인 것들만 전달하는 것은 웹 개발자의 책임입니다. –

+0

나는 setStyle과 관련하여 귀하의 요지를 이해합니다. 그러나 음수 값의 상자를 갖는 것은 W3C에 따라 유효하지 않습니다. Morph는 잘못된 상자를 만들려고해서는 안됩니다. 나는이 시나리오에서 IE가 충돌하는 것을 이해하고 테스트 한 다른 브라우저는이를 무시합니다. 나 또한 setStyle에 "NaNpx"를 보내는 또 다른 문제가있었습니다. IE 이외의 브라우저는 불평하지 않았습니다. 필자의 의견으로는, 모든 브라우저가 충돌했을 것입니다. 이것은 분명히 중대한 오류이기 때문입니다. –

+0

문제는 대상 번호를 넘어서서 실제로 돌아 오는 탄력적 인 전환과 함께 있습니다. 그러나 전이는 보편적이며 숫자 사이를 전환하고 높이를 모핑하는 데 해당 전환의 적용은 부차적입니다. 간단히 말해서,'transition : Browser.Engine.trident && Browser.version <9?somethingelse : bouncin,'- btw 브라우저 객체가 소문자인지 또는 모자인지 확인하십시오. V –