Как я могу сделать следующую анимацию для своих форм?
(Я решил вместо того, чтобы вводить его, я бы создал визуальную.)
Как я могу сделать следующую анимацию для своих форм?
(Я решил вместо того, чтобы вводить его, я бы создал визуальную.)
Здесь идея Энди утончена с горизонтальным центрированием.
HTML:
<form><div id="message"></div>
<input> Label 1<br/><br/>
<input> Label 2<br/><br>
<textarea>Larger text area</textarea><br/><br/>
<textarea>And another</textarea><br/><br/>
<button type="button">Submit</button>
CSS
form {
position:relative;
width:500px;}
#message {
position:absolute;
display:none;
height:100px;
width:200px;
border: 1px gray solid;
background-color:lime;
font-size: 1.4em;
line-height:100px;
text-align:center;
border-radius: 5px;
bottom: 100px;}
Функция центрирования:
(function($) {
$.fn.extend({
center: function() {
return this.each(function() {
var left = ($(window).width() - $(this).outerWidth()) / 2;
$(this).css({
position: 'absolute',
margin: 0,
left: (left > 0 ? left : 0) + 'px'
});
});
}
});})(jQuery);
Call-центр:
$("#message").center();
Нажмите функцию:
$("button").click(function() {
var msg = $("#message");
msg.text("Item saved!")
msg.hide()
msg.stop(true, true).fadeIn('slow').animate({
"bottom": "4px",
"height": "17px",
"font-size": "1em",
"left": "80px",
"line-height": "17px",
"width": "100px"
}).delay(2000).fadeOut('slow').css({
"height": "100px",
"width": "200px",
"font-size": "1.4em",
"line-height": "100px",
"bottom": "100px"
}).center();});
Я собрал для вас доказательство концепции, используя jsFiddle:
http://jsfiddle.net/kAhXd/1/ (теперь анимация сбрасывается, нажмите кнопку отправки)
Вам нужно хорошо взглянуть на CSS, но важно отметить, что позиция элемента <form>
установлена на относительную, а позиция элемента сообщения установлена в абсолютную. Это необходимо для того, чтобы позиция элемента сообщения всегда относилась к элементу формы.
HTML
<form><div id="message"></div>
<input> Label 1<br/><br/>
<input> Label 2<br/><br>
<textarea>Larger text area</textarea><br/><br/>
<textarea>And another</textarea><br/><br/>
<button type="button">Submit</button>
</form>
CSS
form { position:relative; width:500px; }
#message {
position:absolute;
display:none;
height:100px;
width:200px;
border: 1px gray solid;
background-color:lime;
font-size: 1.4em;
line-height:100px;
text-align:center;
left: 150px;
bottom:100px;
border-radius: 5px;
}
JavaScript
$("button").click(function () {
var msg = $("#message");
msg[0].style.cssText = "";
msg.text("Item saved!");
msg.fadeIn('slow').animate({
"bottom": "3px",
"height": "17px",
"font-size": "1em",
"left": "80px",
"line-height": "17px",
"width": "100px"
});
});
Я бы использовал jQuery. Здесь шаги, которые я предприму, чтобы приблизиться к этому:
<form>
и <input>
.<div id="item_saved">Item Saved!</div>
и по умолчанию будет display:none
.Обновление: Отредактировано для предоставления дополнительной информации и более прямого ответа на вопрос.