# 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 ...
随机推荐
- 关于C# XML序列化的一个BUG的修改
关于C# XML序列化的一个BUG的修改 在我前一篇博客中提到用XML序列化作为数据库的一个方案,@拿笔小心 提到他们在用XML序列化时,遇到了一个比较严重的bug,即XML不闭合,系统不能正确的加载 ...
- poj 1543 Perfect Cubes(注意剪枝)
Perfect Cubes Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14901 Accepted: 7804 De ...
- 咏南CS多层插件式开发框架支持最新的DELPHI XE7
DATASNAP中间件: 中间件已经在好几个实际项目中应用,长时间运行异常稳定,可无人值守: 可编译环境:DELPHI XE5~DELPHI XE7,无需变动代码: 支持传统TCP/IP方式也支持RE ...
- C#中Internal class与静态类说明
C#中的internal访问修饰符表示 访问仅限于当前程序集 但是注意,internal修饰符修饰的类中,可以有public的成员变量和成员方法等 Static 关键字作为修饰符可以用于类.方法和成员 ...
- Random的nextInt用法
因为想当然的认为Random类中nextInt()(注:不带参数),会产生伪随机的正整数,采用如下的方式生成0~99之间的随机数: Random random = new Random(); rand ...
- DATE_FORMAT() 函数
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据DATE_FORMAT(now(),'%Y-%m-%d %T')
- XSS攻击:SOHU视频XSS漏洞导致其用户成为DDOS肉鸡
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入当中Web里面的html代码会被运行,从而达到恶意攻击用 ...
- Codeforces Round #274 (Div. 1) C. Riding in a Lift 前缀和优化dp
C. Riding in a Lift Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/480/pr ...
- Codeforces Gym 100342H Problem H. Hard Test 构造题,卡迪杰斯特拉
Problem H. Hard TestTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/at ...
- TreeView1MouseMove
procedure TForm1.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var nod ...