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>


相关文章
|
2月前
|
JavaScript 前端开发
JavaScript分页功能
JavaScript分页功能
|
1月前
|
JSON JavaScript 前端开发
[JS]面试官:你的简历上写着熟悉jsonp,那你说说它的底层逻辑是怎样的?
本文介绍了JSONP的工作原理及其在解决跨域请求中的应用。首先解释了同源策略的概念,然后通过多个示例详细阐述了JSONP如何通过动态解释服务端返回的JavaScript脚本来实现跨域数据交互。文章还探讨了使用jQuery的`$.ajax`方法封装JSONP请求的方式,并提供了具体的代码示例。最后,通过一个更复杂的示例展示了如何处理JSON格式的响应数据。
35 2
[JS]面试官:你的简历上写着熟悉jsonp,那你说说它的底层逻辑是怎样的?
|
21天前
|
JavaScript 前端开发 容器
jQuery多功能滑块插件r-slider.js
r-slider.js是一款jQuery多功能滑块插件。使用该插件,可以制作出滑块、开关按钮、进度条、向导步骤等多种效果。
29 5
|
1月前
|
JavaScript
js实现简洁实用的网页计算器功能源码
这是一款使用js实现简洁实用的网页计算器功能源码。可实现比较基本的加减乘除四则运算功能,界面简洁实用,是一款比较基本的js运算功能源码。该源码可兼容目前最新的各类主流浏览器。
24 2
|
2月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
2月前
|
JavaScript 前端开发 API
|
2月前
|
JavaScript API UED
vue.js怎么实现全屏显示功能
【10月更文挑战第7天】
37 1
|
2月前
|
资源调度 JavaScript UED
如何使用Vue.js实现单页应用的路由功能
【10月更文挑战第1天】如何使用Vue.js实现单页应用的路由功能
|
2月前
|
JavaScript 搜索推荐
JS中的模糊查询功能
JS中的模糊查询功能
36 1
|
2月前
|
前端开发 JavaScript
使用 JavaScript 实现图片预览功能
使用 JavaScript 实现图片预览功能
44 0