• [妙味DOM]第六课:鼠标滚轮和COOKIE


    知识点总结:

    •  鼠标滚轮事件

    存在兼容性问题:
      IE/chorme : onmousewheel
      FF : DOMMouseScroll,必需用在addEventListener下,例如:

    if (obj.addEventListener) {
        obj.addEventListener('DOMMouseScroll',fn,false);    
    }

    注:addEventListener也需要做兼容,该方法在FF和chorme有效,在IE中是attachEvent

    滚轮属性:
      IE/chorme:
        ev.wheelDelta
          下:-120
          上:120

      FF:
        ev.detail
          下:3
          上:-3

    考虑到兼容性,通过布尔值为进行兼容的处理

            var oDiv = document.getElementById('div1');
            var b = true; //默认方向:向下
    
            //事件绑定兼容
            var bind = function(obj,eventName,eventFn){
                if (obj.addEventListener){
                    obj.addEventListener(eventName,eventFn,false);
                } else {
                    obj.attachEvent('on'+eventName,function(){
                        eventFn.call(obj);
                    });
                }
            };
            //获取方向 
            var getDir = function(dir){
                if (dir){
                    return '向下';
                } else {
                    return '向上';
                }
            };
    
            
            if (oDiv.addEventListener){
                bind(oDiv,'DOMMouseScroll',function(ev){
                    //firefox:下(3) 上(-3)
                    var ev = ev || event;
                    b = ev.detail>0 ? true : false;
                    console.log(getDir(b));
                });
                bind(oDiv,'mousewheel',function(ev){
                    //IE和chrome: 下(-120) 上(120)
                    var ev = ev || event;
                    b = ev.wheelDelta<0 ? true : false;
                    console.log(getDir(b));
                });
            }

    如果阻止鼠标的默认行为:
      IE/chorme : return false
      FF :
        obj.onclick = fn =>return false;
        obj.addEventListener('click',fn,false) => ev.preventDefault();

        兼容处理:

                if(ev.preventDefault) {
                    ev.preventDefault();
                }
    •  cookie

    1、cookie以域名的形式来存放的
    2、一个域名下存放的cookie个数有限制,不同浏览器存放的个数不一样
    3、cookie的内容大小也有限制,不同浏览器存放大小不一样
    4、cookie默认是临时存放的,即浏览器关闭消失(注:不是选项卡)
    5、cookie存放格式:
    
    document.cookie = "名字=值"
    
    获取cookie,即alert(document.cookie),显示结果把当前网站所有的cookie显示出来,并用分号+空格的形式串联起来
    
    例如:
        document.cookie = "username=joya"
        document.cookie = "age=11"
        alert(document.cookie)    =>结果为username=joya; age=11
    
    
    document.cookie="名字=值;expires="+字符串格式的时间
    
    即:
        var oDate = new Date();  获取当前时间
        oDate.setDate(oDate.getDate()+7);   //cookie存放7天,setDate(18)表示设置日期18号,通常cookie的使用是当前的时间+几天,因此用getDate来获取当前日期+多少天
        document.cookie = "username ="+ encodeURI("
    joya") +";expires=" + oDate.toGMTString();  
    //注:1、需要是字符串格式的时间,oDate是对象,需要进行转换,即toGMTString
       2、内容最好编码存放,即encodeURI('值'),与这个相反的有decodeURI('编码')

      alert(decodeURI(document.cookie));
    •  封装cookie(增加setCookie,读取getCookie,删除removeCookie)

    见js框架

    • localStorage

    localStorage.getItem('rd_lang')  获取

    localStorage.setItem('rd_rang')  设置

  • 相关阅读:
    React入门实例
    【C语言】一些重要的知识点
    【C语言】字符串模块
    【C语言】指针模块
    贝尔曼福特算法
    dijkstra算法
    拓扑序列
    树和图的广度优先遍历
    树和图的深度优先遍历
    回溯剪枝,dfs,bfs
  • 原文地址:https://www.cnblogs.com/joya0411/p/3580139.html
Copyright © 2020-2023  润新知