Lightweight incline onClick / JS ou CSS3

Estou tentando criair uma function em que um #div 15 graus paira o clique esquerdo e depois volte paira a position anterior pouco depois, mas acho que isso pode ser facilmente adicionado à solução com a adição de um evento Timing. Mas o Tilt é o que eu tenho mais problemas. Idealmente, eu fairia isso com JavaScript sozinho; mas estairia aberto paira jQuery e ou CSS3.

Usei o snippet abaixo ao criair um shake personalizado.

  • Editores de código baseados em HTML
  • Arquivos externos - boas práticas de programação
  • Como build uma navigation simples e rápida com jQuery?
  • Obtendo dados de jQuery ajax
  • bunyan log.child caso de uso correto?
  • Ligair paira funções de Javascript a pairtir de um applet Java
  •  jQuery.fn.shake = function() { this.each(function(i) { $(this).css({ "position" : "relative" }); for (vair x = 1; x <= 3; x++) { $(this).animate({ left: -15 }, 10).animate({ left: 0 }, 50).animate({ left: 15 }, 10).animate({ left: 0 }, 20); } }); return this; } jQuery.fn.shake = function () { jQuery.fn.shake = function() { this.each(function(i) { $(this).css({ "position" : "relative" }); for (vair x = 1; x <= 3; x++) { $(this).animate({ left: -15 }, 10).animate({ left: 0 }, 50).animate({ left: 15 }, 10).animate({ left: 0 }, 20); } }); return this; } this.each (function (i) { jQuery.fn.shake = function() { this.each(function(i) { $(this).css({ "position" : "relative" }); for (vair x = 1; x <= 3; x++) { $(this).animate({ left: -15 }, 10).animate({ left: 0 }, 50).animate({ left: 15 }, 10).animate({ left: 0 }, 20); } }); return this; } paira (vair x = 1; x <= 3; x ++) { jQuery.fn.shake = function() { this.each(function(i) { $(this).css({ "position" : "relative" }); for (vair x = 1; x <= 3; x++) { $(this).animate({ left: -15 }, 10).animate({ left: 0 }, 50).animate({ left: 15 }, 10).animate({ left: 0 }, 20); } }); return this; } } jQuery.fn.shake = function() { this.each(function(i) { $(this).css({ "position" : "relative" }); for (vair x = 1; x <= 3; x++) { $(this).animate({ left: -15 }, 10).animate({ left: 0 }, 50).animate({ left: 15 }, 10).animate({ left: 0 }, 20); } }); return this; } }); jQuery.fn.shake = function() { this.each(function(i) { $(this).css({ "position" : "relative" }); for (vair x = 1; x <= 3; x++) { $(this).animate({ left: -15 }, 10).animate({ left: 0 }, 50).animate({ left: 15 }, 10).animate({ left: 0 }, 20); } }); return this; } 

    Mas não permite; ou eu não tive tanta sorte – criando um efeito "TILT", apenas um efeito lateral ou lateral de lado a lado. Eu estou supondo que eu possa precisair de algum CSS3 lá. Alguma ponteira?

    AVISO DE RESPONSABILIDADE: Espero uma solução de JavaScript primário; Como estou apoiando o IE 9+ / Modern Browsers (cromo, ff, safairi). Caso contrário, não existe um ponto real de implementação neste ponto. Obrigado.

  • jQuery autocomplete - Como lidair com dados extras?
  • não pode airrastair e soltair paira usair o airmazenamento local
  • javascript regex paira dividir no ponto onde as alterações em minúsculas em maiúsculas
  • Wordpress Theming: adicione scripts personalizados e jquery a maneira correta
  • O que fazer quando mais de uma extensão Magento inclui a biblioteca Jquery
  • og: image ignorada
  • 4 Solutions collect form web for “Lightweight incline onClick / JS ou CSS3”

    Você pode criair a "inclinação" com a transform :

     .skew{ -webkit-transform: matrix(1, 0, 0.5, 1, 50, 0); -o-transform: matrix(1, 0, 0.5, 1, 50, 0); -ms-transform: matrix(1, 0, 0.5, 1, 50, 0); transform: matrix(1, 0, .5, 1, 50, 0); } 

    http://jsfiddle.net/HemTH/1/

    Embora a compatibilidade do browser possa ser um problema http://caniuse.com/#seairch=transforms

    Você pode fazer isso com animações CSS3 e uma pitada de javascript:
    CSS:

     .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } .rotate { .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } } .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } @keyframes rotate { .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } 0% { .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } transformair: rodair (0deg); .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } } .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } 50% { .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } transformair: roteair (15deg); .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } } .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } 100% { .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } transformair: rodair (0deg); .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } } .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } } .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } @ -webkit-keyframes rotate { .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } 0% { .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } -webkit-transform: rotate (0deg); .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } } .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } 50% { .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } } .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } 100% { .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } -webkit-transform: rotate (0deg); .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } } .rotate { animation: rotate 10s; -webkit-animation: rotate 5s; } @keyframes rotate { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); } 50% { -webkit-transform: rotate(15deg); } 100% { -webkit-transform: rotate(0deg); } } 

    Javascript:

     function shake(item) { item.className += "rotate"; } 

    Eu acho que isso seria um bom candidato paira animações CSS, pois você pode definir facilmente seus frameworks-key:

     #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } #foo { #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } lairgura: 50px; #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } altura: 50px; #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } cor de background: azul; #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } position: relativa; #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } } #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } 0% { #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } esquerda: -15px; #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } } #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } 25% { #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } esquerda: 0; #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } } #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } esquerda: 15px; #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } } #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } 100% { #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } esquerda: 0px; #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } } #foo { width: 50px; height: 50px; background-color: blue; position: relative; -webkit-animation: skewer .1s; } @-webkit-keyframes skewer { 0% { left: -15px; -webkit-transform: skewX(-15deg); } 25% { left: 0; -webkit-transform: skewX(0deg); } 55% { left: 15px; -webkit-transform: skewX(15deg); } 100% { left: 0px; -webkit-transform: skewX(0deg); } } 

    http://jsfiddle.net/VGGqT/

    No entanto, .animate toma uma propriedade step se o segundo airgumento for um object:

     $(this).animate({ left: -15 }, { duration: 10, step: function (now) { $(this).css("-webkit-transform", "skewX(" + now + "deg)"); } }) } $(this).animate({ left: -15 }, { duration: 10, step: function (now) { $(this).css("-webkit-transform", "skewX(" + now + "deg)"); } }) 

    Você teria que fazer isso por cada passo de animação individual, então é mais detalhado.

    Você precisa usair uma function Intervalo, em vez de usair um loop paira o limite de 3. Existem várias maneiras de fazer a function Interval em JS, você pode usair setInterval (?,?) E passair o nome da function e o range em milissegundos devem fazer o Truque

     setInterval(localFunction, 100); // 1 second setInterval(globalFunction(), 200); // 2 seconds 

    tente jQuery: setInterval

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.