js实现星星评分功能的实现(逻辑思路)

简介: js实现星星评分功能的实现(逻辑思路)

1.先得到要操作的网页元素的DOM对象

img的DOM对象,textarea的DOM对象

2.遍历图片的DOM对象集合,绑定事件,

绑定鼠标移上的事件,鼠标移开的事件

3.事件触发时,回调函数的执行

鼠标移上时,判断当前移上的图片是第几张图片,

获取当前图片的title属性

根据是第几张图,来决定如何切换图片

① > 2 star2.png

② < 2 star1.png


27.png

28.png

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>评分</title>
    <link rel="stylesheet" href="css/style.css" />
</head>
<body>
    <div id="wrap">
        <div id="mark">
            <h1>宝贝与描述相符(打分匿名)</h1>
            <div id="pic">
                <img src="images/star0.png" title="1" name="0"/>
                <img src="images/star0.png" title="2" name="1"/>
                <img src="images/star0.png" title="3" name="2"/>
                <img src="images/star0.png" title="4" name="3"/>
                <img src="images/star0.png" title="5" name="4"/>
                <br/>
            </div>
            <form>
                <textarea cols="40" rows="8" value="" id='txt'></textarea>
                <br/>
                <button class="btn">公开评论</button>
            </form>
        </div>
    </div>
    <script>
        var pic=document.getElementById("pic");
        var txt=document.getElementById("txt");
        var divList=pic.children;
        var flag=0;
        var arr=["差","一般","中等","还行","还好"];
        for(var i=0;i<divList.length;i++)
        {
            divList[i].onmouseover=function()
            {
                this.setAttribute("src", "./images/star2.png");
                txt.innerHTML=arr[this.title-1];//获取当前对象的元素属性
            }
            divList[i].onclick=function()
            {
                flag=1;
                if(this.title >= 3){
                    for(var k=0;k<this.title;k++){
                        divList[k].setAttribute("src", "./images/star2.png");
                        txt.innerHTML=arr[k];
                    }
                }
                else {
                    for(var k=0;k<this.title;k++){
                        divList[k].setAttribute("src", "./images/star1.png");
                        txt.innerHTML=arr[k];
                    }
                }
            }
            divList[i].onmouseout=function()
            {
                if(flag==0)
                {
                     this.setAttribute("src", "./images/star0.png");
                     txt.innerHTML= "";//id属性为txt的页面内容为空
                }
                else
                {
                    if(this.title >= 3){
                        for(var k=0;k<this.title;k++){
                            divList[k].setAttribute("src", "./images/star2.png");
                            txt.innerHTML=arr[k];
                        }
                    }
                    else {
                        for(var k=0;k<this.title;k++){
                            divList[k].setAttribute("src", "./images/star1.png");
                            txt.innerHTML=arr[k];
                        }
                    }
                }
            }
        }
    </script>
    <!-- 
    1.先得到要操作的网页元素的DOM对象img的DOM对象,textarea的DOM对象
    2.遍历图片的DOM对象集合,绑定事件,绑定鼠标移上的事件,鼠标移开的事件
    3.事件触发时,回调函数的执行,鼠标移上时,判断当前移上的图片是第几个图片,获取当前图片的title属性
    根据是第几张图,来决定如何切换图片 -->
    <script type="text/javascript"></script>
</body>
<script>
</script>
</html>


相关文章
|
4天前
|
JavaScript
网页CAD(JS Vue 预览dwg)如何二次开发常用的CAD编辑功能
```markdown # CAD网页编程概览 - 使用mxcad库,实现CAD操作如删除、复制、镜像、移动和旋转。 - `erase()`方法删除实体,`clone()`配合`transformBy()`用于复制和编辑。 - `mirror()`和`transformBy(setMirror)`执行镜像操作,基于参考线。 - `move()`和`transformBy(setToTranslation)`实现移动功能。 - `rotate()`和`transformBy(setToRotation)`进行旋转,支持角度输入。 ```
网页CAD(JS Vue 预览dwg)如何二次开发常用的CAD编辑功能
|
11天前
|
JSON 缓存 前端开发
JavaScript 新特性:新增声明命令与解构赋值的强大功能
JavaScript 新特性:新增声明命令与解构赋值的强大功能
|
14天前
|
SQL Web App开发 JavaScript
业务功能常用的JS代码片段
业务功能常用的JS代码片段
15 3
|
21天前
|
移动开发 JavaScript 前端开发
Phaser和Three.js是两个非常流行的JavaScript游戏框架,它们各自拥有独特的核心功能和使用场景
【6月更文挑战第16天】Phaser是开源的2D游戏引擎,适合HTML5游戏,提供物理引擎、图像渲染和资源管理,适用于2D游戏,如消消乐。Three.js是基于WebGL的3D库,用于创建复杂的3D场景和应用,涵盖从游戏到可视化领域的多种用途。两者分别在2D和3D开发中展现强大功能,选择取决于项目需求。
22 8
|
20天前
|
自然语言处理 JavaScript 前端开发
【JavaScript】JavaScript基础知识强化:变量提升、作用域逻辑及TDZ的全面解析
【JavaScript】JavaScript基础知识强化:变量提升、作用域逻辑及TDZ的全面解析
19 3
|
23天前
|
JavaScript 前端开发
JS导出excel功能
JS导出excel功能
|
23天前
|
JavaScript Serverless
JS实现递归功能
JS实现递归功能
|
23天前
|
JavaScript
JS实现分页功能
JS实现分页功能
|
5天前
|
前端开发 JavaScript
前端 JS 经典:封装全屏功能
前端 JS 经典:封装全屏功能
4 0
|
5天前
|
JavaScript 前端开发
前端 JS 经典:统一 Vite 中图片转换逻辑
前端 JS 经典:统一 Vite 中图片转换逻辑
7 0