知识点总结:
鼠标滚轮事件
存在兼容性问题:
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的更多相关文章
-
[妙味DOM]第五课:事件深入应用
知识点总结 鼠标拖拽原理: 1.鼠标按下后开始移动,鼠标抬起停止移动,即onmousedown中要包括onmousemove和onmouseup 2.获取位置的计算:获取鼠标的当前位置-鼠标在物体中的 ...
-
[妙味DOM]第四课:Event-事件详解2
知识点总结 事件捕获 obj.addEventListener('click',fn,true) 从外往里 obj.addEventListener('click',fn,false) 从里往外(冒泡 ...
-
[妙味DOM]第三课:Event-事件详解1
知识点总结 焦点事件 onfocus 获取焦点 onblur 失点焦点 obj.focus() 给指定元素设置焦点 obj.blur() 取消指定元素的焦点 obj.select() 选择指定元素里的 ...
-
[妙味DOM]第一课:DOM基础概念、操作
知识点总结 childNodes.children子节点列表集合.nodeType节点类型.nodeName.nodeValue.attributes属性列表集合 childNodes和childre ...
-
[妙味 DOM] 第二课:DOM、BOM相关方法及属性
知识点总结 获取样式.增加样式.删除样式函数的封装 表格 tHead tBodies tFoot rows 行 cells 列 表单 表单可以通过name来获取元素:表单.name值 onchange ...
-
[妙味Ajax]第三课:AJAX跨域解决方案:JSONP
知识点总结: JSONP(JSON with Padding): 1.script标签 2.用script标签加载资源是没有跨域问题的 在资源加载进来之前定义好一个函数,这个函数接收一个参数(数据), ...
-
[妙味JS基础]第九课:定时器管理、函数封装
知识点总结 函数封装 回调函数 实例:抖动函数 获取当前的位置 通过数组来实现,一正一负,直到恢复成0为止. 当前位置与数组中各值相加
-
[妙味JS基础]第二课:for应用、this关键字
知识点总结 getElementsByTagName(动态方法) 与 getElementById(静态方法) 的区别 1.ID前面只能跟document,不能跟其他元素,比如:document.ge ...
-
[妙味JS基础]第一课:属性操作、图片切换、短信发送模拟
知识点总结 HTML的属性操作:读.写 元素.属性名 => “读” 元素.属性名=新的值 => “写” 例如: oBtn.value => “读” oBtn.value='按钮' = ...
随机推荐
-
eclispe中在线安装maven插件
启动Eclipse之后,在菜单栏中选择Help,然后选择Install New Software-,接着你会看到一个Install对话框, 点击Work with:字段边上的Add按钮,你会得到一个新 ...
-
loadrunner-27796错误寻求解决办法
Action.c(58): Error -27796: Failed to connect to server "www.baidu.com:80": [10048] Addres ...
-
Android -- 使用inBitmap要注意的地方
SDK版本 需要注意的是inBitmap只能在3.0以后使用.2.3上,bitmap的数据是存储在native的内存区域,并不是在Dalvik的内存堆上. 在android3.0开始,系统在Bitma ...
-
全代码实现ios-1
第一次接触ios开发时,就决定用代码开发,而不用ib.因为被ib的各种控件的联线弄得一头雾水,而且ib和storyboard变动太快了. 开始的时候真是麻烦,因为网上关于全代码开发的例子太少了,大多数 ...
-
X窗口系统的协议和架构
转自X窗口系统的协议和架构 在电脑中,X窗口系统(常称作 X11.X)是一种以位图显示的网络透明化窗口系统.本条目详述 X11 的协议及其技术架构. X C/S模型和网络透明性 X 基于C/S模型.运 ...
-
JAVAEE——BOS物流项目06:分页查询、分区导出Excel文件、定区添加、分页问题总结
1 学习计划 1.分区组合条件分页查询 n 分区分页查询(没有过滤条件) n 分区分页查询(带有过滤条件) 2.分区导出 n 页面调整 n 使用POI将数据写到Excel文件 n 通过输出流进行文件下 ...
-
jmeter+influxdb+grafana性能测试监控
背景: 话说Jmeter原生的监控确实太丑了,听大佬们在讨论Jmeter+InfluxDb+Grafana的监控,于是,为了有一个漂亮的测试报告,就手动开始进行部署. 安装步骤: 1.influxdb ...
-
windows 实用技巧
以下内容版权归原作者所有!!!如果侵权,立即删除. 1.系统激活:https://mp.weixin.qq.com/s/Kl_iEeSSxSprblfSRZ6yEQ 2.百度云下载:https://w ...
-
Sublime2或3配置R、Scala、Python交互式环境
1.Sublime3的下载地址:http://www.sublimetext.com/3 2.刚刚安装的软件是没有PackageControl的,需要在新安装使用 (1) 以前没有安装过Packa ...
-
java实验1实验报告(20135232王玥)
实验一 Java开发环境的熟悉 一.实验内容 1. 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试Java程序 二.实验要求 1.没有Linux基础的同学建议先 ...