星星触摸滑动功能

星星触摸评分功能

var touch_obj = {};
    $scope.touchs = function (event) {
      if(event.touches.length == 1){
        if(event.target.closest('.stat-text')){
          return;
        }
        if(event.target.closest('.start-div')){
          event.stopPropagation();
          var startLeft = event.target.closest('.start-div').offsetLeft; // 原始距离
          var indexArry = (event.target.closest('.start-div').getAttribute('id')).split('-');
          switch(event.type){
            case 'touchstart':
              touch_obj.hasMove = false;
              touch_obj.c_x = event.touches[0].clientX;
              touch_obj.c_y = event.touches[0].clientY;
              touch_obj.tonchStartTime = new Date().getTime();
              break;
            case 'touchend':
              touch_obj.hasMove = true;
              break;
            case 'touchcancel':
              touch_obj.hasMove = true;
              break;
            case 'touchmove':
              var tempX = event.changedTouches[0].clientX;
              var tempY = event.changedTouches[0].clientY;
              var diff_x = tempX - touch_obj.c_x;
              var diff_y = Math.abs(tempY - touch_obj.c_y);

              touch_obj.tonchEndTime = new Date().getTime();
              if(Math.abs(diff_x) > diff_y){//认定为水平方向滑动
                if(!touch_obj.hasMove && diff_x > 0){
                  // 右滑
                  var nX = touch_obj.c_x - startLeft;
                  startEvent(diff_x + nX,$scope.evaluateTagList[indexArry[1]]);
                }
                else if(diff_x < -1){
                  //左滑
                  var nX = tempX - startLeft;
                  startEvent(nX,$scope.evaluateTagList[indexArry[1]]);

                }
              }
              break;
          }
        }
      }
    };
    $timeout(function () {
      document.addEventListener("touchstart", $scope.touchs, false);
      document.addEventListener("touchmove", $scope.touchs, false);
      document.addEventListener("touchend", $scope.touchs, false);
    });
    function startEvent(nX,item) {
      var oneStar = document.querySelector('#key-0').firstElementChild; //获取星星
      var starWidth = oneStar.nextElementSibling.offsetLeft - oneStar.offsetLeft; //获取星星宽度
      var stat = (nX/starWidth).toFixed(1);
      if(stat < 0 ){
        stat = (0).toFixed(1);
      }
      var starSplit = stat.split('.');
      if( starSplit[1] == 0 ){
        starSplit[0] = starSplit[0] * 1;
      }else {
        if(starSplit[1] > 2 ){
          starSplit[0] = starSplit[0] * 1 + 1;
          starSplit[1] = 0;
        }else {
          starSplit[1] = 0.5;
        }
      }
      var scoreVal =  starSplit[0] * 1 + starSplit[1] * 1;
      $timeout(function () {
        item.score = scoreVal > 5 ? 5 : scoreVal;
        item.text = objText[item.score].text;
        item.className = objText[item.score].className;
      });
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值