无论是使用哪种方式实现隔行变色的效果,它的思路都是一样的:

1.定义很多个div

2.给div 加背景

3.鼠标移动到div上时,当前div 背景变色

4.鼠标移出div时,当前div背景恢复

以上4点就是隔行变色的思路流程,任何形式的实现方式,都要依照以上的思路来,否则将不会达到效果-----这是本质。因为经常会弄反,写着写着就忘记之前要干什么事了,所以此处写出来,当做提示信息

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
div {
border: 1px solid #000;
margin: 10px;
border: 1px solid #000;
height: 10px;
padding: 10px;
}
.even-color {
background: #eee;
}
.odd-color {
background: #ccc;
}
.active {
background: red;
}
</style>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</body>
</html>

js 常规实现方式(es5):

  window.onload = function() {
var adiv = document.querySelectorAll("div");
var oldColor = '';
adiv.forEach(function(ele, index) {
ele.className = (index % 2 == 0) ? 'even-color' : 'odd-color';
});
adiv.forEach(function(ele, index) {
ele.onmouseover = function() {
oldColor = this.className;
this.className = 'active';
}
ele.onmouseout = function() {
this.className = oldColor;
}
});
}

js  es6实现方式:

  window.onload = function() {
let adiv = document.querySelectorAll("div");
let oldColor = '';
adiv.forEach((ele, index) => {
ele.className = (index % 2 == 0) ? 'even-color' : 'odd-color';
});
adiv.forEach((ele, index) => {
ele.onmouseover = () => {
oldColor = ele.className;
ele.className = 'active';
};
ele.onmouseout = () => {
ele.className = oldColor;
}
});
};

js es6 及html5    ele.classList.add()  & ele.classList.remove()  方法实现:

 window.onload = function() {
let adiv = document.querySelectorAll("div");
let oldColor = '';
adiv.forEach((ele, index) => {
ele.className = (index % 2 == 0) ? 'even-color' : 'odd-color';
});
adiv.forEach((ele, index) => {
ele.onmouseover = () => {
ele.classList.add('active');
};
ele.onmouseout = () => {
ele.classList.remove('active');
}
});
}

运行结果都是相同的:

es6初级之箭头函数实现隔行变色的更多相关文章

  1. es6 初级之箭头函数

    1.先看一个例子: <script> function show() { console.log('aluoha'); } show(); </script> 2. 改写成简单 ...

  2. [js高手之路] es6系列教程 - 箭头函数详解

    箭头函数是es6新增的非常有意思的特性,初次写起来,可能会觉得别扭,习惯之后,会发现很精简. 什么是箭头函数? 箭头函数是一种使用箭头( => )定义函数的新语法, 主要有以下特性: 不能通过n ...

  3. ES6学习之箭头函数

    ES6学习笔记--箭头函数 箭头函数一直在用,最近突然想到重新看一下箭头函数的用法,所以这里做一些总结. 箭头函数长这个样子: let fn = a => a++; // fn 是函数名, a= ...

  4. 前端项目中常用es6知识总结 -- 箭头函数及this指向、尾调用优化

    项目开发中一些常用的es6知识,主要是为以后分享小程序开发.node+koa项目开发以及vueSSR(vue服务端渲染)做个前置铺垫. 项目开发常用es6介绍 1.块级作用域 let const 2. ...

  5. ES6系列之箭头函数

    本系列是在平时阅读.学习.实际项目中有关于es6中的新特性.用发的简单总结,目的是记录以备日后温习:本系列预计包含let/const.箭头函数.解构.常用新增方法.Symbol.Set&Map ...

  6. JS ES6中的箭头函数(Arrow Functions)使用

    转载这篇ES6的箭头函数方便自己查阅. ES6可以使用“箭头”(=>)定义函数,注意是函数,不要使用这种方式定义类(构造器). 一.语法 基础语法 (参数1, 参数2, …, 参数N) => ...

  7. es6学习笔记--箭头函数

    基本用法 ES6允许使用“箭头”(=>)定义函数. var f = v => v; 上面的箭头函数等同于: var f = function(v) { return v; }; 如果箭头函 ...

  8. codewars--js--Reverse or rotate?----es6变量,箭头函数,正则取块

    问题描述: 对输入的str按照sz个数进行分块,若一块内所有数字的立方和是偶数,则倒序:否则,向左移动一位.然后将修改过的块整合到一个字符串,作为输出. The input is a string s ...

  9. 从 ES6 高阶箭头函数理解函数柯里化

    前言:第一次看到多个连续箭头函数是在一个 react 项目中,然鹅确认了下眼神,并不是对的人,因为看得一脸懵逼.em......于是开始各种搜索,先是知道了多个连续箭头函数就是 es6 的多次柯里化的 ...

随机推荐

  1. VS2008--VS2013 各种版本官方下载地址

    很多刚入门的学生都不知道从哪里下载Visual studio 编译器 , 我特闲的纯手工整理了下 Visual Studio 2005 Professional 官方90天试用版 英文版:http:/ ...

  2. [UE4]多播(广播)

    只有服务器才有权限做广播,所以要判断确保是服务器端才做广播,有以下几种方法: 一.使用“Switch Has Authority”判断是否在服务器端 因为character一定是在服务器端创建出来的, ...

  3. 第11章 拾遗5:IPv6和IPv4共存技术(3)_NAT-PT技术【全书完】

    6.4 NAT-PT (1)NAT-PT和NAT的差别 ①NAT-PT(附带协议转换的网络地址转换)技术秉承NAT技术的思想,但在原理方面大有不同. ②NAT-PT和NAT本质的区别在于应用场合的不同 ...

  4. C#写Excel(OleDB)

    先辟谣(至少对Excel2010来说) IMEX ( IMport EXport mode )设置 IMEX 有三种模式,各自引起的读写行为也不同,容後再述: 0 is Export mode:只能写 ...

  5. Java - 34 Java 文档注释

    Java 文档注释 Java只是三种注释方式.前两种分别是// 和/* */,第三种被称作说明注释,它以/** 开始,以 */结束. 说明注释允许你在程序中嵌入关于程序的信息.你可以使用javadoc ...

  6. 网络编程socket,详细讲述osi七层协议

    一 网络编程 源方: 我们首先来说下数据在两台计算机之间的传递:操作系统控制着除应用层以外的四层 对于用户来说我们发数据一般都是在应用层,也就是我们是直接操作应用软件的,那么应用层要把数据传给传输层就 ...

  7. CentOS、Ubuntu、Debian简析

    Centos .Ubuntu.Debian 三个Linux都是非常优秀的系统,开源的系统,也分付费的商业版和免费版,下面简单比较这三种系统. Centos系统 非常多的商业公司部署在生产环境上的服务器 ...

  8. vue 整合element-ui

    本文主要介绍如何在vue框架中结合elementUI. 本文主要参考: http://element-cn.eleme.io/#/zh-CN/component/quickstart   1.阅读本文 ...

  9. Java并发知识整理

    整理了一下前段时间学习Java并发的笔记,大约有40篇. 1. Java并发基础知识 并发基础(一) 线程介绍 并发基础(二) Thread类的API总结 并发基础(三) java线程优先级 并发基础 ...

  10. MongoDB Shell 常用操作命令

    MonoDB   shell命令操作语法和JavaScript很类似,其实控制台底层的查询语句都是用javascript脚本完成操作的. Ø 数据库 1.Help查看命令提示 help db.help ...