# li鼠标移入移出,点击,变背景色,变checkbox选中状态
移入移出背景色改变和点击背景色改变,两者是否相互覆盖?
若移出背景色恢复,影响点击事件的背景色改变,会产生效果为:
点击时,背景色改变,并且checkbox选中
鼠标移开后,checkbox仍选中,但背景色恢复 (见第一段代码)若移出背景色恢复,不影响点击事件的背景色改变,会产生效果为:
点击时,背景色改变,并且checkbox选中
鼠标移开后,checkbox仍选中,背景色仍为改变后的颜色
当再次点击时,checkbox变为未选中,背景色才恢复 (见第二段代码)
两种效果的代码区别主要在于:
为li设置aLi[i].onoff = 1
if(aLi[i].onoff = 1)才会执行鼠标移入移出效果
当点击时,设置aLi[i].onoff = 0,便可防止背景色受鼠标移出的影响
当再次点击时,再设置aLi[i].onoff = 1
想要实现的效果:(第一段代码)
li奇数偶数行背景颜色不同
li鼠标移入背景颜色改变
li鼠标移出背景颜色恢复
li鼠标点击背景颜色改变,checkbox选中,但是鼠标移出背景色恢复
li鼠标再次点击checkbox未选中
window.onload = function() {
var oDiv = document.getElementById('wrap');
var oUl = oDiv.getElementsByTagName('ul')[0];
var aLi = oUl.getElementsByTagName('li');
var aCheckbox = oUl.getElementsByTagName('input');
//初始化,checked全未选中
for(var i=0;i<aCheckbox.length;i++){
aCheckbox[i].checked = false;
}
//初始化,隔行颜色不同
bgColor();
//背景色 初始化函数
function bgColor(){
for(var i=0;i<aLi.length;i++){
aLi[i].style.background = '#fff';
for(var j=0;j<aLi.length;j+=2){
aLi[j].style.background = '#f7ffff';
}}}
//li移入移出变色
for(var i=0;i<aLi.length;i++){
aLi[i].onmouseover = function(){
//先清空,让所有li背景色初始化
bgColor();
//当前li变背景色
this.style.background = '#efefef';
}
}
//li点击变灰色,变选中状态,移出背景色复原,仍选中;再点击未选中
for(var i=0;i<aLi.length;i++){
aLi[i].index = i;//索引值
aLi[i].onclick = function(){
//判断checkbox选中状态
if(aCheckbox[this.index].checked){
aCheckbox[this.index].checked = false;
//判断当前li索引值奇偶数
if(this.index%2 == 0){//偶数
this.style.background = '#f7ffff';
}else{//奇数
this.style.background = '#fff';
}
}else{
aCheckbox[this.index].checked = true;
this.style.background = '#efefef';
}
}
}
};
想要实现的效果:(第二段代码)
li奇数偶数行背景颜色不同
li鼠标移入背景颜色改变
li鼠标移出背景颜色恢复
li鼠标点击背景颜色改变,checkbox选中,鼠标移出背景色不恢复
li鼠标再次点击背景颜色恢复,checkbox未选中
window.onload = function() {
var oDiv = document.getElementById('wrap');
var oUl = oDiv.getElementsByTagName('ul')[0];
var aLi = oUl.getElementsByTagName('li');
var aCheckbox = oUl.getElementsByTagName('input');
//初始化,checked全未选中
for(var i=0;i<aCheckbox.length;i++){
aCheckbox[i].checked = false;
}
//初始化,隔行颜色不同
bgColor();
//背景色 初始化函数
function bgColor(){
for(var i=0;i<aLi.length;i++){
aLi[i].onOff = 1;
aLi[i].style.background = '#fff';
for(var j=0;j<aLi.length;j+=2){
aLi[j].style.background = '#f7ffff';
}}}
//li移入移出变色
for(var i=0;i<aLi.length;i++){
aLi[i].onmouseover = function(){
if(this.onOff == 1){
//当前li变背景色
this.style.background = '#efefef';}
}
aLi[i].onmouseout = function(){
if(this.onOff == 1){
if(this.index%2 == 0){//偶数
this.style.background = '#f7ffff';
}else{//奇数
this.style.background = '#fff';
}}
}
}
//li点击变灰色,checkbox选中;再点击背景色复原,checkbox未选中
for(var i=0;i<aLi.length;i++){
aLi[i].index = i;//索引值
aLi[i].onclick = function(){
//判断checkbox选中状态
if(aCheckbox[this.index].checked){
aCheckbox[this.index].checked = false;
//判断当前li索引值奇偶数
if(this.index%2 == 0){//偶数
this.style.background = '#f7ffff';
}else{//奇数
this.style.background = '#fff';
}
}else{
this.onOff = 0;
aCheckbox[this.index].checked = true;
this.style.background = '#efefef';
}
}
}
};
</script>
# li鼠标移入移出,点击,变背景色,变checkbox选中状态的更多相关文章
- 函数传参,改变Div任意属性的值&&图片列表:鼠标移入/移出改变图片透明度
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- CSS3鼠标移入移出图片生成随机动画
今天分享使用html+css3+少量jquery实现鼠标移入移出图片生成随机动画,我们先看最终效果图(截图为静态效果,做出来可是动态的哟) 左右旋转 上下移动 缩放 由于时间关系我就不一步步解析各段代 ...
- Qt 为QPushButton、QLabel添加鼠标移入移出事件
QT 为QPushButton.QLabel添加鼠标移入移出事件**要实现的效果:**鼠标移入QPushButton时与移出时按钮变换字体颜色,鼠标移入QLabel时显示上面的文字,移出时不显示.** ...
- js鼠标移入移出事件会被子元素触发解决方法
问题:js写了一个鼠标移入移出事件,但是发现会被内部子元素不断的触发 解决方法:建立一个空的div定位到需要触发的位置,然后设置大小和触发范围一样,最后将事件写在空的div上.
- jQuery鼠标移入移出(冒泡版和无冒泡版)
带冒泡事件的鼠标移入移出(默认的):mouseover和mouseout事件 没有冒泡事件的鼠标移入移出:mouseenter和mouseleave事件
- Vue 鼠标移入移出事件
Vue 中鼠标移入移出事件 @mouseover和@mouseleave 然后绑定style 现在开始代码示例 <template> <div class="pc&qu ...
- js鼠标移入移出效果【原】
<HTML> <HEAD> <!-- meta 解释 : http://www.haorooms.com/post/html_meta_ds --> <met ...
- div展现与收起效果(鼠标移入移出)
效果图: 移入: 移出: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- jquery事件一 ---鼠标移入移出
比较一下几个jquery事件的区别 mouseover() 鼠标进入(进入子元素也触发) mouseout() 鼠标离开(离开子元素也触发) mouseenter() 鼠标进入(进入子元素不触发) m ...
随机推荐
- PD16 Generate Datebase For Sql2008R2时报脚本错误“对象名sysproperties无效”
PowerDesinger16创建数据库表到SQL2008R2时,执行报"对象名sysproperties无效"错误. 主要是在建模时我们对表.列增加了些说明注释,而Sql2005 ...
- 不能发现 class "com.uustudio.unote.android.BaseApplication"
12-13 15:45:46.289: E/AndroidRuntime(3474): java.lang.RuntimeException: Unable to instantiate applic ...
- 基于OpenCV的iOS开发笔记(1)
本系列文章采用的的开发环境为: 1)Xcode 6 2)OpenCV for iOS 3.0.0 -------------------分割线---------------------------- ...
- 转载“启动\关闭Oracle数据库的多种方法”--来自百度#Oracle
启动\关闭Oracle数据库的多种方法 启动和关闭oracle有很多种方法. 这里只给出3种方法: l Sql*plus l OEM控制台 l Wind ...
- 几道 SQL 语句面试题
--S (sno,sname)学生关系,sno为学号 sname为姓名 --C(cno,cname,Cteacher)课程关系 cno为课程号,cname为课程名,cteacher 为任课教师 --S ...
- MEF 编程指南(五):延迟导出
在组合部件的时候,导入将会触发部件(部件集合)的实例化,为原始的请求部件公开必要的导出需求.对于有些应用程序,推迟实例化 - 并且防止递归组合图(Recursive Composition Down ...
- hdu 5533 Dancing Stars on Me 水题
Dancing Stars on Me Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.p ...
- delphi array应用 DayOfWeek星期几判断
//array应用 DayOfWeek星期几判断 procedure TForm1.Button1Click(Sender: TObject);var days:array[1..7] of s ...
- 偶然发现关于网页JavaScript脚本无法正常运行的原因
客户常常打电话投诉公司的销售系统有问题, 后来发现有的客户直接把网址设为受限网站,才导致系统无法正常执行.改动后正常.
- [IOS]自定义长触屏事件
写一个Demo来自定义一个长触屏事件,自定义长按手势. 实现步骤: 1.创建一个自定义手势类,命名为LongPressGestureRecognizer,在创建的时候继承UIGestureRecogn ...