zoukankan      html  css  js  c++  java
  • js写评价的星星

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/ouqi_qiou/article/details/77428804

    刚开始接触写星星评价时,哇!估计脑子刚被驴踢了,竟然想到了最笨的办法-手工画五角星。妈呀! css样式都写了好大一串,还沾沾自喜终于画出来了,然后瞅一瞅旁边的妹子写得怎么样了,哇!人家机智的!直接用符号★就解决了!!!唉,智商捉急呀!

    先上图看看吧:

    虽然简单,还是有几个注意的地方:
    1. 未点击时的hover效果,星星会随鼠标移动亮起来喔。
    2. 点击后关闭hover效果。
    3. 点击同一颗星星,星星可以随时换色。

    具体代码展示:

    <!doctype html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        </head>
        <style type="text/css">
            .stars{
                white-space: nowrap;
                text-align: center;
                margin-top: 20px;
                margin-bottom: 20px;
            }
    
            .stars li{
                display: inline-block;
                color: #ADADAD;
                font-size: 40px;
            }
        </style>
    
        <body>
            <ul class="stars">
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
            <script src="../../js/common/jquery-git.js"></script>
            <script>
            $(function() {
                    //为星星设置hover效果
                    var isClicked = false;
                    var beforeClickedIndex = -1;
                    var clickNum = 0; //点击同一颗星次数
    
                    $('li').hover(
                        function() {
                            if(!isClicked) {
                                $(this).css('color', '#F0AD4E');
                                var index = $(this).index();
    
                                for(var i = 0; i <= index; i++) {
                                    $('li:nth-child(' + i + ')').css('color', '#F0AD4E');
                                }
                            }
                        },
                        function() {
                            if(!isClicked) {
                                $('li').css('color', '#ADADAD');
                            }
                        }
                    );
    
                    //星星点击事件
                    $('li').click(function() {
                        $('li').css('color', '#ADADAD');
                        isClicked = true;
                        var index = $(this).index();
    
                        for(var i = 1; i <= index+1; i++) {
                            $('li:nth-child(' + i + ')').css('color', '#F0AD4E');
                        }
                        if(index == beforeClickedIndex) { //两次点击同一颗星星 该星星颜色变化
                            clickNum++;
                            if(clickNum % 2 == 1) {
                                $('li:nth-child(' + (index + 1) + ')').css('color', '#ADADAD');
                            } else {
                                $('li:nth-child(' + (index + 1) + ')').css('color', '#F0AD4E');
                            }
    
                        } else {
                            clickNum = 0;
                            beforeClickedIndex = index;
                        }
                    });
                });
            </script>
        </body>
    
    </html>
  • 相关阅读:
    MongoDB
    Redis:C#使用Redis
    最大化 AIX 上的 Java 性能,第 4 部分: 监视流量
    最大化 AIX 上的 Java 性能,第 3 部分: 更多就是更好
    最大化 AIX 上的 Java 性能,第 2 部分: 速度需求
    最大化 AIX 上的 Java 性能,第 1 部分: 基础
    阿里面试重点总结
    函数库学习入门指引
    OracleAWR删除历史快照说明
    ActiveMQ实现负载均衡+高可用部署方案(转)
  • 原文地址:https://www.cnblogs.com/shuilangyizu/p/11382582.html
Copyright © 2011-2022 走看看