要实现一个简单的打星效果,分为以下几步,简单来说,先这样。。。然后那样。。。再这么着。。。就好了!!!

css代码如下:

<link rel="stylesheet" href="font_ifs74hen68/iconfont.css"><style>
section{width: 300px;
height: 200px;
margin: 0 auto;
border:1px solid pink;
line-height: 200px;
}
section span:not(.one){color: pink;
}
section span:last-child{width: 100px;
box-sizing: border-box;
border:1px solid black;
}
</style>

html文件如下:

<body><section><span class="iconfont icon-xingxing"></span><span class="iconfont icon-xingxing"></span><span class="iconfont icon-xingxing"></span><span class="iconfont icon-xingxing"></span><span class="iconfont icon-xingxing"></span><span class="one"></span>
</section>

然后我们就把星星放到页面了如下图所示

image.png
然后就要进行JS操作了

如下,首先获取元素

var oSpans=document.querySelectorAll('span')
var oSpan=document.querySelector('.one')

再建立一个数组,内容是我们分别要在几颗星后所对应的显示内容,后面会用到

var arr=['垃圾','较差','一般','还可以','很好']

接着我们就要做效果了,因为要实现鼠标移入出现效果,移出取消预览效果,点击确定效果,所以需要加入三个事件,为了方便获取点击位置并添加相应效果,我们要为点击内容获取该下标

for (let i = 0; i < oSpans.length; i++) {
oSpans[i].setAttribute('index',i)
oSpans[i].addEventListener('mouseover',fn1)
oSpans[i].addEventListener('mouseout',fn2)
oSpans[i].addEventListener('click',fn3)
}

移入事件如下,我们需要为所点击的对象及之前所有的星星进行效果添加

function fn1() {
var num=this.getAttribute('index')
oSpan.innerHTML=arr[num]
for (let y = 0; y <= num; y++) {
oSpans[y].style.color='orange'
} }

移出事件如下

function fn2() {
var num1=this.getAttribute('index')
for (let y = 0; y <= num1; y++) {
oSpans[y].style.color=' '
}}

点击是,我们需要为所点击的星星及前面的所有星星去掉移出事件,就可以使得星星获得持续颜色

function fn3() {
var num=this.getAttribute('index')
for (let y = 0; y <= num; y++) {
oSpans[y].removeEventListener('mouseout',fn2)
}}
</body>

实现简单的打星(打分)效果相关推荐

  1. c语言程序设计编写钻石图形,C++简单输出钻石菱形图效果

    C++简单输出钻石菱形图效果 本文实例讲述了C++简单输出钻石菱形图效果的方法.分享给大家供大家参考,具体如下: /* * 作 者: 刘同宾 * 完成日期:2012 年 11 月 25 日 * 版 本 ...

  2. 行星轨迹制作_好看的星球轨迹是怎么制作的 PS制作星轨效果详细教程

    大家知道怎么制作好看的星轨效果吗?其实制作的方法很简单,如果你会使用 首先你将原图照片导入到PS中,然后在图层中拷贝一个图层出来(快捷键CTRL+J).并将图层的类型调整为[变亮]. 接着你将该图层使 ...

  3. 简单的UIButton按钮动画效果iOS源码

    这个是简单的UIButton按钮动画效果案例,源码,简单的UIButton按钮动画,可以自定义button属性. 效果图: <ignore_js_op> 使用方法: 使用时把ButtonA ...

  4. css实现简单的告警提示动画效果

    需求:css实现简单的告警提示动画效果,当接收到实时信息的时候,页面弹出告警信息的动画效果 <!DOCTYPE html> <html lang="en"> ...

  5. jquery练习——简单的图片结果展示效果

    今天看到google图片搜索结果页面,感觉简洁实用,于是用jquery粗略的模仿了一下 再次感觉到jquery的强大和易用,基本思路初步实现了,再整合ajax和json,应该可以做一个简单的应用了 : ...

  6. html效果浮窗效果,jQuery简单实现中间浮窗效果

    本文实例讲述了jQuery简单实现中间浮窗效果.分享给大家供大家参考,具体如下: basic.css: /* * -- 样式说明 -- * 最大优先实现法,全局能实现不用区域,区域能实现不用模板,模板 ...

  7. JS JQuery实现简单的鼠标移动动画效果

    JS JQuery实现简单的鼠标移动动画效果 说明: 之前看到过很多别人写的的网页鼠标特效,感觉很炫酷. 但是那些都涉及到复杂的数学知识和逻辑,我没有能力写出类似的鼠标效果,于是我仿照一般的显示鼠标移 ...

  8. 使用CollectionView简单实现轮播广告栏效果

    使用CollectionView简单实现轮播广告栏效果 当自己在做项目时感觉老是得重复写一些广告栏,嫌麻烦,所以自己简单封装了一个广告栏,不足之处希望大家指出,下面简单写下部分代码供大家参考: - V ...

  9. 基于JavaScript+css写一个简单的h5动态下雨效果

    基于JavaScript+css写一个简单的h5动态下雨效果 文章目录 什么是前端 展示效果 JavaScript是什么? 步骤 1.html 2.css 3.js 什么是前端 前端它是一个工作,它的 ...

最新文章

  1. Activex、OLE、COM、OCX、DLL之间区别、联系
  2. mycheckpoint
  3. Intellij IDEA 竟然把 Java8 的数据流问题这么完美的解决掉了!
  4. 设备控制接口(ioctl 函数)
  5. 「基本功」不可不说的Java“锁”事
  6. (笔试题)最大覆盖点
  7. Windows下SVN服务器的搭建步骤
  8. jdbc mysql数据类型对比 (版本: 5.1)
  9. QT调用OpenCV
  10. QT音乐播放器(接入网易云API)
  11. C语言蒙特卡洛,蒙特卡洛(Monte Carlo)模拟法 一  ( EXCEL 举例)
  12. python色彩变换CMYK,RGB,HSI
  13. 云服务器网站logo,云服务器logo
  14. 重标极差分析法matlab,重标极差(RS)分析法估计Hurst指数的有效性检验.doc
  15. 羊毛地毯可以用水洗吗
  16. 编写一个 SQL 查询来实现分数排名
  17. IDEA添加JQuery代码提示
  18. Windows 11 手机诞生,还是双屏的?
  19. LeetCode刷题日记2022-2-28/1601. 最多可达成的换楼请求数目-排列组合
  20. 谨以此文提醒一下自己这几天又犯怠惰的毛病了,还要继续加油

热门文章

  1. 【10.16】wordpress、discuz、域名重定向、用户认证
  2. VI设计与平面设计有什么区别 该怎么学好UI设计
  3. c语言程序设计考研大纲,沈阳建筑大学2018年C语言程序设计考研初试大纲
  4. [附源码]java毕业设计考研部落
  5. Golang实战项目-B2C电商平台项目(8)
  6. 2021-07-08IDEA+Java+Servlet+JSP+Bootstrap+Mysql实现Web学生成绩管理系统
  7. three.js 带更新文字的旋转地球
  8. myeclipse中文界面改颜色_图文设计颜色参考
  9. HPE可能又要收购超融合厂商SimpliVity了
  10. 罗斯蒙特压力变送器3051DP1A62A1AB4M5K8HR5