HTML带表情的评论框,表情通过Json数据加载,可以根据自己的喜好改变表情。本评论框代码为HTML,CSS,JQ三个方面的代码。图1为原始状态,图2为点击表情时出现的表情列表,可以任意选择一个或者多个。下面我们来看看实现的代码。
图1
图2
实现的代码:
html代码:
XML/HTML Code复制内容到剪贴板
<divclass="Main"><divclass="Input_Box"><textareaclass="Input_text"></textarea><divclass="faceDiv"></div><divclass="Input_Foot"><aclass="imgBtn"href="javascript:void(0);"></a><aclass="postBtn">确定</a></div></div></div> css3代码:
CSS Code复制内容到剪贴板
.Input_Box{width:495px;height:160px;border:1pxsolid#ccc;transition:borderlinear.2s,box-shadowlinear.5s;-moz-transition:borderlinear.2s,-moz-box-shadowlinear.5s;-webkit-transition:borderlinear.2s,-webkit-box-shadowlinear.5s;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background-color:#fff;overflow:hidden;position:absolute;-moz-box-shadow:005px#ccc;-webkit-box-shadow:005px#ccc;box-shadow:005px#ccc;}.Input_Box>textarea{width:485px;height:111px;padding:5px;outline:none;border:0pxsolid#fff;resize:none;font:13px"微软雅黑",Arial,Helvetica,sans-serif;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}.Input_Foot{width:100%;height:35px;border-top:1pxsolid#ccc;background-color:#fff;-moz-border-radius:005px5px;-webkit-border-radius:005px5px;border-radius:005px5px;position:absolute;}.imgBtn{float:left;margin-top:8px;margin-left:10px;background-image:url(imgs.png);background-repeat:no-repeat;background-position:0-13px;height:18px;width:20px;cursor:pointer}.imgBtn:active{margin-top:9px;}.imgBtn:hover{background-position:0-31px}.postBtn{float:rightright;font:13px"微软雅黑",Arial,Helvetica,sans-serif;color:#808080;padding:9px20px7px20px;border-left:1pxsolid#ccc;cursor:pointer;-moz-border-radius:005px0;-webkit-border-radius:005px0;border-radius:005px0;}.postBtn:hover{color:#333;background-color:#efefef;}.postBtn:active{padding:10px20px6px20px;}.faceDiv{width:500px;height:120px;border-top:1pxsolid#ccc;position:absolute;background-color:#fff;-moz-border-radius:5px5px00;-webkit-border-radius:5px5px00;border-radius:5px5px00;}.faceDiv>img{border:1pxsolid#ccc;float:left;margin-left:-1px;margin-top:-1px;position:relative;width:24px;height:24px;padding:3px3px3px3px;cursor:pointer;}.faceDiv>img:hover{background-color:#efefef;}.faceDiv>img:active{padding:4px3px2px3px;} Javascript代码:
JavaScript Code复制内容到剪贴板
varImgIputHandler={facePath:[{faceName:"微笑",facePath:"0_微笑.gif"},{faceName:"撇嘴",facePath:"1_撇嘴.gif"},{faceName:"色",facePath:"2_色.gif"},{faceName:"发呆",facePath:"3_发呆.gif"},{faceName:"得意",facePath:"4_得意.gif"},{faceName:"流泪",facePath:"5_流泪.gif"},{faceName:"害羞",facePath:"6_害羞.gif"},{faceName:"闭嘴",facePath:"7_闭嘴.gif"},{faceName:"大哭",facePath:"9_大哭.gif"},{faceName:"尴尬",facePath:"10_尴尬.gif"},{faceName:"发怒",facePath:"11_发怒.gif"},{faceName:"调皮",facePath:"12_调皮.gif"},{faceName:"龇牙",facePath:"13_龇牙.gif"},{faceName:"惊讶",facePath:"14_惊讶.gif"},{faceName:"难过",facePath:"15_难过.gif"},{faceName:"酷",facePath:"16_酷.gif"},{faceName:"冷汗",facePath:"17_冷汗.gif"},{faceName:"抓狂",facePath:"18_抓狂.gif"},{faceName:"吐",facePath:"19_吐.gif"},{faceName:"偷笑",facePath:"20_偷笑.gif"},{faceName:"可爱",facePath:"21_可爱.gif"},{faceName:"白眼",facePath:"22_白眼.gif"},{faceName:"傲慢",facePath:"23_傲慢.gif"},{faceName:"饥饿",facePath:"24_饥饿.gif"},{faceName:"困",facePath:"25_困.gif"},{faceName:"惊恐",facePath:"26_惊恐.gif"},{faceName:"流汗",facePath:"27_流汗.gif"},{faceName:"憨笑",facePath:"28_憨笑.gif"},{faceName:"大兵",facePath:"29_大兵.gif"},{faceName:"奋斗",facePath:"30_奋斗.gif"},{faceName:"咒骂",facePath:"31_咒骂.gif"},{faceName:"疑问",facePath:"32_疑问.gif"},{faceName:"嘘",facePath:"33_嘘.gif"},{faceName:"晕",facePath:"34_晕.gif"},{faceName:"折磨",facePath:"35_折磨.gif"},{faceName:"衰",facePath:"36_衰.gif"},{faceName:"骷髅",facePath:"37_骷髅.gif"},{faceName:"敲打",facePath:"38_敲打.gif"},{faceName:"再见",facePath:"39_再见.gif"},{faceName:"擦汗",facePath:"40_擦汗.gif"},{faceName:"抠鼻",facePath:"41_抠鼻.gif"},{faceName:"鼓掌",facePath:"42_鼓掌.gif"},{faceName:"糗大了",facePath:"43_糗大了.gif"},{faceName:"坏笑",facePath:"44_坏笑.gif"},{faceName:"左哼哼",facePath:"45_左哼哼.gif"},{faceName:"右哼哼",facePath:"46_右哼哼.gif"},{faceName:"哈欠",facePath:"47_哈欠.gif"},{faceName:"鄙视",facePath:"48_鄙视.gif"},{faceName:"委屈",facePath:"49_委屈.gif"},{faceName:"快哭了",facePath:"50_快哭了.gif"},{faceName:"阴险",facePath:"51_阴险.gif"},{faceName:"亲亲",facePath:"52_亲亲.gif"},{faceName:"吓",facePath:"53_吓.gif"},{faceName:"可怜",facePath:"54_可怜.gif"},{faceName:"菜刀",facePath:"55_菜刀.gif"},{faceName:"西瓜",facePath:"56_西瓜.gif"},{faceName:"啤酒",facePath:"57_啤酒.gif"},{faceName:"篮球",facePath:"58_篮球.gif"},{faceName:"乒乓",facePath:"59_乒乓.gif"},{faceName:"拥抱",facePath:"78_拥抱.gif"},{faceName:"握手",facePath:"81_握手.gif"},{faceName:"得意地笑",facePath:"得意地笑.gif"},{faceName:"听音乐",facePath:"听音乐.gif"}],Init:function(){varisShowImg=false;$(".Input_text").focusout(function(){$(this).parent().css("border-color","#cccccc");$(this).parent().css("box-shadow","none");$(this).parent().css("-moz-box-shadow","none");$(this).parent().css("-webkit-box-shadow","none");});$(".Input_text").focus(function(){$(this).parent().css("border-color","rgba(19,105,172,.75)");$(this).parent().css("box-shadow","003pxrgba(19,105,192,.5)");$(this).parent().css("-moz-box-shadow","003pxrgba(241,39,232,.5)");$(this).parent().css("-webkit-box-shadow","003pxrgba(19,105,252,3)");});$(".imgBtn").click(function(){if(isShowImg==false){isShowImg=true;$(this).parent().prev().animate({marginTop:"-125px"},300);if($(".faceDiv").children().length==0){for(vari=0;i<ImgIputHandler.facePath.length;i){$(".faceDiv").append("<imgtitle=\""ImgIputHandler.facePath[i].faceName"\"src=\"face/"ImgIputHandler.facePath[i].facePath"\"/>");}$(".faceDiv>img").click(function(){isShowImg=false;$(this).parent().animate({marginTop:"0px"},300);ImgIputHandler.insertAtCursor($(".Input_text")[0],"["$(this).attr("title")"]");});}}else{isShowImg=false;$(this).parent().prev().animate({marginTop:"0px"},300);}});$(".postBtn").click(function(){alert($(".Input_text").val());});},insertAtCursor:function(myField,myValue){if(document.selection){myField.focus();sel=document.selection.createRange();sel.text=myValue;sel.select();}elseif(myField.selectionStart||myField.selectionStart=="0"){varstartPos=myField.selectionStart;varendPos=myField.selectionEnd;varrestoreTop=myField.scrollTop;myField.value=myField.value.substring(0,startPos)myValuemyField.value.substring(endPos,myField.value.length);if(restoreTop>0){myField.scrollTop=restoreTop;}myField.focus();myField.selectionStart=startPosmyValue.length;myField.selectionEnd=startPosmyValue.length;}else{myField.value=myValue;myField.focus();}}}