1.使用js计算宽度

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<style>.father {position: relative;}.white {display: flex;width: 70px;}.score {position: absolute;top: 0;}.flex_wrap {display: flex;width: 70px;overflow: hidden;}.score img {width: 14px;}
</style><body><div class="father"><div class="white"><img src="./image/star1.png" alt=""><img src="./image/star1.png" alt=""><img src="./image/star1.png" alt=""><img src="./image/star1.png" alt=""><img src="./image/star1.png" alt=""></div><div class="score"><div class="flex_wrap"><img src="./image/star2.png" alt=""><img src="./image/star2.png" alt=""><img src="./image/star2.png" alt=""><img src="./image/star2.png" alt=""><img src="./image/star2.png" alt=""></div></div></div><script>let score = 3.5let scoreEle = document.querySelector('.flex_wrap')console.log(scoreEle.style);scoreEle.style.width = score * 70 / 5 + 'px'</script>
</body></html>

2.使用vue

1. 在页面中定义一个存储评分的变量,比如叫做score。

2. 在页面中引入需要用到的图片资源,比如评分未选中和已选中状态的星星图片。

3. 获取后台传入的评分数字,假设保存在score变量中。

4. 根据评分数字计算需要点亮的星星数,并将个数保存在一个新的变量中,比如叫做lightNum。

5. 在页面上使用wx:for循环遍历需要绘制的星星,并对每颗星星应用不同的样式(已点亮状态或者未点亮状态)。

具体实现代码如下:

<template><view><view class="stars"><view class="star" wx:for="i in stars" :key="i" :class="{'active': i<=lightNum}"></view></view></view>
</template><script>
export default {data () {return {score: 4.5, // 后台传入的评分数字stars: [1, 2, 3, 4, 5], // 星星的数量lightNum: 0 // 需要点亮的星星数}},methods: {// 计算需要点亮的星星数calcLightNum () {const intNum = parseInt(this.score) // 分数的整数部分const decimalNum = parseFloat((this.score - intNum).toFixed(1)) // 分数的小数部分let lightNum = intNum // 整数部分的星星全部点亮if (decimalNum > 0.5) { // 如果小数部分大于0.5,则多点亮一颗星lightNum++} else if (decimalNum > 0) { // 如果小数部分在0到0.5之间,则半颗星lightNum += 0.5}this.lightNum = lightNum}},mounted () {this.calcLightNum()}
}
</script><style>.star {display: inline-block;margin-right: 6px;width: 32px;height: 32px;background-image: url('/static/images/star.png');background-size: 32px 32px;}.active {background-image: url('/static/images/star-active.png');background-size: 32px 32px;}
</style>

解析:

1. 在页面数据中定义了score、stars和lightNum三个变量,分别代表评分数字、星星的数量和需要点亮的星星数。

2. 页面中定义了一个方法calcLightNum来计算需要点亮的星星数。

3. 在mounted钩子函数中调用calcLightNum方法。

4. 在页面中使用wx:for循环遍历stars数组,对每颗星星应用不同的样式(已点亮状态或者未点亮状态)。已点亮的星星数量由lightNum控制,如果i<=lightNum,则应用.active样式,表示该星星已被点亮。

5. 根据评分数字,计算出需要点亮的星星数后,保存在lightNum变量中,即可完成点亮星星的功能。

点亮星星评分效果(js/vue)相关推荐

  1. vue实现点击星星评分效果

    vue实现点击星星评分效果 首先通过引入bootcdn里的font-awesome获取星星素材 <link href="https://cdn.bootcdn.net/ajax/lib ...

  2. 实现点亮星星评分的效果

    场景:有些需求会要求用原生去实现点亮星星评分的效果,下面做了一个简单的demo,效果如下: 1.html部分 <div class="box"><img src= ...

  3. php星星评价,JS 实现点亮星星评分功能

    本文主要和大家分享JS 实现点亮星星评分功能,希望能帮助到大家. 点亮星星评分 ★ ★ ★ ★ ★ 相关推荐:

  4. JS - 点亮星星评分

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  5. 微信小程序实现星星评分效果

    微信小程序实现星星评分效果 思路很简单,小星星都是一张张独立的图片,点击的时候改变图片的路径就可以了. 我是用背景图片做的,先给盒子设置背景图片为灰色的小星星,盒子是根据js文件中的stars数组循环 ...

  6. html 星星评分显示,js实现的星星评分特效

    今天闲来无事,在www.jsfoot.com中看到一个星星评分的特效,所以就拿来用了用,效果还不错,不过还不能满足我的需求,所以自己稍作了修改.本人js技术是个菜鸟,很多我也不是很明白,所以解释的不是 ...

  7. html的星星评分效果,利用jQuery实现星星打分评分插件

    特效描述:利用jQuery实现 星星打分 评分插件.利用jQuery实现星星打分评分插件 代码结构 1. 引入JS 2. HTML代码 $("#star_grade").marki ...

  8. 投票点亮星星html,透过点亮星星实现评分效果,可自定义星星数

    当前位置:我的异常网» Web前端 » 透过点亮星星实现评分效果,可自定义星星数 透过点亮星星实现评分效果,可自定义星星数 www.myexceptions.net  网友分享于:2013-11-01 ...

  9. star评星 点亮星星 原生js评星 vue评星

    类似于淘宝订单交易成功后,会进行评价. 项目结构如下: 一:原生js进行评星 <!DOCTYPE html><html lang="en"><head ...

最新文章

  1. 类似QQ右上角选项弹框
  2. Qt调用dll中的功能函数
  3. Java中的Volatile如何工作? Java中的volatile关键字示例
  4. C++设计模式-Factory工厂模式
  5. 21天Jmeter打卡Day12 逻辑控制器之循环控制器
  6. 特征提取、特征描述、特征匹配的通俗解释
  7. R_ggplot2基础(一)
  8. 基于RDP瘦客户机协议的简要说明
  9. OpenCore引导配置说明0.6.9版-基于OpenCore-0.6.9-05-04正式版
  10. 深度揭秘:诺基亚的百年沧桑
  11. 为什么蓝鸽的听力下载完还是听不了_推荐这款练习英语听力的神器级免费App
  12. Swarm创始人:强调BZZ主网上线不需要质押
  13. MAVEN理想创库配置
  14. svchost.exe占用网速多
  15. 黑名单将公开 我国建立行贿犯罪档案查询系统
  16. 狄利克雷分布公式_一文详解隐含狄利克雷分布(LDA)
  17. Leetcode PHP题解--D38 463. Island Perimeter
  18. 深度学习水果识别系统-python
  19. Android面试题和答案
  20. 牛客网wannafly挑战赛13-E(线段树)

热门文章

  1. 深拷贝原生Javascript
  2. Linux安装截图工具(Ubuntu18.04+火焰截图)
  3. 3GPP中URLLC标准研究进展
  4. 安卓报错Error:Failed to find target with hash string ‘android-26‘以及模拟器找不到错误
  5. NLP基础——python的jieba用于词类分割用法总结(1)
  6. IE8 ie9 浏览器“会话”问题
  7. 什么是邮件营销系统?公司邮箱如何进行邮件群发营销?
  8. 什么原因成就了以为优秀的程序员
  9. python爬虫淘宝图片+GUI+打包成exe
  10. 第一次学python作文400字_微软小冰写作文