29-JavaScript-事件-事件驱动-更改外部css属性-区分浏览器内核
2013-11-15 15:38
701 查看
JS事件驱动编程
JS事件
② 浏览器窗口
③ 其他
即,
鼠标点击按钮,
发生一个点击事件, 并产生一个事件对象
该事件触发一个函数的执行.
② 事件名称
如, 鼠标移动 鼠标按下,
单击按钮
网页加载, 网页关闭
输入框内容改变
等
③ 事件处理程序
通常为函数, 通过发生的事件来驱动函数执行
④ 事件对象
当某个事件发生时, 会产生一个描述该事件的对象.
该对象包含该事件的一些详细信息,
如, 按键时 会记录按下的是哪个键.
http://www.w3school.com.cn/js/jsref_events.asp
http://www.w3school.com.cn/htmldom/dom_obj_event.asp
对应的dom结点会触发鼠标事件.
主要有:
① click
② dbclick
③ mousedown
④ mouseup
⑤ mouseover
⑥ mouseout
⑦ mousemove
⑧ 等...
主要有:
① keydown
② keypress
③ keyup
window的
onload, unload, abort, error
文本框的
select, change
如 XmlHttpRequest对象的相关事件.
var cssFiles = document.styleSheets;
② 获取样式表文件里的规则集合
// firefox
var rules = cssFiles[0].cssRules;
// IE
var rules = cssFiles[0].rules;
③ 更改指定规则的属性
rules[0].style.backgroundColor = "red";
JS事件
1. 概述
JS是采用 事件驱动(event-driven) 响应用户操作的.1) 事件(Event)
如, 点击按钮 按键 等 都称之为 ~.2) 事件源
① 网页元素(按钮, 输入框, 文本域, ...)② 浏览器窗口
③ 其他
3) 事件处理程序(Event Handler)
对事件进行处理的程序或函数,称之为 ~.4) 事件驱动(Event Driven)
由点击按钮或按键引发的一连串程序的动作, 称之为 ~.2. 事件处理机制
在事件源上发生某个事件,产生某个效果即,
鼠标点击按钮,
发生一个点击事件, 并产生一个事件对象
该事件触发一个函数的执行.
1) 原理
如图visio2) 说明
① 事件源② 事件名称
如, 鼠标移动 鼠标按下,
单击按钮
网页加载, 网页关闭
输入框内容改变
等
③ 事件处理程序
通常为函数, 通过发生的事件来驱动函数执行
④ 事件对象
当某个事件发生时, 会产生一个描述该事件的对象.
该对象包含该事件的一些详细信息,
如, 按键时 会记录按下的是哪个键.
3. 事件及分类
参考:http://www.w3school.com.cn/js/jsref_events.asp
http://www.w3school.com.cn/htmldom/dom_obj_event.asp
1) 鼠标事件
当用户在页面上用鼠标点击页面元素时,对应的dom结点会触发鼠标事件.
主要有:
① click
② dbclick
③ mousedown
④ mouseup
⑤ mouseover
⑥ mouseout
⑦ mousemove
⑧ 等...
2) 键盘事件
当用户用键盘输入信息时, 会触发键盘操作事件.主要有:
① keydown
② keypress
③ keyup
3) HTML事件
在html结点加载变更等相关事件, 如:window的
onload, unload, abort, error
文本框的
select, change
4) 其它事件
页面中一些特殊对象运行过程中产生的事件,如 XmlHttpRequest对象的相关事件.
4. 示例
1) 获取鼠标点击坐标
<body onmousedown="recordMouse(event)"> <!-- onmousemove="recordMouse(event)" --> </body>
//----------- /* 1. 事件源 --> body (注: Firefox不支持在body上的mousedown) 2. 事件 --> mousedown 3. 事件处理处理程序 --> recordMouse(evt) 4. 在事件源上 绑定 事件处理程序 <body onmousedown="recordMouse(event)"> */ var count = 0; function recordMouse(evt) { console.info( evt ); console.info( "鼠标点击次数: " + (++count) + " " + "坐标: ( " + evt.clientX + ", " + evt.clientY + ")" ); }
2) 点击按钮获取当前时间
<button onclick="showCurrentTime(event)">showCurrentTime</button>
/* 1. 事件源 --> button 2. 事件 --> click 3. 事件处理程序--> showCurrentTime(evt) 4. 在事件源上 绑定 事件处理程序 <button onclick="showCurrentTime(event)"> */ function showCurrentTime(evt) { console.info( new Date().toLocaleString() ); }
3) 按钮改变div的背景色
<div style="width:200px;height:200px;background-color: gray;"> <input type="button" value="red" onclick="changeColor(this)"/> <input type="button" value="blue" onclick="changeColor(this)"/> </div>
/* 1. 事件源 --> input 2. 事件 --> click 3. 事件处理程序--> changeColor(element) 4. 在事件源上 绑定 事件处理程序 <input type="button" value="red" onclick="changeColor(this)"/> 5. 同一事件确定是哪个事件源 this */ function changeColor(element) { // console.info(element); // 获取父节点 div var divObj = element.parentElement; // 获取input元素的值 var color = element.value; // 通过外部方式更div 的style divObj.style.backgroundColor = color; }
5. 更改元素的class属性值
<div class="divCls-default"> <input type="button" value="red" onclick="changeCss(this,'divCls-little')"/> <input type="button" value="blue" onclick="changeCss(this,'divCls-big')"/> </div>
<style type="text/css"> .divCls-default { width: 200px; height: 200px; background-color: gray; } .divCls-little { width: 100px; height: 100px; background-color: green; } .divCls-big { width: 300px; height: 300px; background-color: blue; } </style>
<script type="text/javascript" charset="utf-8"> var cssFiles = document.styleSheets; // 集合 console.info( cssFiles ); var rules = cssFiles[0].cssRules; // 集合 console.info( rules ); function changeCss(element, clsName) { var divElement = element.parentElement; // 更改div的class divElement.className = clsName; } </script>
6. 更改外部css文件中的规则
① 获取样式表文件的集合var cssFiles = document.styleSheets;
② 获取样式表文件里的规则集合
// firefox
var rules = cssFiles[0].cssRules;
// IE
var rules = cssFiles[0].rules;
③ 更改指定规则的属性
rules[0].style.backgroundColor = "red";
.divCls-default { width: 200px; height: 200px; background-color: gray; }
<link rel="stylesheet" type="text/css" href="my.css"/> <div class="divCls-default"> <input type="button" value="red" onclick="changeCss(this)"/> <input type="button" value="blue" onclick="changeCss(this)"/> </div>
<script type="text/javascript" charset="utf-8"> var cssFiles = document.styleSheets; // 集合 console.info( cssFiles ); var rules = cssFiles[0].cssRules; // 集合 console.info( rules ); function changeCss(element) { var color = element.value; var divElement = element.parentElement; var defaultCls = rules[0]; defaultCls.style.backgroundColor = color; } </script>
7. 区分浏览器种类
<script type="text/javascript"> if ( window.XMLHttpRequest ) { // Mozilla Safari IE7/8 if ( window.ActiveXObject ) { alert( "IE version > 6" ); } else { alert( "Mozilla or Safari" ); } } else { alert( "IE version = 6" ); } </script>
相关文章推荐
- JavaScript基础--事件驱动和访问CSS技术(十)
- JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
- JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
- JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
- 使用javascript更改某个css class的属性
- 了解到Javascript在浏览器中的事件驱动
- 浏览器加载渲染HTML、DOM、CSS、 JAVASCRIPT、IMAGE、FLASH、IFRAME、SRC属性等资源的顺序总结
- 浏览器加载渲染HTML、DOM、CSS、 javascript、image、flash、iframe、src属性等资源的顺序总结
- javascript,jquery动态添加dom元素,并设定css属性,点击事件
- JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
- 韩顺平 javascript教学视频_学习笔记22_js事件驱动机制_js事件分类_js访问css技术
- JavaScript事件流 HTML和CSS代码支持页面的外观,JavaScript代码支持页面的行为,而JavaScript与HTML之间的交互是通过事件实现的。事件,是文档或者浏览器窗口中发生
- Webkit内核的浏览器默认CSS属性
- Javascript检测浏览器对CSS属性的支持 /* supports */
- JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
- 原生JavaScript判断浏览器对CSS属性是否支持
- JavaScript获取外部CSS属性方法介绍
- 手机浏览器javascript事件及css总结
- JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
- 使用javascript更改某个css class的属性