千家信息网

JS如何实现五星好评

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了JS如何实现五星好评,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下业务逻辑是我需要先创建出所有我需要用到
千家信息网最后更新 2026年11月01日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安全错误 数据库的锁怎样保障安全 互联网中国科技 上海互联网科技有限公司 互联网 的科技创新 九亚互联网科技 云电互联网科技 广州善班互联网科技 人人互联网科技是培训 农村开互联网科技讲堂 中国航天科技大学国际工业互联网 和信科技工业互联网 新兴科技互联网创新大赛颁奖典礼 西安小鹰速贷互联网科技有限公司 长沙茂晟互联网科技有限公司 中和天地互联网科技有限公司 无锡工业互联网科技有限公司 互联网科技资金流入 容联科技互联网电商 中国新注册互联网科技 承德科技产业互联网平台 东风日产互联网科技公司叫什么 互联网新科技 湖北九亚互联网络科技有限公司 互联网科技活动banner 江阴互联网智能科技产品进口 众安科技工业互联网合作 互联网领先科技宣传片 35岁以上互联网科技行业 科技美学互联网 艺术 恒生科技互联网指数十大成分股 利用互联网等科技手段
0