最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js模仿html5 placeholder適應(yīng)于不支持的瀏覽器

 更新時間:2013年01月13日 13:30:08   作者:  
html5原生支持placeholder,對于不支持的瀏覽器(ie)可用js模擬實現(xiàn),不要走開,接下來為您詳細介紹實現(xiàn)方法
html5原生支持placeholder,對于不支持的瀏覽器(ie),可用js模擬實現(xiàn)。
js代碼
復(fù)制代碼 代碼如下:

(function(){
//判斷是否支持placeholder
function isPlaceholer(){
var input = document.createElement('input');
return "placeholder" in input;
}
//不支持的代碼
if(!isPlaceholer()){
//創(chuàng)建一個類
function Placeholder(obj){
this.input = obj;
this.label = document.createElement('label');
this.label.innerHTML = obj.getAttribute('placeholder');
this.label.style.cssText = 'position:absolute; text-indent:4px;color:#999999; font-size:12px;';
if(obj.value != ''){
this.label.style.display = 'none';
}
this.init();
}
Placeholder.prototype = {
//取位置
getxy : function(obj){
var left, top;
if(document.documentElement.getBoundingClientRect){
var html = document.documentElement,
body = document.body,
pos = obj.getBoundingClientRect(),
st = html.scrollTop || body.scrollTop,
sl = html.scrollLeft || body.scrollLeft,
ct = html.clientTop || body.clientTop,
cl = html.clientLeft || body.clientLeft;
left = pos.left + sl - cl;
top = pos.top + st - ct;
}
else{
while(obj){
left += obj.offsetLeft;
top += obj.offsetTop;
obj = obj.offsetParent;
}
}
return{
left: left,
top : top
}
},
//取寬高
getwh : function(obj){
return {
w : obj.offsetWidth,
h : obj.offsetHeight
}
},
//添加寬高值方法
setStyles : function(obj,styles){
for(var p in styles){
obj.style[p] = styles[p]+'px';
}
},
init : function(){
var label = this.label,
input = this.input,
xy = this.getxy(input),
wh = this.getwh(input);
this.setStyles(label, {'width':wh.w, 'height':wh.h, 'lineHeight':20, 'left':xy.left, 'top':xy.top});
document.body.appendChild(label);
label.onclick = function(){
this.style.display = "none";
input.focus();
}
input.onfocus = function(){
label.style.display = "none";
};
input.onblur = function(){
if(this.value == ""){
label.style.display = "block";
}
};
}
}
var inpColl = document.getElementsByTagName('input'),
textColl = document.getElementsByTagName('textarea');
//html集合轉(zhuǎn)化為數(shù)組
function toArray(coll){
for(var i = 0, a = [], len = coll.length; i < len; i++){
a[i] = coll[i];
}
return a;
}
var inpArr = toArray(inpColl),
textArr = toArray(textColl),
placeholderArr = inpArr.concat(textArr);
for (var i = 0; i < placeholderArr.length; i++){
if (placeholderArr[i].getAttribute('placeholder')){
new Placeholder(placeholderArr[i]);
}
}
}
})()

html代碼
復(fù)制代碼 代碼如下:

<div>
<input type="text" placeholder="提示1" /><br>
<textarea placeholder="提示2" /></textarea><br>
<input type="text" placeholder="提示3" /><br>
</div>

css代碼
復(fù)制代碼 代碼如下:

div,input,textarea{ margin:0; padding:0;}
div{width:400px; margin:100px auto 0;}
input,textarea{width:200px;height:20px; margin-top:5px;line-height:20px;border:1px #666666 solid; background-color:#fff; padding-left:2px;}
textarea{ height:60px; font-size:12px; resize:none;}

相關(guān)文章

  • JavaScript?split()方法定義及更多實例

    JavaScript?split()方法定義及更多實例

    這篇文章主要給大家介紹了關(guān)于JavaScript?split()方法定義及更多實例的相關(guān)資料,js里的split()方法大家都知道用于將字符串轉(zhuǎn)化為字符串?dāng)?shù)組,文中通過代碼實例介紹的非常詳細,需要的朋友可以參考下
    2024-03-03
  • ES6中Set和Map數(shù)據(jù)結(jié)構(gòu)的簡單講解

    ES6中Set和Map數(shù)據(jù)結(jié)構(gòu)的簡單講解

    大家心里是否產(chǎn)生過這樣的疑問,JS中既然已經(jīng)有對象這種數(shù)據(jù)結(jié)構(gòu),我們?yōu)槭裁催€要再單獨去使用Set或者Map呢?下面這篇文章主要給大家介紹了關(guān)于ES6中Set和Map數(shù)據(jù)結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 如何通過JavaScript、css、H5實現(xiàn)簡單的tab欄切換和復(fù)用功能

    如何通過JavaScript、css、H5實現(xiàn)簡單的tab欄切換和復(fù)用功能

    tab切換在項目中也算是常用技術(shù),一般實現(xiàn)tab切換都用js或者jq實現(xiàn),下面這篇文章主要給大家介紹了關(guān)于如何通過JavaScript、css、H5實現(xiàn)簡單的tab欄切換和復(fù)用功能的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • v3-admin-vite 整合pont的詳細過程

    v3-admin-vite 整合pont的詳細過程

    這篇文章主要介紹了v3-admin-vite 整合pont的詳細過程,目前后端的Admin模板使用的是v3-admin-vite,需要整合pont接口,方便前后端統(tǒng)一一體化開發(fā),本文給大家介紹的非常詳細,需要的朋友可以參考下
    2024-03-03
  • Javascript實現(xiàn)鼠標(biāo)點擊冒泡特效

    Javascript實現(xiàn)鼠標(biāo)點擊冒泡特效

    這篇文章主要為大家詳細介紹了Javascript實現(xiàn)鼠標(biāo)點擊冒泡特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Javasipt:操作radio標(biāo)簽詳解

    Javasipt:操作radio標(biāo)簽詳解

    本篇文章主要介紹了Javasipt:操作radio標(biāo)簽。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • 詳解webpack4多入口、多頁面項目構(gòu)建案例

    詳解webpack4多入口、多頁面項目構(gòu)建案例

    這篇文章主要介紹了詳解webpack4多入口、多頁面項目構(gòu)建案例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • JS實現(xiàn)彈幕小案例

    JS實現(xiàn)彈幕小案例

    這篇文章主要為大家詳細介紹了JS實現(xiàn)彈幕小案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • js在HTML的三種引用方式詳解

    js在HTML的三種引用方式詳解

    這篇文章主要介紹了js在HTML的三種引用方式詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • uniapp微信小程序打卡功能的詳細實現(xiàn)流程

    uniapp微信小程序打卡功能的詳細實現(xiàn)流程

    最近因為工作需要,搭建了一個加班打卡的小程序,下面這篇文章主要給大家介紹了關(guān)于uniapp微信小程序打卡功能的詳細實現(xiàn)流程,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12

最新評論

崇义县| 梓潼县| 崇明县| 永年县| 正定县| 江川县| 双江| 汨罗市| 修文县| 云安县| 闻喜县| 绍兴县| 开封市| 邳州市| 南皮县| 砀山县| 盱眙县| 项城市| 乐平市| 南京市| 米泉市| 婺源县| 邮箱| 桑日县| 中方县| 五家渠市| 三亚市| 家居| 新密市| 江川县| 鸡东县| 溆浦县| 突泉县| 高平市| 鄂伦春自治旗| 黎川县| 石柱| 邛崃市| 包头市| 新平| 兴义市|