js实现星级评分之方法一
利用一个星级评分的小案例,来逐步封装js星级评分插件。
从最基础的js知识,通过一个小的demo,逐步学习js的面向对象知识。
从浅到深,逐步递进。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>星级评分--第一种实现方式</title> </head> <style type="text/css"> body,ul,li{ margin: 0; padding: 0; } li{ list-style-type: none; } .rating{ width: 162px; height: 32px; margin: 100px auto; } .rating-item{ float: left; width: 32px; height: 32px; background: url('./img/rating.png') no-repeat; cursor: pointer; } </style> <body> <ul class="rating" id="rating"> <li class="rating-item" title="很不好"></li> <li class="rating-item" title="不好"></li> <li class="rating-item" title="一般"></li> <li class="rating-item" title="好"></li> <li class="rating-item" title="很好"></li> </ul> </body> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script> <script type="text/javascript"> var num = 2, $rating = $('#rating'), $item = $rating.find('.rating-item'); //点亮星星 var lightOn = function(num){ $item.each(function(){ if($(this).index() < num){ $(this).css('background-position','0 -32px'); }else{ $(this).css('background-position','0 0'); } }); } //初始化,点亮num个星星 lightOn(num); $item.on('mouseover',function(){//鼠标移入时,触发相应操作 lightOn($(this).index() + 1); }).on('click',function(){//鼠标点击时,触发相应操作 num = $(this).index() + 1; }); //鼠标移出是,触发相应的操作 $rating.on('mouseout',function(){ lightOn(num); }); </script> </html>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战