摘要:方法一效果預(yù)覽思路是,首先判斷瀏覽器是否支持屬性,如果不支持的話(huà),就遍歷所有輸入框,獲取屬性的值填充進(jìn)輸入框作為提示信息,同時(shí)字體設(shè)置成灰色。
placeholder是HTML5的屬性之一,在不同的瀏覽器( 支持HTML5的現(xiàn)代瀏覽器 )中會(huì)有略微不同的顯示效果:
在Chrome( v31.0.1650.63 m)、Firefox( v21.0 )、360安全( v6.3 極速模式 )中,輸入欄獲得焦點(diǎn)后,提示文字并不消失,如圖( Chrome ):
也就是說(shuō)獲得焦點(diǎn)時(shí)提示的文字會(huì)消失。
非現(xiàn)代瀏覽器( 例如 IE6-IE9 )是不支持placeholder屬性的?,F(xiàn)在用jQuery來(lái)使這些非現(xiàn)代瀏覽器也同樣能能實(shí)現(xiàn)placeholder的顯示效果,第一種方法實(shí)現(xiàn)的是IE11這種效果,也就是輸入框獲得焦點(diǎn)時(shí)提示文字會(huì)消失;如果要想獲得類(lèi)似Chrome的效果,即輸入框獲得焦點(diǎn)時(shí)提示文字并不消失,可以使用第二種方法。
方法一
效果預(yù)覽:
http://jsfiddle.net/L57b25yr/...
思路是,首先判斷瀏覽器是否支持placeholder屬性,如果不支持的話(huà),就遍歷所有input輸入框,獲取placeholder屬性的值填充進(jìn)輸入框作為提示信息,同時(shí)字體設(shè)置成灰色。
當(dāng)輸入框獲得焦點(diǎn)( focus )同時(shí)輸入框內(nèi)文字等于設(shè)置的提示信息時(shí),就把輸入框內(nèi)清空;
當(dāng)輸入框失去焦點(diǎn)( blur )同時(shí)輸入框內(nèi)文字為空時(shí),再把獲取的placeholder屬性的值填充進(jìn)輸入框作為提示信息,同時(shí)字體設(shè)置成灰色;
當(dāng)輸入框內(nèi)有輸入( keydown )時(shí),此時(shí)輸入框內(nèi)的提示信息已經(jīng)由focus事件清除,此時(shí)只需要把字體再恢復(fù)成黑色即可。
此方法的缺點(diǎn)是,不適用于加載完DOM時(shí)即獲得焦點(diǎn)的輸入框,因?yàn)樵谟脩?hù)的角度,加載完頁(yè)面時(shí)看到的獲得焦點(diǎn)的那個(gè)輸入框,它的提示文字是看不到的。
HTML:
CSS:
.phcolor{ color:#999;}
JS:
$(function(){ //判斷瀏覽器是否支持placeholder屬性 supportPlaceholder="placeholder"in document.createElement("input"), placeholder=function(input){ var text = input.attr("placeholder"), defaultValue = input.defaultValue; if(!defaultValue){ input.val(text).addClass("phcolor"); } input.focus(function(){ if(input.val() == text){ $(this).val(""); } }); input.blur(function(){ if(input.val() == ""){ $(this).val(text).addClass("phcolor"); } }); //輸入的字符不為灰色 input.keydown(function(){ $(this).removeClass("phcolor"); }); }; //當(dāng)瀏覽器不支持placeholder屬性時(shí),調(diào)用placeholder函數(shù) if(!supportPlaceholder){ $("input").each(function(){ text = $(this).attr("placeholder"); if($(this).attr("type") == "text"){ placeholder($(this)); } }); } });
經(jīng)過(guò)測(cè)試可以達(dá)到IE11placeholder的顯示效果。
方法二
此方法的思路是做一張含有提示文字的圖片作為input輸入框的背景圖,初始時(shí)獲得焦點(diǎn)同時(shí)加載背景圖;
背景圖如下:
當(dāng)輸入框不為空時(shí),去掉背景圖;
當(dāng)輸入框?yàn)榭諘r(shí),加載背景圖;
當(dāng)用戶(hù)鍵盤(pán)按鍵且輸入框不為空( 輸入字符 )時(shí),去掉背景圖;
當(dāng)用戶(hù)鍵盤(pán)按鍵且輸入框?yàn)榭? 刪除字符 )時(shí),加載背景圖。
此方法的缺點(diǎn)是:需要為每一個(gè)提示文字不同的input制作背景圖片,并且設(shè)置input的樣式。
HTML代碼不變。
CSS:
.phbg{ background:url(img/bg.jpg) 0 0 no-repeat;}
JS:
$(function(){ //判斷瀏覽器是否支持placeholder屬性 supportPlaceholder="placeholder" in document.createElement("input"); if(!supportPlaceholder){ //初始狀態(tài)添加背景圖片 $("#uname").attr("class","phbg"); //初始狀態(tài)獲得焦點(diǎn) $("#uname").focus; function destyle(){ if($("#uname").val() != ""){ $("#uname").removeClass("phbg"); }else{ $("#uname").attr("class","phbg"); } } //當(dāng)輸入框?yàn)榭諘r(shí),添加背景圖片;有值時(shí)去掉背景圖片 destyle(); $("#uname").keyup(function(){ //當(dāng)輸入框有按鍵輸入同時(shí)輸入框不為空時(shí),去掉背景圖片;有按鍵輸入同時(shí)為空時(shí)(刪除字符),添加背景圖片 destyle(); }); $("#uname").keydown(function(){ //keydown事件可以在按鍵按下的第一時(shí)間去掉背景圖片 $("#uname").removeClass("phbg"); }); } });
此方法至此結(jié)束。
此方法在IETester的IE8下顯示效果:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/82423.html
摘要:經(jīng)過(guò)不斷的嘗試和參考別的產(chǎn)品在下兼容處理。我整理下,具體見(jiàn)下兼容處理通過(guò)處理時(shí)和時(shí)來(lái)控制文本的顯示和隱藏。其中關(guān)鍵的時(shí)和。在父子元素中生效,需要在父級(jí)元素設(shè)置手機(jī)號(hào)郵箱密碼希望能夠?qū)Υ蠹矣袔椭? 寫(xiě)在前面 由于公司的產(chǎn)品需要兼容 IE8 瀏覽器,在做登陸時(shí),發(fā)現(xiàn)一個(gè)問(wèn)題,placeholder 在input = text 情況下,顯示還算正常,但在 input = password 就...
摘要:經(jīng)過(guò)不斷的嘗試和參考別的產(chǎn)品在下兼容處理。我整理下,具體見(jiàn)下兼容處理通過(guò)處理時(shí)和時(shí)來(lái)控制文本的顯示和隱藏。其中關(guān)鍵的時(shí)和。在父子元素中生效,需要在父級(jí)元素設(shè)置手機(jī)號(hào)郵箱密碼希望能夠?qū)Υ蠹矣袔椭? 寫(xiě)在前面 由于公司的產(chǎn)品需要兼容 IE8 瀏覽器,在做登陸時(shí),發(fā)現(xiàn)一個(gè)問(wèn)題,placeholder 在input = text 情況下,顯示還算正常,但在 input = password 就...
摘要:經(jīng)過(guò)不斷的嘗試和參考別的產(chǎn)品在下兼容處理。我整理下,具體見(jiàn)下兼容處理通過(guò)處理時(shí)和時(shí)來(lái)控制文本的顯示和隱藏。其中關(guān)鍵的時(shí)和。在父子元素中生效,需要在父級(jí)元素設(shè)置手機(jī)號(hào)郵箱密碼希望能夠?qū)Υ蠹矣袔椭? 寫(xiě)在前面 由于公司的產(chǎn)品需要兼容 IE8 瀏覽器,在做登陸時(shí),發(fā)現(xiàn)一個(gè)問(wèn)題,placeholder 在input = text 情況下,顯示還算正常,但在 input = password 就...
input標(biāo)簽placeholder 1.input里面的placeholder屬性,在pc端用的特別好,但是萬(wàn)惡的ie8,placeholder竟然不支持。于是找到一種方法解決在ie8中placeholder無(wú)效的事 $(function() { // 如果不支持placeholder,用jQuery來(lái)完成 if(!isSupportPlaceholder()) { ...
閱讀 881·2021-10-25 09:45
閱讀 3308·2021-09-22 14:58
閱讀 3862·2021-08-31 09:43
閱讀 928·2019-08-30 15:55
閱讀 930·2019-08-29 13:51
閱讀 1238·2019-08-29 13:02
閱讀 3495·2019-08-29 12:52
閱讀 1969·2019-08-26 13:27