Перейти к содержанию

Подсказка внутри Input на jQuery

ArtemPitov

318 просмотров

Простая реализация подсказки внутри input-a

 

Demo

 

HTML

<div class="inputer">
	<label>Название</label>
	<input type="text" name="">	
</div>

CSS

	.inputer {
		border: 1px solid #ddd;
		position: relative;
		display: block;
		width: 100%;
		max-width: 350px;
		border-radius: 4px;
		overflow: hidden;
	}

	.inputer label {
		position: absolute;
		top: 40%;
		left: 5px;
		opacity: 0;
		transition: all .1s linear;
		visibility: hidden;
		font-size: 12px;
		-webkit-user-select: none;
		   -moz-user-select: none;
		    -ms-user-select: none;
		     -o-user-select: none;
		        user-select: none;
	}

	.inputer label,
	.inputer input::placeholder {
		color: #777;
		font-weight: bold;
		opacity: .8;
	}

	.inputer.active label {
		opacity: 1;
		top: 2px;
		visibility: visible;
		font-size: 11px;
		opacity: .8;
	}

	.inputer.active input {
		padding: 16px 5px 2px !important;
	}

	.inputer input,
	.inputer input:hover,
	.inputer input:focus,
	.inputer input:active {
		box-shadow: none;
		outline: none;
		border:none;
		border-radius: 0; 
		display: block;
		width: 100%;
		padding: 9px 5px;
		font-size: 12px;
	} 

JS

	let inputerFn = (el) => 
	{
		let $el = $(el);
		$el.parent().toggleClass('active', $el.val().length > 0);	
	};

	$('.inputer input').each(function (idx, el) {
		let $el = $(el);
		$el.attr('placeholder', $el.siblings('label').text());
		
		inputerFn(el);
	}).on('input', function () {
		inputerFn(this);		
	});

 

  • +1 2


2 Комментария


Рекомендуемые комментарии

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.