做一个评价的页面,后台传值1到5,jsp页面得到几就亮几颗星星。。。急急急

 我来答
沽名晓飞
2015-03-06 · TA获得超过1507个赞
知道小有建树答主
回答量:100
采纳率:100%
帮助的人:89.3万
展开全部

  首先你得会用CSS、HTML制作星星和星星高亮的效果,知道实现方式,其实很简单,方式也有很多。懒得制作星星图片什么的了,用方块代替。下面是HTML和CSS的代码: 

 <style>
  .star {
      border: 1px solid #000;
      height: 18px;
      width: 18px;
      display: block;
      float: left;
      margin-left: 5px;
      z-index: 3;
  }
  .highlight {
      background: #000000;
  }
  </style>
  <div class="star_bg" id="starContainer">
<a class="star highlight "></a>
<a class="star"></a>
<a class="star"></a>
<a class="star"></a>
<a class="star"></a>
    </div>


想要星星亮起来就给星星添加highlight样式。然后就是动态控制,方式也有很多。主要两种,一种是用JS代码控制,比较灵活,结合Ajax比较常见,下面是JS代码:

function highlightStar(num){
    var starBg = document.getElementById("starContainer");
    var stars = starBg.getElementsByTagName("a");
    for(var i = 0 ; i < num ; i++){
        stars[i].className = "star highlight";
    }
}
//调用方法,想要亮几颗就传入几
highlightStar(2);

然后就是在JSP中动态拼写JS代码,很简单就是把highlightStar方法的调用语句中的参数替换为JSP中的变量输出语句就行:

highlightStar(<%=highlighSstarNum%>);


还有一种方法就是直接在JSP中控制输出样式,把上面的starContainer的div中内容替换为下面的代码:

<div class="star_bg" id="starContainer">
    <%
        for(int i = 0 ; i < highlightStarNum ; i++){
            out.println("<a class='star highlight''>");
        }
    %>
</div>


这种功能很简单,实现方案结合自己的需求变动,掌握原理才是王道。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式