美文网首页
五星评价效果

五星评价效果

作者: 成长储存罐 | 来源:发表于2019-08-26 14:58 被阅读0次

<style>

body{

  color:#666;

  font:12px/2 Arial;

  }

#star{

    margin: 10px auto;    /* border: 1px solid red; */

    width: 800px;

    position: relative; /*设置定位给p标签参考*/

}

ul{

    list-style-type:none;

    /* border: 1px solid green; */

    margin: 0px 10px; /*必须设置外边距才能上去*/

}

ul,span{

    float: left;

}

ul li{

    float: left;

      background: url('./images1/star.png') no-repeat;

      text-indent: -9999px; /* 隐藏a标签中的文本 */

      width: 24px;

      margin: 0px;

}

#star li.on{

  background-position:0 -28px;

  }

p{  /*后面要根据鼠标变动,更改p,所以要设置定位*/

    /* border: 1px solid blue;  */

    position: absolute;

    top:20px;

    width:200px;

    display: none;

}

p em{

    color: #f60;

    display: block;

    font-style: normal;

}

strong{

    color: #f60;

    padding-left: 20px;

}

</style>

<body>

    <div id="star">

            <span>点击星星就能打分</span>

        <ul>

            <li><a href="javascript:;">1</a></li>

            <li><a href="javascript:;">2</a></li>

            <li><a href="javascript:;">3</a></li>

            <li><a href="javascript:;">4</a></li>

            <li><a href="javascript:;">5</a></li>

        </ul>

        <span></span>

        <p>选择解释</p>

        </div>

</body>

<script>

//获取节点

var liObj = document.getElementsByTagName("li");

var pObj = document.querySelector("p");

var ulObj = document.querySelector("ul");

var spanObj = document.querySelectorAll("span")[1];

//保留评价的分数

var setScore = 0;

var msg = [

            "很不满意|差得太离谱,与卖家描述的严重不符,非常不满",

            "不满意|部分有破损,与卖家描述的不符,不满意",

            "一般|质量一般,没有卖家描述的那么好",

            "满意|质量不错,与卖家描述的基本一致,还是挺满意的",

            "非常满意|质量非常好,与卖家描述的完全一致,非常满意" 

];

//2.使用for给li绑定移入事件

for(var i=0;i<liObj.length;i++){

    liObj[i].index = i;

    //绑定移入事件

    liObj[i].onmousemove = function(){

    //3.显示文字解释框,设置display

    pObj.style.display = 'block';

    //4.计算p的位置

    //4.1获取ul距离父级左边的位置

    var ulLeft = ulObj.offsetLeft;

    //4.2使用当前li的索引,乘以li的宽高,编程p的实时位置

    pObj.style.left = ulLeft+(this.index*this.offsetWidth)+'px';

    //5.设置p中的显示文字

    var info = msg[this.index].split('|');

    pObj.innerHTML = "<em><strong>"+(this.index+1)+"分 "+info[0]+"</strong></em>"+info[1];

    getPoint(this.index+1)

    }

    /********鼠标点击时打分********/

          // 1 绑定点击事件

          liObj[i].onclick = function(){

            //  console.log(1)

            //2.获取点击li的索引值,索引值+1就是分数,要保存到变量setScore中

            //给getPoint使用

            setScore = this.index+1;

            getPoint();

            //3.将文字内容添加到span中

            var info = msg[this.index].split('|');

            var str = "<strong>"+(this.index+1)+"分 "+info[0]+"</strong>"+info[1];

            spanObj.innerHTML = str;

            //4.让跟随鼠标的文字消失

            pObj.style.display = 'none'

          }

            /********鼠标移出事件********/

            liObj[i].onmouseout = function(){

                //1让跟随鼠标的文字消失

                pObj.style.display = 'none';

                //2.调用打分的函数

                getPoint();

            }

}

    //添加评分的方法

    function getPoint(sta){

        //1.获取鼠标当前的所在的li的索引

        var score = sta || setScore;

        // console.log(score);

        //2.遍历所有的star,就是li

        for(var i=0;i<liObj.length;i++){

        //2.遍历所有的star的下标,和目前鼠标所在的li进行对比,

        //如果小于的就给on类

        liObj[i].className = (i<score ? 'on' :'');

        }

    }

</script>

相关文章

  • 五星评价效果

    body{ color:#666; font:12px/2 Arial; } #star{ ma...

  • iOS五星评价(允许半颗星)

    项目中遇到了五星评价的功能,便自定义了一个五星评价的空间,允许半颗星,可以点击、滑动控制。 构建方法如下## 方法...

  • 如何迭代案例教学效果

    如何案例教学效果迭代 在案例教学效果迭代上,我们可以采用的方式是在自我评价,学员评价、专业专家评价和流程专家评价,...

  • 五星评价控件封装

    我这个五星只能整星,并且只是展示,比较简单。很多时候我们项目里可能多处用到同样的UI展示,并且具有一定的代码量,那...

  • 惊人的社会定律,句句都像说自己

    1、评价定律: 不必好奇别人怎样评价你,想想你是怎样评价别人的。 2、效果定律: 在伤口上落泪和在伤口上撒盐,效果...

  • 《心理辅导活动课操作实务》结束篇

    第二节 心理辅导活动课的效果评价 一、辅导效果评价的标准 对心理辅导活动课效果的评价还是应该在实践中努力加以探索...

  • 长荣航空 五星荣耀 极致飞行 即刻起航

    长荣航空 五星荣耀 极致飞行 即刻起航 长荣航空 连续三年荣获SKYTRAX最高五星评价 全球十佳航空公司 「全球...

  • 长荣航空 五星荣耀 极致飞行 即刻起航

    长荣航空 五星荣耀 极致飞行 即刻起航 长荣航空 连续三年荣获SKYTRAX最高五星评价 全球十佳航空公司 「全球...

  • 用户星级评价效果

    今天看到有道题,用户做星级评价,于是就用jQuery写了一个。 代码就这么多

  • 经济效果评价

    经济效果评价的基本内容 财务分析应在项目财务效益与费用估算的基础上进行。 对于经营性项目,财务分析应通过编制财务分...

网友评论

      本文标题:五星评价效果

      本文链接:https://www.haomeiwen.com/subject/xaarectx.html