zoukankan      html  css  js  c++  java
  • HTML5商城开发三 jquery 星星评分插件

    展示:

    实现方法:

    1.html引用star-grade.js

    <script type="text/javascript" src="Scripts/star-grade.js"></script>
        <script type="text/javascript"> 
            $(document).ready(function () {
                $(".sstar").BindStars();//使用属性data-score获取评分值
                $("#pye").SetStars(3);//传分数,自动列出星星
            });
        </script>
    <body>
        <div class="starscore sstar">
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
        </div>
        <span id="ye"></span>
        <div class="starscore" id="pye"></div>
    
        <div class="starscore starscore_sm" >
            <i class="inred"></i>
            <i class="inred"></i>
            <i></i>
            <i></i>
            <i></i>
        </div>
        <div class="starscore starscore_lg">
            <i class="onred"></i>
            <i class="onred"></i>
            <i></i>
            <i></i>
            <i></i>
        </div>
    </body>

    2.css样式

    @charset "utf-8";
    /* CSS Document */
    .starscore {
         200px;
        height: 30px;
    }
    
        .starscore i {
             14px;
            height: 14px;
            background: url(images/gray.gif) no-repeat; /* 14x14的灰色星星图标 */
            display: inline-block;
            vertical-align: middle;
            background-size: contain; 
        }
    
            .starscore i.inred, .starscore i.onred {
                background: url(images/yel.gif) no-repeat; /* 14x14的黄色星星图标 */
            }
    
    .starscore_lg > i {
         18px;
        height: 18px;
    }
    
    .starscore_sm > i {
         12px;
        height: 12px;
    }

    3.插件js源码

    /*
    *   jq扩展--星星评分插件
    *
    *   通过对象的属性data-score获取评分值
    *   星星使用元素i表示,绑定星星背景图
    *   鼠标进入、离开事件的绑定样式为inred,改变背景图
    *   点击事件的绑定样式为onred,改变背景图
    */
    (function ($) {
        "use strict";
        $.fn.BindStars = function () {
            var starElement = $(this);
            starElement.children("i").mouseleave(function () {
                starElement.find("i").each(function (index) {
                    $(this).removeClass("inred");
                });
            });
            starElement.children("i").mouseenter(function () {
                var curIndex = starElement.find("i").index(this);
                starElement.find("i").each(function (index) {
                    if (index <= curIndex) {
                        $(this).addClass("inred");
                    }
                    else {
                        $(this).removeClass("inred");
                    }
                });
            });
            starElement.children("i").click(function () {
                var curIndex = starElement.find("i").index(this);
                starElement.find("i").each(function (index) {
                    if (index <= curIndex) {
                        $(this).addClass("onred");
                    }
                    else {
                        $(this).removeClass("onred");
                    }
                }); 
                starElement.attr("data-score", curIndex + 1);
            });
        };
        $.fn.SetStars = function (score) {
            var scoreStr = "";
            for (var i = 0; i < 5; i++) {
                if (i < score) {
                    scoreStr += "<i class='onred'></i>";
                } else {
                    scoreStr += "<i></i>";
                }
            } 
            $(this).html(scoreStr); 
        };
    })(window.jQuery);
  • 相关阅读:
    flask 源码专题(七):threading.local和高级
    flask 源码专题(六):session处理机制
    flask 源码专题(五):SqlAlchemy 中操作数据库时session和scoped_session的区别
    flask 源码专题(四):wtforms Form实例化流程以及csrf验证
    flask 源码专题(三):请求上下文和应用上下文入栈与出栈
    python 追踪函数调用
    flask 源码专题(一):app.run()的背后
    flask 源码专题(二):请求上下文与全文上下文
    边框间距 | border-spacing (Miscellaneous Level 2)
    边框样式属性 | border-top-style (Backgrounds & Borders)
  • 原文地址:https://www.cnblogs.com/xcsn/p/7779269.html
Copyright © 2011-2022 走看看