# 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 ...
随机推荐
- 嵌入式LINUX入门到实践(二)
这篇中将围绕韦东山LINUX第二部分教程源码,对IIC协议进行程序实现上的分析. /* I2C registers */#define IICCON (*(volatile unsigned ...
- Altium Desiger自定义BOM导出格式
用Excel做一个xx.xlt的2003的模版文件,如名为:AltiumDesiger PCB BOM Template.xlt 将AltiumDesiger PCB BOM Template.xlt ...
- C#学习笔记(十五):预处理指令
C#和C/C++一样,也支持预处理指令,下面我们来看看C#中的预处理指令. #region 代码折叠功能,配合#endregion使用,如下: 点击后如下: 条件预处理 条件预处理可以根据给出的条件决 ...
- [GUI]界面开发类库
如果我们不十分清楚需要什么样的界面风格及如何实现,请按以下两个步骤操作: (1) 搞清楚这种风格叫什么名字 (2) 查现有的比较著名的GUI库是否已有相应的实现方案. (3) ...
- 使用SVG Path绘图
最近一个项目,需要做个Web版本的设计器,用来进行工厂流水线布局的设计. 项目中采用了SVG.JS来做,但是以前流水线是采用单纯的画线的方式实现.客户提出希望用不同的底纹表示不同的流水线,经过一番调查 ...
- Linux下升级python版本
转载自:http://lovebeyond.iteye.com/blog/1770476 CentOS下的Python版本一般都比较低,很多应用都需要升级python来完成.我装的centOS的默认的 ...
- WinDbug之DUMP蓝屏分析
Microsoft (R) Windows Debugger Version 6.2.8400.0 X86Copyright (c) Microsoft Corporation. All rights ...
- 线程池QueueUserWorkItem
// Test1.cpp : Defines the entry point for the console application. // #include "stdafx.h" ...
- Asp.Net页面(母版页)加载顺序
ASP.NET 母版页和内容页中的事件 母版页和内容页都可以包含控件的事件处理程序.对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件.控件事件不会 ...
- ExpandableListView 箭头靠右
ExpandableListView 默认标示箭头是在左边的,当左边有图片时,不是太好看,想把它放在右边,这么简单的事可我折腾死了,还好给我找到了. 参照了以下链接: expandableListvi ...