摘要:昨天后臺(tái)小哥哥提到無法顯示問題,我這邊總結(jié)一下,順便寫個(gè)小文章分享給大家。。
**昨天后臺(tái)小哥哥提到placehold無法顯示問題,我這邊總結(jié)一下,順便寫個(gè)小文章分享給大家。。**
==============================================
一、解決ie9以下input 無placeholder問題解決方案一:jquery實(shí)現(xiàn)
當(dāng)瀏覽器不支持placeholder屬性時(shí),克隆一個(gè)和界面相同的input框,將placeholder的值設(shè)置為其value值,覆蓋在界面input框所在位置,并將界面上的input隱藏掉
調(diào)用方法:
$(#selector).placeholder();(selector泛指css 的 id選擇器)
當(dāng)文本框type=password時(shí),引用此placeholder方案會(huì)使暗文密碼變成明文密碼
如果input文本框使用了bootstrap 行高會(huì)高一點(diǎn),要修改placeholder內(nèi)的文字樣式 可在placeholder.js里中添加style屬性如:
如果是普通的input 則無需添加style屬性,
解決方案二: js/jQuery實(shí)現(xiàn)
實(shí)現(xiàn)思路:
1、首先判斷瀏覽器是否支持placeholder屬性,如果不支持則使用模擬placeholder
2、創(chuàng)建一個(gè)label標(biāo)簽:
標(biāo)簽里面的內(nèi)容為所要添加的提示文字,該文字應(yīng)該從對應(yīng)的input|textarea標(biāo)簽取得其placeholder屬性值,再將label標(biāo)簽遮蓋
到所對應(yīng)的input|textarea上
3、代碼實(shí)現(xiàn)如下:
(function (win) { win.isPlaceholer = function () { var input = document.createElement("input"); return "placeholder" in input; }; win.placeholder = function () { if (!isPlaceholer()) { var Placeholder =function (obj) { this.input = obj; var te = obj.getAttribute("placeholder"); this.label = document.createElement("label"); this.label.innerHTML = te; this.label.id = obj.id + "Label"; this.label.style.cssText = "position:absolute; text-indent:4px;color:#999999; font-size:14px;"; 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, getXY = this.getxy, xy = this.getxy(input), wh = this.getwh(input); this.setStyles(label, { "width": wh.w, "height": wh.h, "lineHeight": 40, "left": xy.left + 8, "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"; } }; if (window.attachEvent) { window.attachEvent("onresize", function () { var xy = getXY(input); Placeholder.prototype.setStyles(label, { "left": xy.left + 8, "top": xy.top }); }); } else { window.addEventListener("resize", function () { var xy = getXY(input); Placeholder.prototype.setStyles(label, { "left": xy.left + 8, "top": xy.top }); }, false); } } }; var inpColl = $("#Box input:visible");//這里是頁面上要添加placeholder支持的input //var inpColl = document.getElementsByTagName("input"), var textColl = document.getElementsByTagName("textarea");//這里是頁面上要添加placeholder支持的textarea //var lableArr = $("#Box lable"); var toArray = function (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") !== null) { new Placeholder(placeholderArr[i]); } } } }; }(window));二、解決placeholder在ios上的小坑
在蘋果高版本iPhone6、7 上發(fā)現(xiàn)了一個(gè)問題,當(dāng)設(shè)置placeholder顯示的字體大小的時(shí)候,會(huì)被遮擋掉一部分
解決方法:先設(shè)置input 里面的字體大小需要大于placeholder的字體大小
三、讓 placeholder 換行在input 里面很少用到,input就只有一行而已,多行的話就會(huì)使用textarea標(biāo)簽,確實(shí)在textarea標(biāo)簽里面如何讓placeholder換行是一個(gè)麻煩事,由于不同瀏覽器兼容性還不一樣. 這里提供一個(gè)簡單的實(shí)現(xiàn)方法
jq_watermark,一個(gè)基于jQuery的小插件,min版本才2.8KB 使用方式 導(dǎo)入jQuery,導(dǎo)入jq_watermark,
jq_watermark在github上的下載地址 給textarea 加上名為 jq_watermark 的class
原文鏈接:https://blog.csdn.net/qq_2959...
三、解決 placeholder 兼容性之修改樣式::-webkit-input-placeholder { /* WebKit, Blink, Edge */ color: #909; } :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #909; } ::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #909; } :-ms-input-placeholder { /* Internet Explorer 10-11 */ color: #909; }
========================================================================
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/53057.html
摘要:昨天后臺(tái)小哥哥提到無法顯示問題,我這邊總結(jié)一下,順便寫個(gè)小文章分享給大家。。 **昨天后臺(tái)小哥哥提到placehold無法顯示問題,我這邊總結(jié)一下,順便寫個(gè)小文章分享給大家。。** ============================================== 一、解決ie9以下input 無placeholder問題 解決方案一:jquery實(shí)現(xiàn) 當(dāng)瀏覽器不支持...
摘要:昨天后臺(tái)小哥哥提到無法顯示問題,我這邊總結(jié)一下,順便寫個(gè)小文章分享給大家。。 **昨天后臺(tái)小哥哥提到placehold無法顯示問題,我這邊總結(jié)一下,順便寫個(gè)小文章分享給大家。。** ============================================== 一、解決ie9以下input 無placeholder問題 解決方案一:jquery實(shí)現(xiàn) 當(dāng)瀏覽器不支持...
摘要:目前主流的屏幕或者。產(chǎn)生原因在中,手指按住屏幕上下拖動(dòng),會(huì)觸發(fā)事件。或者可以加入我的開發(fā)交流群相互學(xué)習(xí),我們會(huì)有專業(yè)的技術(shù)答疑解惑如果你覺得這篇文章對你有點(diǎn)用的話,麻煩請給我們的開源項(xiàng)目點(diǎn)點(diǎn)不勝感激 移動(dòng)端兼容css篇移動(dòng)端的 1px問題描述:1px 的邊框。在高清屏下,移動(dòng)端的 1px 會(huì)很粗。產(chǎn)生原因:首先先要了解一個(gè)...
摘要:解決方法用組件替換組件,用微信小程序的實(shí)現(xiàn)點(diǎn)擊切換效果除此之外,在中也不能使用組件。接口更改問題微信小程序最近被吐槽最多的一個(gè)更改,就是用戶使用開發(fā)和體驗(yàn)版時(shí)不會(huì)彈出授權(quán),正式版不受影響。 最近專門做小程序開發(fā)中,跟大家分享下遇到那些不得不處理的小坑,歡迎指正 1.小程序用 WxParse 在手機(jī)上不能正確解析 html 代碼并顯示 解決辦法: 這個(gè)是 wxparse 代碼的一個(gè)...
摘要:解決方法用組件替換組件,用微信小程序的實(shí)現(xiàn)點(diǎn)擊切換效果除此之外,在中也不能使用組件。接口更改問題微信小程序最近被吐槽最多的一個(gè)更改,就是用戶使用開發(fā)和體驗(yàn)版時(shí)不會(huì)彈出授權(quán),正式版不受影響。 最近專門做小程序開發(fā)中,跟大家分享下遇到那些不得不處理的小坑,歡迎指正 1.小程序用 WxParse 在手機(jī)上不能正確解析 html 代碼并顯示 解決辦法: 這個(gè)是 wxparse 代碼的一個(gè)...
閱讀 3772·2021-11-23 09:51
閱讀 4385·2021-11-15 11:37
閱讀 3522·2021-09-02 15:21
閱讀 2745·2021-09-01 10:31
閱讀 878·2021-08-31 14:19
閱讀 851·2021-08-11 11:20
閱讀 3307·2021-07-30 15:30
閱讀 1688·2019-08-30 15:54