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

记一些比较通用的方法

作者: 乘风破浪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