美文网首页
记一些比较通用的方法

记一些比较通用的方法

作者: 乘风破浪55 | 来源:发表于2017-09-29 16:05 被阅读13次
  • 页面通过URL传参
    样例:http:/xxx.html?param={"key":"value","key": "value","key":"value"}

      // 接收并处理url传递参数  
      getParam : function(){
          var href = decodeURIComponent(window.location.href);
          var aaa = href.substring(href.indexOf('?') + 1, href.length).split('=')[1];
          var getParam = null;
          if (aaa) {
              getParam = JSON.parse(aaa);
          } else {
              console.log('没有参数传入',{ duration:'short', type:'div' });
          }
          return getParam;
      }
    
  • 获取屏幕宽高

     //屏幕宽度
     wWidth : window.screen.width,
     //屏幕高度
     wHeight : window.screen.height
    
  • 获取时间

     getDate : function() {
         var d = new Date();
         return {
             // 年
             y : d.getFullYear(),
             // 月
             m : PrefixInteger(d.getMonth() + 1,2),
             // 日
             d : PrefixInteger(d.getDate(),2),
             // 时
             h : PrefixInteger(d.getHours() ,2),
             // 分
             min : PrefixInteger(d.getMinutes(),2),
             // 秒
             s : PrefixInteger(d.getSeconds(),2),
             // 季度
             jd : Math.floor((d.getMonth() + 3) / 3),
             // 毫秒
             ms : d.getMilliseconds()
         }; 
     }
    
  • 长按处理和短按处理

     $.fn.longPress = function(fn, fn2) {
         var timeout = undefined;
         var $this = this;
         for(var i = 0; i < $this.length; i++){
             var start = '';
             var end = '';
             var noMove = true;
             $this[i].addEventListener('touchstart', function(event) {
                 //长按时间超过800ms,则执行传入的方法
                 start = new Date();
             }, false);
             $this[i].addEventListener('touchmove', function(event) {
                 //滑动
                 noMove = false;
             }, false);
             $this[i].addEventListener('touchend', function(event) {
                 //长按时间少于800ms,不会执行传入的方法
                 end = new Date();
                 var diff = end - start;
                 if (diff > 800) {
                     fn(this);
                 } else {
                     if (noMove) {
                         fn2(this);
                     }
                 }
             }, false);
         }
     }
    
  • 避免短时间重复点击

    tapOnce : function(ele,callback) {
      var tapNum = 0;
      ele.on("tap", function(e) {
          tapNum ++;
          if (tapNum == 1) {
              callback(e);
          } else {
              setTimeout(function() {
                  tapNum = 0;
              }, 100);
          }   
      });
    }
    
  • 取消冒泡

    stopBubble : function(e){
      //一般用在鼠标或键盘事件上
      if(e && e.stopPropagation){
      //W3C取消冒泡事件
          e.stopPropagation();
      } else {
          //IE取消冒泡事件
          window.event.cancelBubble = true;
      }
    }
    
  • 数字 num 实现 n 位数显示,前面自动补零

     prefixInteger : function(num, n) {
        return (Array(n).join(0) + num).slice(-n);
    }
    
  • IOS 和 Android 终端检测

     //IOS 和 Android 终端检测
     function isIOS() {
         var u = navigator.userAgent;
         console.log(u);
         //android终端
         var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; 
         //ios终端
         var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); 
         if(isiOS) {
             return true;
         } else if (isAndroid) {
             //console.log('是否是Android:'+isAndroid);
             return false;
         }
     }
    

此处部分原创部分是从他处收藏,但是因为没有记录当初收藏部分的作者信息,所以无法一一备注声明。如果有侵权请告知我,马上删除。

相关文章

网友评论

      本文标题:记一些比较通用的方法

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