记一些比较通用的方法

  • 页面通过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;
         }
     }
    

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 不支持上传文件,所以就复制过来了。作者信息什么的都没删。对前端基本属于一窍不通,所以没有任何修改,反正用着没问题就...
    全栈在路上阅读 1,999评论 0 2
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,109评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,842评论 2 17
  • 一提到成龙,恐怕在华语区内无人不知无人不晓,上到九十九,下到刚会走,都对这样一个充满正能量的明星略知一二,哪怕没看...
    棠樾牌坊阅读 384评论 0 2
  • 做个公众号的心思已经在心里盘旋很久很久了,于是乎,前些天,我撇开所有顾虑,做不起来怎么办,内容不好怎么办,粉丝上不...
    陈默梓阅读 114,978评论 6 13