gwl3323405
JavaScript模仿X猫做一个搜索框

最近逛Y宝的X猫,猛然发现搜索框已经悄然变样了,变得更加的有趣和智能,搜索框里会自动显示热门的搜索词且每隔一段时候换一个,我觉得这样的好处是,既帮X猫自己做的广告推送又免去用户搜索的麻烦,可谓一举两得。而享受此搜索框带来的方便同时,我却在思考如何实现这样一个搜索框的问题了,正所谓:三句话不离老本行吧!:)当天我就抽空做了一个,时间和技术有限,纯属业余之作,大家全当看看做个参考吧。

JavaScript代码:

[mw_shl_code=javascript,true]var defval="SKII 入驻X猫";//默认显示的文本框内容

//文本框失去焦点的方法

function blurMd(){

if(val.length==0){

document.getElementById("txt").value=defval;

grayStyle();

}else if(val==defval){

grayStyle();

}

}

//点击文本框触发的方法

function clickMd(){

var val=document.getElementById("txt").value;

if(val==defval){

var a =document.getElementById("txt").createTextRange();

a.moveStart('character',0);

a.collapse(true);

a.select();

lgrayStyle();//改样式为浅灰色

}

}

//将文本框字体颜色设置为淡灰色

function lgrayStyle(){

document.getElementById("txt").style.color="lightgray";

}

//将文本框字体颜色设置为灰色

function grayStyle(){

document.getElementById("txt").style.color="gray";

}

//将文本框字体颜色设置为黑色

function blackStyle(){

document.getElementById("txt").style.color="black";

}

window.onload=function(){

document.getElementById("txt").value=defval;//初始化显示内容

clickMd();//移动光标到首位

grayStyle();//文本灰色样式

//文本框点击事件

document.getElementById("txt").onkeydown=function(){

var val=document.getElementById("txt").value;//获得当前文本框的内容

if(val==defval&&(event.keyCode==37||event.keyCode==39)){//如果输入的是左右键并且是默认内容,则不做处理

//return false;

this.blur();//失去焦点

}else{

blackStyle();//改为黑色样式

if(val==defval){//如果是默认内容则清空,并且样式改为灰色

document.getElementById("txt").value="";

}

}

}

//搜索按钮点击事件-应该是带入文本框内容到后台查询的,我这里只做一个取值的展示

document.getElementById("btn").onclick=function(){

alert("您即将搜索的内容是:"+document.getElementById("txt").value);//显示当前文本框的内容

}

}[/mw_shl_code]

HTML代码:

[mw_shl_code=html,true]<input type="text" id="txt" onblur="blurMd()" onkeydown="keydownMd()" onclick="clickMd()" /><input type="button" id="btn" value="搜索"/>[/mw_shl_code]

上面的代码插入相应标签内可直接运行(已亲测),可能存在一些小bug大家参考下吧!#6958!

one262616
one262616回复给帖子:4952567
展开Biu

好东西!!正需要!!!

[查看全文]
gwl3323405
本人初学
展开Biu

本人初学JavaScript大神请多指教!!#7024!

[查看全文]