zoukankan      html  css  js  c++  java
  • 一些常用的JS函数

    //获取元素属性

    function getStyle(obj, attr) {

        return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, 0)[attr];

    }

    //运动函数

    function doMove(obj, attr, speed, target, endFn) {

        clearInterval(obj.timer);

        speed = parseInt(getStyle(obj, attr)) < target ? speed : -speed;

        //alert(speed);

        obj.timer = setInterval(function () {

            var curPosition = parseInt(getStyle(obj, attr)) + speed;

            if (curPosition > target && speed > 0 || curPosition < target && speed < 0)

                curPosition = target;

            obj.style[attr] = curPosition + 'px';

            if (curPosition == target) {

                clearInterval(obj.timer);

                endFn && endFn();

            }     }, 50); }

    //抖动函数

    //透明度渐变函数

    //需找与数组相等的值函数

    function arrIndexOf(arr, v) {

        for (i = 0; i < arr.length; i++) {

            if (arr[i] == v) {

                return i; //返回与目标值相等的数组的下标值

            }

        }

        return -1;

    }

    //getElementByClassName函数

    function getElementByClassName(parent, tagName, className) {

        var aEls = parent.getElementsByTagName(tagName);

        var arr = [];

        for (var i = 0; i < aEls.length; i++) {

            var arrClassName = aEls[i].className.split(' ');

            var _index = arrIndexOf(arrClassName, className);

            if (_index != -1) {

                arr.push(aEls[i]);

            }

        }

        return arr;

    }

    //addClass函数

    function addClass(obj, className) {

        if (obj.className == '') {

            //如果原来没有class

            obj.className = className;

        }

        else {

            var arrClassName = obj.className.split(' ');

            var _index = arrIndexOf(arrClassName, className);

            if (_index == -1) {

                //如果要添加的class在原来的class中不存在

                obj.className += ' ' + className;

            }

            //如果要添加的class在原来的class中存在,则不需要做任何事

        }

    }

    //removeClass函数

    function removeClass(obj, className) {

        //如果原来有class

        if (obj.className != '') {

            var arrClassName = obj.className.split(' ');

            var _index = arrIndexOf(arrClassName, className);

            if (_index != -1) {

                arrClassName.splice(_index, 1);  //删除需要删除的calss

                obj.className = arrClassName.join(' '); //然后将arrClassName数组拼接起来

            }

        }

    }

    //绑定事件函数

    function bind(obj, evname, fn) {

        if (obj.addEventListener) {

            obj.addEventListener(evname, fn, false);

        } else {

            obj.attachEvent('on' + evname, function () {

                fn.call(obj);             //fn()==fn.call()  call(第一个参数,第二个参数) call函数可以改变函数this的指向,call函数传入的第一个参数就是改变this指向的值,call的第二第三个参数就是原函数的参数

            });

        }

    }

    //鼠标在可视区域内的拖拽 不兼容非标准IE

    function clientDrag(obj) {

        obj.onmousedown = function (ev) {

            ev = ev || event;

            var ms_b = ev.clientX - obj.offsetLeft;

            var ms_t = ev.clientY - obj.offsetTop;

            document.onmousemove = function (ev) {

                ev = ev || event;

                var currX = ev.clientX - ms_b;

                var currY = ev.clientY - ms_t;

                var Width = document.body.clientWidth || document.documentElement.cilentWidth;

                var Height = document.body.clientHeight || document.documentElement.cilentHeight;

                if (currX < 0) { currX = 0; }

                else if (currX > Width - obj.clientWidth) {

                    currX = Width - obj.clientWidth;

                }

                if (currY < 0) { currY = 0; }

                else if (currY > Height - obj.clientHeight) {

                    currY = Height - obj.clientHeight;

                }

                obj.style.left = currX + 'px';

                obj.style.top = currY + 'px';

                return false;

            }

            document.onmouseup = function () {

                document.onmousemove = document.onmouseup = null;

            }

        }

    }

  • 相关阅读:
    烟大课表PC端-不仅仅是浏览器和手机APP
    关于51单片机电子时钟精度的问题
    第十二周项目4-点、圆的关系
    Git on Windows 一些问题
    vi 的使用
    Git 账户认证的一些问题
    [Windows] win7 配置Java开发环境
    Velocity 局部定制模板
    [Storm] Storm与asm的恩恩怨怨
    [Storm] No data flows into bolt
  • 原文地址:https://www.cnblogs.com/brucehome/p/4563654.html
Copyright © 2011-2022 走看看