JS实现评价的星星功能
程序员文章站
2022-05-14 19:09:44
刚开始接触写星星评价时,哇!估计脑子刚被驴踢了,竟然想到了最笨的办法-手工画五角星。妈呀! css样式都写了好大一串,还沾沾自喜终于画出来了,然后瞅一瞅旁边的妹子写得怎么样...
刚开始接触写星星评价时,哇!估计脑子刚被驴踢了,竟然想到了最笨的办法-手工画五角星。妈呀! css样式都写了好大一串,还沾沾自喜终于画出来了,然后瞅一瞅旁边的妹子写得怎么样了,哇!人家机智的!直接用符号★就解决了!!!唉,智商捉急呀!
先上图看看吧:
虽然简单,还是有几个注意的地方:
1. 未点击时的hover效果,星星会随鼠标移动亮起来喔。
2. 点击后关闭hover效果。
3. 点击同一颗星星,星星可以随时换色。
具体代码展示:
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> </head> <style type="text/css"> .stars{ white-space: nowrap; text-align: center; margin-top: 20px; margin-bottom: 20px; } .stars li{ display: inline-block; color: #adadad; font-size: 40px; } </style> <body> <ul class="stars"> <li>★</li> <li>★</li> <li>★</li> <li>★</li> <li>★</li> </ul> <script src="../../js/common/jquery-git.js"></script> <script> $(function() { //为星星设置hover效果 var isclicked = false; var beforeclickedindex = -1; var clicknum = 0; //点击同一颗星次数 $('li').hover( function() { if(!isclicked) { $(this).css('color', '#f0ad4e'); var index = $(this).index(); for(var i = 0; i <= index; i++) { $('li:nth-child(' + i + ')').css('color', '#f0ad4e'); } } }, function() { if(!isclicked) { $('li').css('color', '#adadad'); } } ); //星星点击事件 $('li').click(function() { $('li').css('color', '#adadad'); isclicked = true; var index = $(this).index(); for(var i = 1; i <= index+1; i++) { $('li:nth-child(' + i + ')').css('color', '#f0ad4e'); } if(index == beforeclickedindex) { //两次点击同一颗星星 该星星颜色变化 clicknum++; if(clicknum % 2 == 1) { $('li:nth-child(' + (index + 1) + ')').css('color', '#adadad'); } else { $('li:nth-child(' + (index + 1) + ')').css('color', '#f0ad4e'); } } else { clicknum = 0; beforeclickedindex = index; } }); }); </script> </body> </html>
总结
以上所述是小编给大家介绍的js实现评价的星星功能,希望对大家有所帮助
下一篇: vue实现全选和反选功能