美文网首页
项目中常用的JS代码

项目中常用的JS代码

作者: 曾祥辉 | 来源:发表于2017-10-31 21:38 被阅读0次

    HTML5 DOM 选择器

    //原生js
    // querySelector() 返回匹配到的第一个元素
    var item = document.querySelector('.item');
    console.log(item);
    
    // querySelectorAll() 返回匹配到的所有元素,是一个nodeList集合
    var items = document.querySelectorAll('.item');
    console.log(items[0]);
    //jQuery
    var $node = $(node)//node{.class、#id、html }
    

    HTML5全屏

    function fullscreen(element) {
        if (element.requestFullscreen) {
            element.requestFullscreen();
        } else if (element.mozRequestFullScreen) {
            element.mozRequestFullScreen();
        } else if (element.webkitRequestFullscreen) {
            element.webkitRequestFullscreen();
        } else if (element.msRequestFullscreen) {
            element.msRequestFullscreen();
        }
    }
    
    fullscreen(document.documentElement);
    

    获取键盘Code码

     window.onkeydown = function(e){
         e=e||window.event
         document.getElementById('num').innerHTML = e.keyCode
     }
    

    阻止默认行为

    // 原生js
    document.getElementById('btn').addEventListener('click', function (event) {
        event = event || window.event;
    
        if (event.preventDefault){
            // w3c方法 阻止默认行为
            event.preventDefault();
        } else{
            // ie 阻止默认行为
            event.returnValue = false;
        }
    }, false);
    
    // jQuery
    $('#btn').on('click', function (event) {
        event.preventDefault();
    });
    

    阻止冒泡

    // 原生js
    document.getElementById('btn').addEventListener('click', function (event) {
        event = event || window.event;
    
        if (event.stopPropagation){
            // w3c方法 阻止冒泡
            event.stopPropagation();
        } else{
            // ie 阻止冒泡
            event.cancelBubble = true;
        }
    }, false);
    
    // jQuery
    $('#btn').on('click', function (event) {
        event.stopPropagation();
    });
    

    鼠标滚轮事件

    $('#content').on("mousewheel DOMMouseScroll", function (event) { 
        // chrome & ie || // firefox
        var delta = (event.originalEvent.wheelDelta && (event.originalEvent.wheelDelta > 0 ? 1 : -1)) || (event.originalEvent.detail && (event.originalEvent.detail > 0 ? -1 : 1));  
        
        if (delta > 0) { 
            // 向上滚动
            console.log('mousewheel top');
        } else if (delta < 0) {
            // 向下滚动
            console.log('mousewheel bottom');
        } 
    });
    

    jQuery 获取鼠标在图片上的坐标

    $('#myImage').click(function(event){
        //获取鼠标在图片上的坐标 
        console.log('X:' + event.offsetX+'\n Y:' + event.offsetY); 
        
        //获取元素相对于页面的坐标 
        console.log('X:'+$(this).offset().left+'\n Y:'+$(this).offset().top);
    });
    

    验证码倒计时代码

    //html代码
    <!-- dom -->
    <input id="send" type="button" value="发送验证码">
    
    //JavaScript代码
    // 原生js版本
    var times = 60, // 临时设为60秒
        timer = null;
                
    document.getElementById('send').onclick = function () {
        // 计时开始
        timer = setInterval(function () {
            times--;
            
            if (times <= 0) {
                send.value = '发送验证码';
                clearInterval(timer);
                send.disabled = false;
                times = 60;
            } else {
                send.value = times + '秒后重试';
                send.disabled = true;
            }
        }, 1000);
    }
    //////////////////////////////////////////////////////
    // jQuery版本
    var times = 60,
        timer = null;
    
    $('#send').on('click', function () {
        var $this = $(this);
        
        // 计时开始
        timer = setInterval(function () {
            times--;
            
            if (times <= 0) {
                $this.val('发送验证码');
                clearInterval(timer);
                $this.attr('disabled', false);
                times = 60;
            } else {
                $this.val(times + '秒后重试');
                $this.attr('disabled', true);
            }
        }, 1000);
    });
    

    js时间戳、毫秒格式化

    function formatDate(now) { 
        var y = now.getFullYear();
        var m = now.getMonth() + 1; // 注意js里的月要加1 
        var d = now.getDate();
        var h = now.getHours(); 
        var m = now.getMinutes(); 
        var s = now.getSeconds();
        
        return y + "-" + m + "-" + d + " " + h + ":" + m + ":" + s; 
    } 
    
    var nowDate = new Date(2016, 5, 13, 19, 18, 30, 20);
    
    console.log(nowDate.getTime()); // 获得当前毫秒数: 1465816710020
    console.log(formatDate(nowDate));
    

    js限定字符数(注意:一个汉字算2个字符)

    //html代码
    <input id="txt" type="text">
    //////////////////////////////////////////////
    //JavaScript代码
    //字符串截取
    function getByteVal(val, max) {
        var returnValue = '';
        var byteValLen = 0;
        for (var i = 0; i < val.length; i++) {
            if (val[i].match(/[^\x00-\xff]/ig) != null) byteValLen += 2; else byteValLen += 1;
            if (byteValLen > max) break;
            returnValue += val[i];
        }
        return returnValue;
    }
    
    $('#txt').on('keyup', function () {
        var val = this.value;
        if (val.replace(/[^\x00-\xff]/g, "**").length > 14) {
            this.value = getByteVal(val, 14);
        }
    });
    

    getBoundingClientRect() 获取元素位置

    //它返回一个对象,其中包含了left、right、top、bottom四个属性
    var myDiv = document.getElementById('myDiv');
    var x = myDiv.getBoundingClientRect().left; 
    var y = myDiv.getBoundingClientRect().top; 
    
    // 相当于jquery的: $(this).offset().left、$(this).offset().top // js的:this.offsetLeft、this.offsetTop
    

    相关文章

      网友评论

          本文标题:项目中常用的JS代码

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