Ei, estou tentando exibir capturas de tela de um aplicativo do iPhone através de um fundo de rolagem usando jQuery. O código que eu escrevi funciona perfeitamente no FF amp Safari, mas o IE lança um erro de argumento inválido. / EDIT: Eu pensei em adicionar o que o IE faz quando falha. Ele salta para a segunda tela e lança o erro. Todos os outros navegadores animam suavemente, mas o IE não anima, ele simplesmente salta para a segunda tela e depois lança o erro. Eu não consegui fazer isso funcionar no IE8 usando apenas o jQuery. Aparentemente, há um bug com animações de posição de fundo jQuery no IE. Surpresa, surpresa IE tem problemas com algo que funciona em todos os outros navegadores modernos. Não se preocupe, eu encontrei uma correção. Incluiu este script depois de incluir o jQuery e resolverá o problema. Eu tentei encontrar um link oficial para o plugin, mas desisti de encontrar um atualizado um tão mal apenas postar o arquivo: O código agora funciona perfeitamente no IE8. Eu não me preocupei em testar no IE7 porque apenas 13 do meu tráfego vem do IE, então eu não vou me preocupar em suportar versões mais antigas. Demasiada dor de cabeça. O que você precisa para fazer animações mais complexas do que os fades e slides, então você provavelmente encontrou a função animate jQuery. A função animate permite um pouco mais de flexibilidade do que apenas usar fadeOut ou slideDown. De fato, os desvanece-se e os slides normalmente usados envolvem chamadas para animar. Se você já olhou para os documentos do jQuery animate em api. jquery você deve ter notado que um dos argumentos opcionais que você pode definir é o passo que é definido como: Uma função a ser chamada após cada passo da animação. 8230e that8217s isso. Se você procurar por 8220step8221 na página, você não verá outra menção a ele. Felizmente, uma pesquisa rápida no Google para 8220jquery animar step8221 produzirá as notas de lançamento do jQuery 1.2 que lançam um pouco de luz sobre a função step: Agora você pode estender as animações jQuery com uma função que é disparada em cada etapa da animação que altera a estilo do elemento sendo animado. Pode ser estendido para propriedades css específicas ou até mesmo para criar um tipo de animação personalizado. Por exemplo, você pode passar uma função de etapa extra para. animate () para executar ações como a sincronização de animação. As notas de lançamento também contêm um exemplo de código: Então, agora sabemos que a etapa de argumentos leva: agora e fx. Podemos também dizer a partir do código que agora contém o valor que está sendo animado. fx. no entanto, ainda é um pouco misterioso. Podemos resolver esse mistério executando o código acima no Firebug. definir um ponto de interrupção quando a função de etapa é chamada e, em seguida, inspecionar os objetos fx e now. Aqui estão os resultados dessa operação: Eu sou o incrível plugin SVG jQuery com a extensão de animação para um jogo baseado em navegador. Quando o personagem anda, a câmera o segue. No momento eu apenas faço um pan em grandes partes com este código: svg. configure () Então eu preciso fazer uma animação customizada. Aqui está o que eu tenho até agora. Função jQuery. fx. step. panX (fx) fx. elem. setAttribute (39viewBox39, fx. now39 39y39 39width39 39height) svg. animate (, 100) Como você pode ver, ele só funciona para o eixo x. Como faço para animar mais de uma variável de cada vez Obrigado pela ajuda. Respostas (2) Fiz alguns progressos, mas agora obtenho este zoom sempre que tento deslocar. Função jQuery. fx. step. pan (fx) if (fx. state 0) fx. end fx. options. curAnim. pan fx. start fx. elem. attributes. getNamedItem (39viewBox39).nodeValue. split (39 39) fx. dist fx. end. map (função (val, i)) status (fx. dist) fx. elem. setAttribute (39viewBox39, fx. dist. map (função (val) fx. pos val).join (39 39) ) pan x, y, map. view. width, map. view. height. map (função (val)) (39svg39).animate (,) Ei, pessoal. Eu gostaria apenas de informar que resolvi o problema e está funcionando perfeitamente agora. A versão anterior tinha dois bugs. Os valores em fx. start foram strings e não números, então eles são convertidos com parseFloat. O outro problema foi que eu esqueci de adicionar os valores iniciais ao definir o atributo. Aqui está a extensão final. Função jQuery. fx. step. pan (fx) if (fx. state 0) fx. end fx. options. curAnim. pan fx. start fx. elem. attributes. getNamedItem (39viewBox39).nodeValue. split (39 39). map (parseFloat) fx. dist fx. end. map (função (val, i)) fx. elem. setAttribute (39viewBox39, fx. dist. map (função (val, i) (fx. starti fx. pos val)).join (39 39)) Vez
No comments:
Post a Comment