JS如何实现五星好评
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要介绍了JS如何实现五星好评,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下业务逻辑是我需要先创建出所有我需要用到
千家信息网最后更新 2024年11月11日JS如何实现五星好评
这篇文章主要介绍了JS如何实现五星好评,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
具体内容如下
业务逻辑是我需要先创建出所有我需要用到的标签和样式再写出我们星星对应的行为,分数对应行为,笑脸对应行为,点击对应行为,抽象化出来,方便维护。并且在点击后我们抛出事件,记录下对应的name,分数等信息,保存在cookie中。
在编写过程中,一个是位置问题,很容易出现在没有创建就进行appendChild,第二个就是在添加行为时如何调整星星,笑脸的位置。
Document
export default class Component{ //创建warp 和 appendTo方法 elem; constructor(){ this.elem=this.createElem(); } createElem(){ if(this.elem) return this.elem; let div=document.createElement("div"); return div; } appendTo(parent){ if(typeof parent==="string")parent=document.querySelector(parent); parent.appendChild(this.elem); }}
import Component from "./Component.js";export default class Star extends Component{ label=""; score; face; starCon; static STAR_NUM=5; starArr=[]; static StarScoreList=[]; pos=-1; constructor(_label){ super(); this.label=_label; Object.assign(this.elem.style,{ width:"auto", height:"16px", float:"left", paddingBottom:"10px", marginRight:"20px", paddingTop:"16px", }) Star.StarScoreList[_label]=0; this.createLable(_label); this.createStar(); this.createScore(); } createLable(_label){ let labels=document.createElement("div"); labels.textContent=_label; Object.assign(labels.style,{ float:"left", height: "16px", lineHeight: "16px", marginRight: "10px", overflow: "hidden", whiteSpace: "nowrap", textOverflow: "ellipsis", font: '12px/150% tahoma,arial,Microsoft YaHei,Hiragino Sans GB,"\u5b8b\u4f53",sans-serif', color: "#666" }); this.elem.appendChild(labels); } createStar(){ this.starCon=document.createElement("div"); Object.assign(this.starCon.style,{ float:"left", height:"16px", position:"relative", marginTop:"1px" }) for(let i=0;ithis.mouseHandler(e)) this.starCon.addEventListener("click",e=>this.mouseHandler(e)) this.starCon.addEventListener("mouseleave",e=>this.mouseHandler(e)) this.face=document.createElement("div"); } createScore(){ this.score=document.createElement("span"); Object.assign(this.score.style,{ position:"relative", width:"30px", height:"16px", top:"-2px", marginLeft:"10px", lineHeight:"16px", textAlign:"right", color:"#999", font:"12px/150% tahoma,arial,Microsoft YaHei,Hiragino Sans GB,sans-serif", }); this.score.textContent="0分"; this.starCon.appendChild(this.score); } mouseHandler(e){ //鼠标行为 let index=this.starArr.indexOf(e.target); switch(e.type){ case "mouseover": if(index<0) return; this.changeFace(index); this.changeScore(index+1); this.changeStar(index+1); break; case "click": this.pos=index; this.dispatch(); break; case "mouseleave": this.changeStar(this.pos+1); this.changeFace(this.pos); this.changeScore(this.pos+1); break; default: return; } } changeStar(n){ for(let i=0;i 感谢你能够认真阅读完这篇文章,希望小编分享的"JS如何实现五星好评"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
行为
篇文章
笑脸
快递
好评
五星
位置
分数
星星
服务
业务
事件
价值
信息
兴趣
内容
原因
同时
商品
图片
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发用什么做结构
驻场软件开发
软件开发平台项目
微信圈子用的什么数据库
药神数据库数据导出
多人服务器生存介绍
服务器虚拟化怎么报名
移动公司软件开发研究所
中大网络安全考研
朱中梁网络安全
平谷区网络技术咨询采购
杭州车聚网络技术有限公司
岳阳软件开发价格实惠
数据库表对象权限
为什么软件开发女生少
河南超频服务器报价
网络技术及其管理应用
参加网络安全大赛的选手
数据库er图常见问题
软件开发这行累吗
扬州教育app软件开发
网络技术员结构化面试
云服务器安全提升的七个方法
依据中华人民共和国网络安全法任何个人
云南网络安全培训基地
什么软件开发外贸
山西常规软件开发市场价
无锡海航软件开发常见问题
神郁网络安全隔离卡
西安网络安全培训学校