# 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 ...
随机推荐
- 关于INTRAWEB ISAPI DLL发布
怎样将Stand Alone App变为ISAPI Dll? 一是将工程文件中的program改成library,二是将uses里的IWInitStandAlone改成IWInitISAPI,没有该文 ...
- 转载github上最全的资源教程--前端涉及的所有知识体系
以下地址为园子里一个哥们总结的前端所涉及的所有知识体系 http://www.cnblogs.com/bymax/p/5878113.html 很值得学习参考
- Educational Codeforces Round 1(C. Nearest vectors)
题目链接:http://codeforces.com/problemset/problem/598/C 题意是给你一个数n,下面n行,每行给你横坐标x和纵坐标y(x != 0 && y ...
- poj1459
初涉网络流.改日再写一些概念性的介绍. ek算法可作为模板使用. #include <iostream> #include <queue> using namespace st ...
- iOS开发-为程序添加应用设置
一.设置捆绑包 设置捆绑包是应用自带的一组文件,用于告诉设置该应用期望得到用户的哪些偏好设置. 新建设置捆绑包:Command+N,在iOS部分中的Resource,选择Settings Bundle ...
- 教你50招提升ASP.NET性能(二十一):避免使用会话状态
(39)Avoid using session state 招数39: 避免使用会话状态 Where possible, you should try and avoid using session ...
- PostgreSQL中,如何查表属于哪个数据库
db1=# \x Expanded display is on. db1=# SELECT * FROM information_schema.tables WHERE table_name='tab ...
- C#程序实现动态调用DLL的研究[转]
摘 要: 在< csdn 开发高手> 2004 年第 03 期中的<化功大法——将 DLL 嵌入 EXE >一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在 ...
- Android-L-Samples
https://github.com/s3xy4ngyc/Android-L-Samples
- Elasticsearch是一个分布式可扩展的实时搜索和分析引擎,elasticsearch安装配置及中文分词
http://fuxiaopang.gitbooks.io/learnelasticsearch/content/ (中文) 在Elasticsearch中,文档术语一种类型(type),各种各样的 ...