js模仿html5的placeholder,适应于不支持的浏览器
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
(function(){ //判断是否支持placeholder function isPlaceholer(){ var input = document.createElement('input'); return "placeholder" in input; } //不支持的代码 if(!isPlaceholer()){ //创建一个类 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集合转化为数组 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]); } } } })()
使用:放在一个js文件里面,在页面引用即可。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2014年6月23日 11:14:29 星期一
相关推荐
以上代码完成了在不支持`placeholder`的浏览器上模拟HTML5`placeholder`的效果。这种方法确保了无论用户使用哪种浏览器,都能看到与HTML5原生`placeholder`相似的提示文本。请注意,实际应用中可能需要考虑更多的...
通过这些步骤,我们可以实现一个基本的JavaScript页面查找功能,模仿浏览器的Ctrl+F行为。在实际项目中,可能还需要考虑性能优化、错误处理、兼容性等问题。记得在`JS实现页面查找.htm`文件中查看具体实现细节,以...
2. **多媒体支持**:HTML5提供了原生的音频()和视频()标签,不再依赖Flash等外部插件,简化了多媒体元素的嵌入,同时也支持跨平台播放。 3. **Canvas绘图**:HTML5的元素提供了一个画布,通过JavaScript可以进行...
这个压缩包"JavaScript模仿百度搜索框输入文字删除特效源码.zip"包含了实现这一功能的代码资源,主要涉及JavaScript、HTML和CSS等技术。以下是关于这一特效的详细知识点: 1. **HTML结构**: - 搜索框通常由`...
6. **跨浏览器兼容性**:考虑到不同的浏览器对某些CSS属性和JS特性支持程度不同,需要进行兼容性测试。 7. **用户体验**:添加合适的提示信息,如placeholder文本,以及合理的键盘焦点管理,提高用户体验。 8. **...
【仿163邮箱登录页面】是一个常见的前端开发练习,主要目标是模仿163邮箱的登录界面,以便学习和掌握网页布局、样式设计以及交互实现等技能。在这个项目中,我们将关注三个主要方面:HTML结构(div标签)、CSS样式...
它利用 HTML5 的 canvas 元素来绘制图形,对于那些不支持 canvas 的浏览器(如旧版的 Internet Explorer),Flot 还提供了一个名为 FlashVML 的备选方案,确保了跨平台的兼容性。本文将深入探讨 Flot 的核心特性、...
"iosselect"控件就是这样一个解决方案,它是一个基于JavaScript的库,旨在为移动端浏览器提供类似iOS原生日期时间选择器的效果。 iosselect控件的设计理念是模仿苹果设备上的日期和时间选择器,以提供一致且友好的...
还可以添加placeholder属性,模仿input的占位符效果。 5. **事件处理**:JavaScript是实现这些功能的关键。需要编写事件处理器来响应用户的点击、触摸或键盘事件,更新div中的内容,同时处理光标移动和数值格式化。...
- 使用Intersection Observer API,这是一个现代浏览器原生支持的API,可以更精确地检测元素是否进入视口,无需依赖第三方库。 - 考虑预加载关键图片,比如首屏或重要图片,以确保用户第一时间看到完整内容。 - 对于...
DOCTYPE html>`:这是HTML5文档类型的声明,告诉浏览器使用哪种HTML版本来解析页面。 2. `<html>`标签:整个HTML文档的根元素。 3. `<head>`:包含元数据,如页面标题(`<title>`),这将在浏览器标签页上显示。 4. ...
9. **自定义滚动条**:在支持的浏览器中,可以使用`::-webkit-scrollbar`和`::-webkit-scrollbar-thumb`等选择器,对输入框内的滚动条进行美化。 10. **输入框填充**:使用`padding`属性可以调整输入框内文字与边框...
DOCTYPE html>`开头,这声明了文档类型为HTML5。接着,我们使用`<html>`标签作为整个HTML文档的根元素: ```html <!DOCTYPE html> <html> 我的Google搜索页面 <!-- 页面内容将放在这里 --> </html> ``` 在...
5. **布局与样式**:HTML本身不处理页面的布局和样式,但我们可以使用CSS(层叠样式表)来控制。通过`<style>`标签或外部链接的`.css`文件,可以定义颜色、字体、边距等。谷歌主页的特点是简洁、干净,所以CSS会强调...
在本项目"google-homepage"中,你的任务是构建一个前端页面,模仿著名的Google主页。这是一个极好的起点,尤其对于初次接触实际项目的新手来说,它可以帮助你掌握基础的HTML语言,同时提升网页布局和设计的理解。...
- **浏览器翻译局限**:如Chrome的Google翻译无法处理动态渲染内容、输入框的placeholder,且可能破坏Vue的响应式机制。 3. **解决方案** - **放弃浏览器翻译**:由于Google翻译的局限性,不建议直接依赖浏览器的...