JQuery震动对错误的影响
当用户输入错误信息时,我正在尝试将震动效果应用到我的登录页面。 此时,如果用户提交了错误的详细信息,则会刷新页面,并打印PHP通知,并通过JS显示通知div。 我正在尝试使用通知变得可见,因为识别出信息不正确并切换摇动效果。
HTML
页面重新加载时打印以下内容
Sign in unsuccessful. Try again?
JS
$('document').ready(function() { $('.notification').hide(); $('.notification').slideDown(); if ($('.notification').is(':visible')) { $('.form-container').effect( "shake" ); } });
你是否包括jQuery UI库?
如果您的页面上最初不存在通知div,您还可以使用jQuery整理一些内容。 在div的CSS或PHP echo中,您可以指定display:none; 对于通知div并使用此:
$(document).ready(function() { if ($(".notification").length) { $(".notification").slideDown("fast",function() { $(".form-container").effect("shake"); }); } });
试试这个:
function shakeElement(element){ element.addClass('shake'); setTimeout(function(){ element.removeClass('shake'); },2100); };
然后是CSS:
@-webkit-keyframes spaceboots { 0% { -webkit-transform: translate(2px, 1px) rotate(0deg); } 10% { -webkit-transform: translate(-1px, -2px) rotate(-1deg); } 20% { -webkit-transform: translate(-3px, 0px) rotate(1deg); } 30% { -webkit-transform: translate(0px, 2px) rotate(0deg); } 40% { -webkit-transform: translate(1px, -1px) rotate(1deg); } 50% { -webkit-transform: translate(-1px, 2px) rotate(-1deg); } 60% { -webkit-transform: translate(-3px, 1px) rotate(0deg); } 70% { -webkit-transform: translate(2px, 1px) rotate(-1deg); } 80% { -webkit-transform: translate(-1px, -1px) rotate(1deg); } 90% { -webkit-transform: translate(2px, 2px) rotate(0deg); } 100% { -webkit-transform: translate(1px, -2px) rotate(-1deg); } } .shake { display: inline-block; -webkit-animation-name: spaceboots; -webkit-animation-duration: 0.8s; -moz-transform-origin: 50% 50%; -ms-transform-origin: 50% 50%; -o-transform-origin: 50% 50%; -webkit-transform-origin: 50% 50%; transform-origin: 50% 50%; -webkit-animation-iteration-count: infinite; -webkit-animation-timing-function: linear }
这是一个例子:
if (!phone.length > 0) { shakeElement($signupPhoneInput); showAlert('error','Please enter your phone number.'); $signupPhoneInput.focus(); return false; }
这些事件同时发射。 您可能希望setTimeout()它们在500毫秒内触发或类似的东西。 您很可能可以使用回调来按照这样的顺序触发它们:
$('.notification').hide(250, function(){ $('.notification').slideDown(250); $('.form-container').effect('shake'); });
这是使用链接和回调来触发更具控制力的庄园中的事件。