Introdução
Nos últimos dois anos, mais e mais amigos para desenvolvimento web móvel têm usado o transformjs, Para permitir que mais pessoas se beneficiem, melhorem a eficiência da programação e aproveitem a diversão da programação. (é claro, o transformjs não suporta apenas dispositivos móveis, mas também o navegador 3D Transforms CSS3 pode normalmente usar transformjs)
Entrada
Home Page :http://alloyteam.github.io/AlloyTouch/transformjs/
Github :https://github.com/AlloyTeam/AlloyTouch/tree/master/transformjs
Instalar
npm install css3transform
API
Transform(domElement, [notPerspective]);
Por meio de uma linha de chamadas de código acima, você pode definir ou obter o domElement “translateX”, “translateY”, “translateZ”, “scaleX”, “scaleY”, “scaleZ”, “rotateX”, “rotateY”, “rotateZ “,” skewX “,” skewY “,” originX “,” originY “,” originZ “!
Tão fácil!
Uso
Transform(domElement);//or Transform(domElement, true);
//set "translateX", "translateY", "translateZ", "scaleX", "scaleY", "scaleZ", "rotateX", "rotateY", "rotateZ", "skewX", "skewY", "originX", "originY", "originZ"
domElement.translateX = 100;
domElement.scaleX = 0.5;
domElement.originX = 50;
//get "translateX", "translateY", "translateZ", "scaleX", "scaleY", "scaleZ", "rotateX", "rotateY", "rotateZ", "skewX", "skewY", "originX", "originY", "originZ"
console.log(domElement.translateX )
Problemas de programação CSS3
Anteriormente, geralmente usamos o método animate de zepto / jQuery, animate.css ou tween.js + css3 para desenvolver os efeitos interativos. Existem três desvantagens:
– não intuitivo
– não diretamente
– não conveniente
não intuitivo
Olhe para a foto abaixo:
A ordem afetará os resultados, não intuitivos. por que esse é o resultado? compare as matrizes finais por novo WebKitCSSMatrix (transform_str).
Também mostra diretamente que a matriz não está em conformidade com a lei de comutação. A B! = B A
Não diretamente
zepto :
$("#some_element").animate({
opacity: 0.25, left: '50px',
color: '#abcdef',
rotateZ: '45deg', translate3d: '0,10px,0'
}, 500, 'ease-out')
translate3d: ‘0,10px, 0’ é muito inconveniente, não pode escalonar o controle descendente progressivo. Sem contar com algum tempo de biblioteca para programar. Você pode argumentar que ‘cessar’ não dá certo? Mas se eu precisar fazer X e y e Z, respectivamente, correspondentes a diferentes funções de atenuação, que se baseiam na forma de uma string de programação na forma de disco rígido.
Aqui também preciso prestar atenção é que a ordem no zepto também afetará os resultados.
tween.js
“ `js
var position = {x: 100, y: 100, rotação: 0},
target = document.getElementById (‘target’);
new TWEEN.Tween(position)
.to({ x: 700, y: 200, rotation: 359 }, 2000)
.delay(1000)
.easing(TWEEN.Easing.Elastic.InOut)
.onUpdate(function update() {
var t_str= 'translateX(' + position.x + 'px) translateY(' + position.y + 'px) rotate(' + Math.floor(position.rotation) + 'deg)';
element.style.transform = element.style.msTransform = element.style.OTransform = element.style.MozTransform = element.style.webkitTransform = t_str;
});
The way to use a string is too hard.
animate.css
```css
@keyframes pulse {
from {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1);
}
50% {
-webkit-transform: scale3d(1.05, 1.05, 1.05);
transform: scale3d(1.05, 1.05, 1.05);
}
to {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1);
}
}
O Animate.css empacota uma grande quantidade de animação de quadro chave, os desenvolvedores só precisam adicionar ou remover a classe de animação relevante. Isso, em certa medida, para os efeitos de interação trouxe grande travessia, mas tem um contratempo:
– a programação não é alta o suficiente.
– aplica-se a cenas simples
– não altera o retorno de chamada, apenas termina o retorno de chamada
Não é conveniente
O ponto de rotação da transformação é o ponto padrão no centro, mas às vezes, não no centro do sistema, nossa abordagem tradicional é usar a origem da transformação para definir o benchmark.
Observe que é outro atributo transform-origin, não transform. Mas e se você precisar exercitar a origem da transformação? Este projeto não está no lixo? Não há necessidade de animar a origem? Este é o design do jogo é frequentemente usado, este é o começo de outra palavra separada, o fato é que há uma cena é a necessidade de animar a origem para alcançar algum tipo de efeito.
transformjs
Com base em todos os tipos de inconvenientes acima, comece a usar o transformjs!
- transformjs como uma das ferramentas de desenvolvimento móvel Tencent AlloyTeam, amplamente utilizado na mão Web Q, desenvolvimento de negócios relacionados à Web WeChat
- transformjs se concentra em transformar CSS3 para ler e configurar uma biblioteca JS ultraleve, o que melhora muito a transformação programável de CSS3
- transformjs é altamente abstrato e não está vinculado a nenhuma estrutura de tempo, portanto, pode ser facilmente usado com qualquer tempo e com um mundo de quadro móvel.
- transformjs usa o matrix3d como saída final para o objeto DOM, ele tem aceleração de hardware e não perde o programável
- O transformjs tem uma API super fácil, um minuto para começar facilmente, dois minutos para incorporar um projeto de combate real
- transformjs estende a capacidade da própria transformação, certo! é originX, originY e originZ!
Comece a usá-lo:
Home Page :http://alloyteam.github.io/AlloyTouch/transformjs/
Github :https://github.com/AlloyTeam/AlloyTouch/tree/master/transformjs