业务需求
用户中心有三个图标:手机、邮箱、银行卡绑定。如果完成了相应的绑定工作,图标就显示深色,未完成图标就是浅色,气泡中提示相应的文字和链接。示意图如下,主要要实现气泡弹出功能。
实现思路
1.鼠标移到图片上,隐藏的div弹层属性改成:显示,弹层背景是一个类似qq会话的图片,如上图所示。
2.鼠标离开图片,关闭div弹层 。
3.鼠标移动到气泡内,显示文字,并关闭其他气泡。
4.鼠标移出气泡,关闭本气泡。
完成代码
html+beetl
<div class="phone_r"> <h1>${user.userName},欢迎您!</h1> <P>认证信息: <%if(phone==0){%> <img src="${request.contextPath}/resources/img/htel.jpg" class="wimg" onmouseover="showdiv('p_01');closediv('p_02');closediv('p_03');" /> <%}else if(phone.certifiedStatus==1) {%> <img src="${request.contextPath}/resources/img/ztel.jpg" class="wimg" onmouseover="showdiv('p_01');closediv('p_02');closediv('p_03');" /> <%}%> <%if(email==0){%> <img src="${request.contextPath}/resources/img/tb1.jpg" class="wimg1" onmouseover="showdiv('p_02');closediv('p_01');closediv('p_03')" /> <%}else if(email.certifiedStatus==1) {%> <img src="${request.contextPath}/resources/img/z-mail.jpg" class="wimg1" onmouseover="showdiv('p_02');closediv('p_01');closediv('p_03')" /> <%}%> <%if(bank==0){%> <img src="${request.contextPath}/resources/img/htuoguan.jpg" class="wimg2" onmouseover="showdiv('p_03');closediv('p_01');closediv('p_02')" /> <%}else if(bank.bankCardStatus==2){%> <img src="${request.contextPath}/resources/img/z-tuoguan.jpg" class="wimg2" onmouseover="showdiv('p_03');closediv('p_01');closediv('p_02')" /> <%}else if(bank.bankCardStatus==1){%> <img src="${request.contextPath}/resources/img/z-tuoguan.jpg" class="wimg2" onmouseover="showdiv('p_03');closediv('p_01');closediv('p_02')" /> <%}%> <span>资料完整度${percent!}%,完成“ ${unfishedPart!}”可获得${partialIntegral!}积分奖励;</span> </P> <div id="p_01" class="bubble1" onmouseout="closediv('p_01')" > <img src="${request.contextPath}/resources/img/bubble.png" onmouseover="showdiv('p_01')" > <%if(phone==0){%> <span onmouseover="showdiv('p_01')" >您还没验证手机, <a href="${request.contextPath}/ssl/account/toSetting.htm">立即验证 </a></span> <%}else if(phone.certifiedStatus==1) {%> <span onmouseover="showdiv('p_01')" >您已验证手机: ${strutil.subStringTo(phone.mobile,0,3)}****${strutil.subStringTo(phone.mobile,7,11)}</span> <%}%> </div> <div id="p_02" class="bubble2" onmouseout="closediv('p_02')" > <img src="${request.contextPath}/resources/img/bubble.png" onmouseover="showdiv('p_02')"> <%if(email==0){%> <span onmouseover="showdiv('p_02')">您还没验证邮箱, <a href="${request.contextPath}/ssl/account/toSetting.htm">立即验证 </a></span> <%}else if(email.certifiedStatus==1) {%> <span onmouseover="showdiv('p_02')">您已验证邮箱:${strutil.subStringTo(email.email,0,2)}*****${ strutil.split (email.email,"@")[1]}</span> <%}%> </div> <div id="p_03" class="bubble3" onmouseout="closediv('p_03')" > <img src="${request.contextPath}/resources/img/bubble.png" onmouseover="showdiv('p_03')"> <%if(bank==0){%> <span onmouseover="showdiv('p_03')">您还没有绑定银行卡, <a href="${request.contextPath}/ssl/account/toSetting.htm">立即绑定 </a></span> <%}else if(bank.bankCardStatus==2){%> <span onmouseover="showdiv('p_03')">您已绑定银行卡: ${strutil.subStringTo(bank.bankCard,0,3)}***********${strutil.subStringTo(bank.bankCard,bankLength-5,bankLength-1)}</span> <%}else if(bank.bankCardStatus==1){%> <span onmouseover="showdiv('p_03')">您绑定银行卡正在认证中</span> <%}%> </div>
/*我的普惠----手机,邮箱,银行卡,鼠标滑动显示气泡*/ .phone_r{ position:relative; } .phone_r div.bubble1{ margin-bottom:10px; display:block; position:absolute; left:30px; bottom:-10px; display:none; } .phone_r div.bubble1 img{ display:inline-block; width:220px; height:35px; position:relative; } .phone_r div.bubble1>span{ position:absolute; left:-35px; top:20px; color:#666666; } .phone_r div.bubble1>span>a{ color:#ed345a; } .phone_r div.bubble2{ margin-bottom:10px; display:block; position:absolute; left:62px; bottom:-10px; display:none; } .phone_r div.bubble2 img{ display:inline-block; width:220px; height:35px; position:relative; } .phone_r div.bubble2>span{ position:absolute; left:-35px; top:20px; color:#666666; } .phone_r div.bubble2>span>a{ color:#ed345a; } .phone_r div.bubble3{ margin-bottom:10px; display:block; position:absolute; left:95px; bottom:-10px; display:none; } .phone_r div.bubble3 img{ display:inline-block; width:220px; height:35px; position:relative; } .phone_r div.bubble3>span{ position:absolute; left:-35px; top:20px; color:#666666; } .phone_r div.bubble3>span>a{ color:#ed345a; }
//显示气泡 function showdiv(obj){ if(obj==1){ $(".bubble1").hide(); }else if (obj==2){ $(".bubble2").hide(); }else if (obj==3){ $(".bubble3").hide(); } document.getElementById(obj).style.display = "block"; } //隐藏气泡 function closediv(obj){ document.getElementById(obj).style.display = "none"; }
字符串转换成数组(例如:2496868487转换成[2],[4]……[7])
StringbankCard=accountCapitalService.getCustBankByUserId(user.getId()).getBankCard(); char[] arrayBankCard=bankCard.toCharArray();//字符串转换成数组 int bankLength=arrayBankCard.length;
开发前二期的jsp代码
function authInfo(){ //实名认证 if("${realName.certifiedStatus}"==1){ $("#nameMsg").html("您已开通资金托管:"+'${fn:substring(realName.realName,0,1)}**'); $("#nameStatus").addClass("card_red"); $("#security").html("安全等级:高"); }else{ $("#nameMsg").html("您未开通资金托管,<a href=\"toSetting.htm?realName\" >立即开通</a>"); $("#nameStatus").addClass("red"); $("#security").html("安全等级:低"); } //手机认证 if("${phone.certifiedStatus}"==1){ $("#telMsg").html("您已验证手机:"+'${fn:substring(phone.mobile,0,3)}****${fn:substring(phone.mobile,7,-1)}'); $("#telStatus").addClass("tel_red"); }else{ $("#telMsg").html("您还没验证手机,<a href=\"toSetting.htm?mobile\">立即验证</a>"); $("#telStatus").addClass("red"); } //邮箱认证 if("${email.certifiedStatus}"==1){ $("#emailMsg").html("您已验证邮箱:"+'${fn:substring(email.email,0,2)}*****${fn:split(email.email,"@")[1]}'); $("#emailStatus").addClass("email_red"); }else{ $("#emailMsg").html("您还没验证邮箱,<a href=\"toSetting.htm?email\" >立即验证</a>"); $("#emailStatus").addClass("red"); } //银行卡认证 if("${bank.bankCardStatus}"==1){ $("#bankMsg").html("您绑定银行卡正在认证中"); $("#bankStatus").addClass("red"); } else if("${bank.bankCardStatus}"==2){ $("#bankMsg").html("您已绑定银行卡:"+'${fn:substring(bank.bankCard,0,3)}**********${fn:substring(bank.bankCard,14,-1)}'); $("#bankStatus").addClass("bank_red"); }else{ $("#bankMsg").html("您还没有绑定银行卡,<a href=\"toSetting.htm?bank\" >立即绑定</a>"); $("#bankStatus").addClass("red"); } }
个人感受
思路很重要,有很多细节是需要基础的。比如一些截取字符串subString ,分割字符spilt,这些都是我们学习的基础。不管是js,beetl还是el,jstl,这些都是很核心的东西,学会一个思路,下一个再用的时候变通一下就好啦!