美文网首页
(17.05.03)键盘事件、DOM、jq中的解绑事件、原生和j

(17.05.03)键盘事件、DOM、jq中的解绑事件、原生和j

作者: 张不困_ | 来源:发表于2017-11-12 17:27 被阅读0次
    javascript的组成部分?
        ECMAScript          核心解释器
        DOM                 文档对象模型
        BOM                 浏览器对象模型
    
        DOM
            DOM树
                html页面的结构关系
            获取子节点
                父级.children             获取第一层子节点
            获取父节点
                结构父级
                    oEle.parentNode
                定位父级
                    oEle.offsetParent
            创建节点
                document.createElement('标签名');
            插入
                父级.appendChild(新节点);
                    从父级的后面添加
                父级.insertBefore(新节点,在谁之前插入);
                    在某个节点之前插入
            删除  
                父级.removeChild(子节点);
    事件
        事件对象
            包含了事件触发的详细信息
            ev      高版本浏览器
            event   低版本浏览器
            oBtn.onclick = function(ev){
                var oEvent = ev||event;
                oEvent.clientX
                oEvent.clientY
    
                oEvent.pageX
                oEvent.pageY
            };
    
            事件绑定(事件监听)
                oEle.addEventListener('sEv', fn, false);
                高版本
                oEle.attachEvent('onsEv', fn);
                低版本
    
            定义函数
            function addEvent(obj, sEv, fn){
                if(obj.addEventListener){
                    obj.addEventListener(sEv,fn,false);
                }else{
                    obj.attachEvent('on'+sEv,fn);
                }
            }
            调用
            addEvent(oBtn,'click',function(){
                alert(1);
            });
    
            事件解绑
            定义函数
            function removeEvent(obj, sEv, fn){
                if(obj.removeEventListener){
                    obj.removeEventListener(sEv,fn,false);
                }else{
                    obj.detachEvent('on'+sEv,fn);
                }
            }
            调用
            removeEvent(oBtn,'click',function(){
                alert(1);
            });
    
            匿名函数不能被解绑
    
            原因:匿名函数虽然长得一样,但是不是一个
                var show = new Function();
                function show(){}
    
            事件流
                DOM事件流
                    冒泡阶段        捕获阶段
                IE事件流
                    冒泡阶段
    
    
                取消冒泡
                    ev.cancelBubble = true;
    
            默认事件、默认行为
                浏览器自己实现的功能
                阻止默认事件
                    return false;
                    遇到addEventListener不兼容
                    ev.preventDefault&&ev.preventDefault();
    
            事件委托、事件委派、事件派生
                给父级添加事件
                获取事件源
                    var oSrc = ev.srcElement||ev.target;
    
    
            onmouseover和onmouseout的bug
                换事件
                    onmouseenter
                    onmouseleave
    
            DOMReady
                方法一         推荐
                    document.addEventListener('DOMContentLoaded',function(){
    
                    },false);
                方法二
                    document.onreadystatechange = function(){
                        if(document.readyState=='complete'){
    
                        }
                    };
    

    键盘事件
        键盘按下事件
            onkeydown
        键盘抬起事件
            onkeyup

        区分按键:键码
            oEvent.keyCode

        backspce    8
        回车    13
        空格    32


        拖拽回放


    jquery
        $(function(){
    
        })();
        推荐以下做法
        $(document).ready(function(){
    
        });
    
    

        DOM操作
            appendTo
            prependTo
            remove


    JQuery中的事件
        都是绑定上去的
            $().on     绑定事件
            $().off    解绑事件

        事件委托

            $('ul').on('click','li',function(){
    
            });
    

    原生对象和jquery对象
        原生对象
            document.getElementById();
            document.getElementsByTagName();
        jquery对象
            $();

    原生对象和jquery对象不互通。

        原生对象和jquery对象之间的转换
            原生对象-》jquery对象
                $(原生对象)
            jquery对象-》原生对象
                $().get(下标)
                $()[下标]

        $().each()          //操作jquery元素的
            $('ul li').each(function(index,oEle){
                index           索引
                oEle            遍历出来的原生对象
                this            遍历出来的原生对象
    
                oEle==this 
            });
    

        获取相对位置
            obj.offsetLeft
            obj.offsetTop

            $().position()

        获取绝对位置
            getPos().left/top

            $().offset()



    $().width()


    $().height()

    宽+padding*2
    $().innerWidth()

    高+padding*2
    $().innerHeight()

    宽+padding2+border2
    $().outerWidth()

    高+padding2+border2
    $().outerHeight()


        插件机制

            定义一个插件
            $.fn.toRed = function(){
                this.css('background','red');
            };
    
        批量定义插件          √
        $.fn.extend({
            名字:function(){}
        });
    

        jquery中
            return false
            阻止默认事件
            取消冒泡


    CSS3
    选择器

    transition
    transform
    text-shadow
    linear-gradient
    radial-tradient
    border-radius
    animation
    -webkit-mask
    浏览器前缀
    
    box-shadow: x y blur color;
    

    浏览器前缀
        -webkit-     Chrome、Safari、Opera
        -moz-      Firefox
        -ms-      IE
        -o-      Opera
        不加前缀

            -webkit-transition:1s all ease;
            -moz-transition:1s all ease;
            -ms-transition:1s all ease;
            -o-transition:1s all ease;
            transition:1s all ease;
    

         用js操作浏览器前缀

            css                     js
            -webkit-transition      WebkitTransition
            -moz-transition         MozTransition
            -ms-transition          msTransition
            -o-transition           OTransition
            transition              transition
    
    
            setC3Style(obj,sName,sValue);
    

    transform

        transform       变形
            rotate          旋转      deg
            translate       平移
            scale           缩放
    
            原点
                中心点
                transform-origin
    
    例子:
            CSS3简易时钟
    
                1圈      360°
                12h         1h  ==  30°
                60m         1m  ==  6°
                60s         1s  ==  6°
    
    
                5           1
                10          2
                15          3
                20          4
    

        transform 多个值
            有先后执行顺序,后面的先执行
        transform 注意
            不能操作行元素

        文本切片
            -webkit-background-clip:text;
            -webkit-background-clip 一定要设置在背景颜色后面


        移动端
            手机、平板、watch、电视

            pc端怎么写,移动端就怎么写。
            而且还简单了。不需要注意兼容。东西少。
            只不过移动端需要注意尺寸。

        移动端方式:
            定宽
            百分比
    ----------------------------------------------
            响应式
            只有一套页面,在不能尺寸的设备上用不同的样式
            弹性
            rem


    总结:

        键盘事件
            onkeydown           键盘按下
            onkeyup             键盘抬起
    
                获取键码
                    oEvent.keyCode
    
        JQuery
            $(document).ready();
            事件
                $().on(sEv,['委托'],function(){});
                off
            循环
            $().each(function(index,oEle){
                index           索引
                oEle            原生对象
                this            原生对象
            });
            原生对象和jquery对象的转换
                原生对象-》jquery对象
                    $(原生)
                jquery对象-》原生对象
                    $()[下标]
                    $().get(下标)
            宽高
            $().width()
            $().height()
            宽高+padding
            $().innerWidth()
            $().innerHeight()
            宽高+padding+border
            $().outerWidth()
            $().outerHeight()
    
            获取定位
                相对定位
                    $().position().left/top;
                绝对定位
                    $().offset().left/top;
            插件扩展
                //jquery中所有的this都是原生对象,只有一个例外
                插件中的this是jquery对象
                $.fn.xxx = function(){
                };
                $.fn.extend({
                    xxx:function(){}
                });
    
            取消冒泡,阻止默认事件
                return false;
    
                单独阻止默认事件
                    ev.preventDefault()
                单独取消冒泡
                    ev.stopPropagation();
    -------------------------------------------------------
        CSS3
            浏览器前缀
                -webkit-            Chrome,Safari,Opera
                -moz-               Firefox
                -ms-                IE
                -o-                 old Opera
                不加前缀            
            transform
                原点
                    -webkit-transform-origin
                transform的书写顺序:
                    后写的先执行
                文本切片
                    -webkit-background-clip:text;
                    切记,一定要写在背景色后面。
    

    相关文章

      网友评论

          本文标题:(17.05.03)键盘事件、DOM、jq中的解绑事件、原生和j

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