html5里不占位隐藏,HTML5占位符在焦点上消失

这篇博客介绍了一种使用jQuery创建的插件,用于在不支持placeholder属性的浏览器中模拟该功能。作者StefanoJ.Attardi的插件在输入框获得焦点时会淡化显示占位符文本,提供更好的用户体验。代码示例包括了插件的实现和CSS样式,适用于前端开发者增强表单输入的交互效果。
摘要由CSDN通过智能技术生成

z50OW.png

Stefano J. Attardi写了一个很棒的jQuery插件,就是这样做的

它比罗伯特更稳定,并且当场地聚焦时也会变淡。“

我修改了他的插件以阅读placeholder属性,而不是手动创建span

This fiddle有完整的代码:

HTML

JS

// Original code by Stefano J. Attardi, MIT license

(function($) {

function toggleLabel() {

var input = $(this);

if (!input.parent().hasClass('placeholder')) {

var label = $('').addClass('placeholder');

input.wrap(label);

var span = $('');

span.text(input.attr('placeholder'))

input.removeAttr('placeholder');

span.insertBefore(input);

}

setTimeout(function() {

var def = input.attr('title');

if (!input.val() || (input.val() == def)) {

input.prev('span').css('visibility', '');

if (def) {

var dummy = $('').text(def).css('visibility','hidden').appendTo('body');

input.prev('span').css('margin-left', dummy.width() + 3 + 'px');

dummy.remove();

}

} else {

input.prev('span').css('visibility', 'hidden');

}

}, 0);

};

function resetField() {

var def = $(this).attr('title');

if (!$(this).val() || ($(this).val() == def)) {

$(this).val(def);

$(this).prev('span').css('visibility', '');

}

};

var fields = $('input, textarea');

fields.live('mouseup', toggleLabel); // needed for IE reset icon [X]

fields.live('keydown', toggleLabel);

fields.live('paste', toggleLabel);

fields.live('focusin', function() {

$(this).prev('span').css('color', '#ccc');

});

fields.live('focusout', function() {

$(this).prev('span').css('color', '#999');

});

$(function() {

$('input[placeholder], textarea[placeholder]').each(

function() { toggleLabel.call(this); }

);

});

})(jQuery);

CSS

.placeholder {

background: white;

float: left;

clear: both;

}

.placeholder span {

position: absolute;

padding: 5px;

margin-left: 3px;

color: #999;

}

.placeholder input, .placeholder textarea {

position: relative;

margin: 0;

border-width: 1px;

padding: 6px;

background: transparent;

font: inherit;

}

/* Hack to remove Safari's extra padding. Remove if you don't care about pixel-perfection. */

@media screen and (-webkit-min-device-pixel-ratio:0) {

.placeholder input, .placeholder textarea { padding: 4px; }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值