zoukankan      html  css  js  c++  java
  • 前端笔记

    /*输入金额限制两位小数*/
    <input type="number" placeholder="其他金额" class="m_input" onkeyup="clearNoNum(this)"/>
    
    function clearNoNum(obj){
    if(! /^d+(.d{1,2})?$/.test(obj.value) ){
    obj.value = obj.value.replace(/[^d.]/g,""); //清除"数字"和"."以外的字符
    obj.value = obj.value.replace(/^./g,""); //验证第一个字符是数字而不是
    obj.value = obj.value.replace(/.{2,}/g,"."); //只保留第一个. 清除多余的
    obj.value = obj.value.replace(".","$#$").replace(/./g,"").replace("$#$",".");
    obj.value = obj.value.replace(/^(-)*(d+).(dd).*$/,'$1$2.$3'); //只能输入两个小数
    }
    
    }
    /*菜单固定到屏幕上*/
    window.onscroll=function(){//滚轮事件
                var top=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop;//滚轮滚动的距离
                var node=document.getElementById('top-menu');//变化的菜单模块
                if(top>450){//就是滚动条滚动到440px位置,显示菜单,并且可以修改它的样式。
                    node.style.position='fixed';
                    node.style.width='100%';
                    //node.style.background='#fff';
                    node.style.left='0';
                    node.style.top='0';
                    node.style.zIndex="999";
                }else{//当鼠标滚动回初始位子样式变回。
                    node.style.position='static';
                    //node.style.background='rgba(0, 0, 0, 0)';
                    node.style.zIndex="0";
                    style="position:fixed;left:0px;top:0px;"
                }
            }
    /*获取地理位置*/
    <script src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"></script>
    
    //获取地理位置省份和城市  alert(remote_ip_info.province  + remote_ip_info.city)
    /*跨域*/
    //前端ajax请求
    $.ajax({
             url: '',
             dataType: 'json',
              type: 'POST',
              xhrFields: {
             'withCredentials': true//跨域
              },
               crossDomain: true
     });
                                           
    
    //php后端
     header('Access-Control-Allow-Origin:'.(isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN']: '*'));
            header('Access-Control-Allow-Methods:GET,POST,PUT,DELETE,OPTIONS');
            header('Access-Control-Allow-Headers:Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With, Process-Data');
            header('Access-Control-Allow-Credentials:true');
    /*返回上次浏览位置*/
    <script src="jquery-1.8.3.min.js" type="text/javascript"</script>
      <script src="jquery.cookie.js" type="text/javascript"></script>
       $(function () {
            var str = window.location.href;
            str = str.substring(str.lastIndexOf("/") + 1);
            if ($.cookie(str)) {
            $("html,body").animate({ scrollTop: $.cookie(str) }, 1000);
            }
            else {
            }
        })
    
       $(window).scroll(function () {
            var str = window.location.href;
            str = str.substring(str.lastIndexOf("/") + 1);
            var top = $(document).scrollTop();
            $.cookie(str, top, { path: '/' });
            return $.cookie(str);
        })
    /*判断各个平台*/
    getUA = function() {
        var ua = navigator.userAgent.toLowerCase();
        var browser = {};
        if (ua.match(/iphone|nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|wap|mobile/i)) {
            browser.mobile = true; //判断是否是手机访问
        }
        if (ua.match(/MicroMessenger/i)) {
            browser.weChat = true; //判断是不是微信
        }
        if (ua.match(/iphone|ipad/i)) {
            browser.ios = true; //判断是不是ios系统
        }
        if (ua.match(/android/i)) {
            browser.android = true; //判断是不是安卓系统
        }
        if (ua.match(/Windows Phone/i)) {
            browser.wp = true; //判断是不是windows系统
        }
        if (ua.match(/ipad/i)) {
            browser.ipad = true;
        }
        return browser;
    }
    /*匹配行内style元素*/
    function existdisplay() {
        $('body').find('.pop-box').each(function () {
             var block = new RegExp('display: block');
             var test = block.test($(this).attr("style"));
    
            if(test){
                exist = 1;
                return false;
            }else{
                exist = 0;
            }
        });
        return false;
    }
    /*苹果手机自动播放音频*/
    //一般情况下,这样就可以自动播放了,但是一些奇葩iPhone机不可以 
      document.getElementById('audio').play(); 
    //必须在微信Weixin JSAPI的WeixinJSBridgeReady才能生效  
      document.addEventListener("WeixinJSBridgeReady", function () { 
           document.getElementById('audio').play(); 
       }, false);
    /*数字逗号分隔*/
    function initNumber(){
          var num = $('.num').html(),num1 = $('.num1').html();//用原生函数,兼容不好
          $('.num').html(parseFloat(num).toLocaleString());
          $('.num1').html(parseFloat(num1).toLocaleString());
    
        var nums=$('.item_num').html();//number.toFixed(2).replace(/d(?=(d{3})+(?!d))/g, '$&,' );正则分隔
        $('.item_info ').each(function(){
            var num = $(this).find('.item_num span').text();
            console.log(num.replace(/d(?=(d{3})+(?!d))/g, '$&,' ));
            $(this).find('.item_num').html( num.replace(/d(?=(d{3})+(?!d))/g, '$&,' ) );
        });
    }
    ?*slider 触摸滑动*/
    //定义变量,用于记录坐标和角度
        var startx,starty,movex,movey,endx,endy,nx,ny,angle;
        var subsidiary = document.getElementById('subsidiary');        //获取DOM标签
    
        //开始触摸函数,event为触摸对象
        function touchs(event){
            //阻止浏览器默认滚动事件
            event.preventDefault();
    
            //通过if语句判断event.type执行了哪个触摸事件
            if(event.type=="touchstart"){
                console.log('开始');
                //获取开始的位置数组的第一个触摸位置
                var touch = event.touches[0];
                //获取第一个坐标的X轴
                startx = Math.floor(touch.pageX);
                //获取第一个坐标的X轴
                starty = Math.floor(touch.pageY);
            }else if(event.type=="touchmove"){
                //触摸中的坐标获取
                // console.log('滑动中');
                var touch = event.touches[0];
                movex = Math.floor(touch.pageX);
                movey = Math.floor(touch.pageY);
    
                //当手指离开屏幕或系统取消触摸事件的时候
            }else if(event.type == "touchend" || event.type == "touchcancel"){
                //获取最后的坐标位置
                endx = Math.floor(event.changedTouches[0].pageX);
                endy = Math.floor(event.changedTouches[0].pageY);
                // console.log('结束');
    
                //获取开始位置和离开位置的距离
                nx = endx-startx;
                ny = endy-starty;
    
                //通过坐标计算角度公式 Math.atan2(y,x)*180/Math.PI
                angle = Math.atan2(ny, nx) * 180 / Math.PI;
                // console.log(nx);
                if(Math.abs(nx)<=1 ||Math.abs(ny)<=1){
                    // console.log('滑动距离太小');
                    return false;
                }
    
                //通过滑动的角度判断触摸的方向
                if(angle<45 && angle>=-45){
                    index-=1;
                    if (index < 0) {
                        // index = sliderNum - 1;
                        index = 0;
                    }
                    if (index > moveSlidenum) {
                        index = moveSlidenum;
                    }
                    console.log(index);
                    // alert('右滑动');
                    selectSlider(index);
                    return false;
                }
                else if((angle<=180 && angle>=135) || (angle>=-180 && angle<-135 )){
                    index+=1;
                    if (index > moveSlidenum) {
                        index = moveSlidenum;
                    }
                    console.log(index);
                    if (index <= moveSlidenum) {
                        selectSlider(index);
                    }
                    // alert('左滑动');
                    return false;
                }
    
            }
        }
    
        //添加触摸事件的监听,并直行自定义触摸函数
        subsidiary.addEventListener('touchstart',touchs,false);
        subsidiary.addEventListener('touchmove',touchs,false);
        subsidiary.addEventListener('touchend',touchs,false);
    //监听鼠标滚轮 翻页
        var screen_height = $(window).height();
        var doScroll = true;
    
        var oDiv = document.querySelector('.main-wrapper');
        var footer = document.querySelector('#main-footer');
        function onMouseWheel(ev) {/*当鼠标滚轮事件发生时,执行一些操作*/
            var ev = ev || window.event;
            var down = true; // 定义一个标志,当滚轮向下滚时,执行一些操作
            down = ev.wheelDelta ? ev.wheelDelta < 0 : ev.detail > 0;
            if (doScroll) {
                if (down) {
                    if (page_index != 3) {
                        doScroll = false;
                        page_index++;
                        vm.scrollTo(page_index * screen_height);
                        //当响应向下滚动事件的时候,将doScroll设置成false,控制在这次响应过程中,不再响应其他滚轮事件,当这次事件执行结束后(500ms后),再讲doScroll恢复成true,准备响应下次滚动。
                        setTimeout(function () {
                            doScroll = true;
                        }, 500);
                    }
                } else {
                    if (page_index != 0) {
                        doScroll = false;
                        page_index--;
                        vm.scrollTo( page_index * screen_height);
                        // $("#main-swiper").css('transition-duration', '.5s');
                        setTimeout(function () {
                            doScroll = true;
                        }, 500);
                    }
                }
                if (ev.preventDefault) {/*FF 和 Chrome*/
                    ev.preventDefault();// 阻止默认事件
                }
            }
    
            return false;
        }
        addEvent(oDiv, 'mousewheel', onMouseWheel);
        addEvent(oDiv, 'DOMMouseScroll', onMouseWheel);//谷歌浏览器
        addEvent(footer, 'mousewheel', onMouseWheel);
        addEvent(footer, 'DOMMouseScroll', onMouseWheel);
    
    
        function addEvent(obj, xEvent, fn) {
            if (obj.attachEvent) {
                obj.attachEvent('on' + xEvent, fn);
            } else {
                obj.addEventListener(xEvent, fn, false);
            }
        }

    待续......

  • 相关阅读:
    Vector3函数理解-计算两向量之间的角度
    Android报错Type Error executing aapt: Return code -1
    android中 onResume()方法什么时候执行 ??(转)
    自行实现Kinect 手势Demo踩的坑
    Kinect 2.0 默认姿势的中文意思
    C#限制float有两位小数
    Android View 从左边滑出动画 ,以及从左上,左下,右上,右下放大动画。
    注册谷歌账户时最后一步验证账户输入手机号说此电话号码无法用于进行验证,如何解决?
    Mac使用sonarqube进行代码检测
    Unable to find method 'org.gradle.api.tasks.TaskInputs.file
  • 原文地址:https://www.cnblogs.com/qiufang/p/8862716.html
Copyright © 2011-2022 走看看