zoukankan      html  css  js  c++  java
  • 自己做的一个可以用在pc端移动端上点星星评论

    html:

    <div class="comment-box">
      <div class="info star-info cl docSkill">
        <span class="lbl">医术</span>
        <div class="value star" data-value="5">
          <em class="m-icon m-star"></em>
          <em class="m-icon m-star"></em>
          <em class="m-icon m-star"></em>
          <em class="m-icon m-star"></em>
          <em class="m-icon m-star"></em>
        </div>
      </div>
      <div class="info star-info cl docAttit">
        <span class="lbl">态度</span>
        <div class="value star" data-value="5">
          <em class="m-icon m-star"></em>
          <em class="m-icon m-star"></em>
          <em class="m-icon m-star"></em>
          <em class="m-icon m-star"></em>
          <em class="m-icon m-star"></em>
        </div>
      </div>

      <div class="comment-input">
        <span class="count">120</span>
        <textarea id="txtComment" class="chackTextarea" placeholder="请填写评论内容" maxlength="120"></textarea>
      </div>


    </div>

    css:

    .comment-box {
       padding-top: 10px;
    }
    .star-info {
      position: relative;
       height: 22px;
     `  padding-top: 3px;
      line-height: 25px;
    }
    .comment-box .star-info {
       height: 30px;
    }
    .star-info .lbl {
    position: absolute;
    top: 4px;
     left: 10px;
     color: #333;
    }
    .info .value {
     color: #666;
    }
    .star-info .value {
    display: block;
    padding-left: 35px;
    }
    .m-icon {
     position: relative;
     display: block;
     26px;
    height: 26px;
     background: url(../images/my-icon.png) 0 0 no-repeat;
    }
    .m-star {
    background-position: -227px -36px;//灰色星星的位置
    }
    .star .m-icon {
     display: inline-block;
    }
    .m-star-gray {
    background-position: -196px -36px;//点亮星星的位置
    }
    .comment-input {
    position: relative;
    padding: 15px 5px 10px 10px;
    font-size: 16px;
    background-color: #fff;
     border-top: 1px solid #ccc;
    }
    .comment-input .count {
     position: absolute;
     top: 2px;
     right: 3px;
     z-index: 1;
     font-size: 14px;
     color: #999;
    }
    .comment-input textarea {
    display: block;
      100%;
    height: 170px;
    line-height: 18px;
     resize: none;
    font-size: 15px;
    }
     
    js:
    $(function () {
        //点星星
        var $toComment = $('.to-comment'),
            $gradecon = $toComment.find('.comment-box');
        $gradecon.find('.star').children('.m-icon').on('click', function () {
            var $this = $(this),
                count = 4,
                num = $this.index(),
                $parent = $this.parent('.star'),
                $list = $parent.find('.m-icon');
            $list.removeClass('m-star');
            $list.addClass('m-star-gray');
            $parent.attr('data-value', num + 1);
            for (var i = 0; i <= count; i++) {
                if (i <=num) {
                    $list.eq(i).addClass('m-star');
                    $list.eq(i).removeClass('m-star-gray');
                }
                else {
                    $list.eq(i).addClass('m-star-gray');
                    $list.eq(i).removeClass('m-star');
                }
            }
        });
     
        var $chackTextarea = $toComment.find('#txtComment'),
            $num = 120;
        $chackTextarea.on('keyup', function () {
            var $this = $(this),
                medical = $this.val();
            var bool = isChinese(medical);
            var $b = $toComment.find('.count'); //获取当前的数字
            numChange(bool, $this, $num, $b);
        });
    });
     
    function isChinese(str) {  //判断是不是中文
        var reCh = /[u00-uff]/;
        return !reCh.test(str);
    }
     
    function numChange(bool, $this, $num, $b) {
        var strlen = 0, //初始定义长度为0
            txtval = $.trim($this.val()),
            $par = $('.comment-input .count');
        for (var i = 0; i < txtval.length; i++) {
            if (bool == true) {
                strlen = strlen + 2; //中文为2个字符
            } else {
                strlen = strlen + 1; //英文一个字符
            }
        }
        strlen = Math.ceil(strlen / 2); //中英文相加除2取整数
        if ($num - strlen < 0) {
            $par.html('-' + Math.abs($num - strlen)); //超出的样式
            $par.css('color', '#F00');
        } else {
            $par.html(($num - strlen)); //正常时候
        }
        $b.html($num - strlen);
    }
     
  • 相关阅读:
    字符串Hash 学习笔记
    P4315 月下“毛景树” 题解
    page
    Equation
    Graph
    配置UOJ数据的正确姿势
    luogu2261余数求和题解--整除分块
    luogu2858奶牛零食题解--区间DP
    luogu1005矩阵取数游戏题解--区间DP
    luogu4677山区建小学题解--区间DP
  • 原文地址:https://www.cnblogs.com/webgg/p/5138467.html
Copyright © 2011-2022 走看看