知识点总结:

  • 鼠标滚轮事件

存在兼容性问题:
  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("\njoya") +";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')  设置

[妙味DOM]第六课:鼠标滚轮和COOKIE的更多相关文章

  1. [妙味DOM]第五课:事件深入应用

    知识点总结 鼠标拖拽原理: 1.鼠标按下后开始移动,鼠标抬起停止移动,即onmousedown中要包括onmousemove和onmouseup 2.获取位置的计算:获取鼠标的当前位置-鼠标在物体中的 ...

  2. [妙味DOM]第四课:Event-事件详解2

    知识点总结 事件捕获 obj.addEventListener('click',fn,true) 从外往里 obj.addEventListener('click',fn,false) 从里往外(冒泡 ...

  3. [妙味DOM]第三课:Event-事件详解1

    知识点总结 焦点事件 onfocus 获取焦点 onblur 失点焦点 obj.focus() 给指定元素设置焦点 obj.blur() 取消指定元素的焦点 obj.select() 选择指定元素里的 ...

  4. [妙味DOM]第一课:DOM基础概念、操作

    知识点总结 childNodes.children子节点列表集合.nodeType节点类型.nodeName.nodeValue.attributes属性列表集合 childNodes和childre ...

  5. [妙味 DOM] 第二课:DOM、BOM相关方法及属性

    知识点总结 获取样式.增加样式.删除样式函数的封装 表格 tHead tBodies tFoot rows 行 cells 列 表单 表单可以通过name来获取元素:表单.name值 onchange ...

  6. [妙味Ajax]第三课:AJAX跨域解决方案:JSONP

    知识点总结: JSONP(JSON with Padding): 1.script标签 2.用script标签加载资源是没有跨域问题的 在资源加载进来之前定义好一个函数,这个函数接收一个参数(数据), ...

  7. [妙味JS基础]第九课:定时器管理、函数封装

    知识点总结 函数封装 回调函数 实例:抖动函数 获取当前的位置 通过数组来实现,一正一负,直到恢复成0为止. 当前位置与数组中各值相加

  8. [妙味JS基础]第二课:for应用、this关键字

    知识点总结 getElementsByTagName(动态方法) 与 getElementById(静态方法) 的区别 1.ID前面只能跟document,不能跟其他元素,比如:document.ge ...

  9. [妙味JS基础]第一课:属性操作、图片切换、短信发送模拟

    知识点总结 HTML的属性操作:读.写 元素.属性名 => “读” 元素.属性名=新的值 => “写” 例如: oBtn.value => “读” oBtn.value='按钮' = ...

随机推荐

  1. canvas 弹幕效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. ubuntu 服务版安装简易说明

    安装基本环境 1.ubuntu 下载 下载地址:http://releases.ubuntu.com/14.04.4/ 2.安装virtualBox 直接在软件管家中下载即可 3.安装ubuntu 注 ...

  3. 三、spark入门:文本中发现5个最常用的word,排除常用停用词

    package com.yl.wordcount import java.io.File import org.apache.spark.{SparkConf, SparkContext} impor ...

  4. GTK+2.0学习——code::block使用

    在之后使用中会慢慢去完善~~ 一.编码设置 1.设置文件编码:setting->editor->如图 2.设置编译时的编码(记住二者要统一):setting->compiler-&g ...

  5. linux之LVS简介(转自南非的蚂蚁)

    一. LVS简介LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver. ...

  6. 摘抄来自论坛的一些DDD讨论

    先说说之前几次DDD项目失败的案例,其实也不能算是失败,只是没有领会DDD的思想. 之前的DDD是建立在数据层之上的,首先是每张数据表对应一个数据实体,每个数据实体由泛型的DAO管理,DAO又被数据上 ...

  7. Git提交到多个远程仓库

    在已经习惯使用git同步写代码,github无疑是最的托管平台,但是国内由于"你懂的"原因,速度很慢,有时无法访问,于是想把自己的代码同步到多个不同的远程仓库备份. 我的主要仓库: ...

  8. 中文版的jqGrid实例大全

    中文版的jqGrid实例大全 http://blog.mn886.net/jqGrid/

  9. Android对px和dip进行尺寸转换的方法

    px  转换为 dip /** * PX 转换为 DP * * @param context * @param px * @return */ public static int px2dp(Cont ...

  10. CodeForces 670F Restore a Number

    模拟. 首先暴力找到答案的位数,然后就是分类讨论输出答案. #pragma comment(linker, "/STACK:1024000000,1024000000") #inc ...