动态导航栏和JavaScript箭头函数

今天我们来写一下动态的导航栏,并且学一下JavaScript的箭头函数等相关问题。

样式如下所示:



html中执行代码如下所示:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
*{
margin: 0;
padding: 0;
}
body{
background-color: #000;
}
.box{
width: 800px;
height: 42px;
margin: 100px auto;
background: url(images/rss.png) no-repeat right center #fff;
border-radius: 5px;
position: relative;
z-index: 0;
}
.box ul{
list-style: none;
position: relative;
}
.box ul li{
float: left;
width: 83px;
height: 42px;
font-size: 14px;
line-height: 42px;
text-align: center;
cursor: pointer;
}
.box .bg{
width: 83px;
height: 42px;
background: url(images/cloud.gif) no-repeat;
position: absolute;
left: 0px;
top: 0px;
z-index: -1;
}
</style>
</head>
<body>
<div class="box" id = "nav">
<ul>
<li>新闻模块</li>
<li>体育模块</li>
<li>财经模块</li>
<li>汽车模块</li>
<li>天气模块</li>
<li>国内新闻</li>
<li>国内新闻</li>
<li>国内新闻</li>
</ul>
<span class="bg" id="logo"></span>
</div>
</body>
</html>

JavaScript的部分代码如下所示:

			function $(id) { return document.getElementById(id); }
window.onload = function() {
var logo = $('logo');
var leader = 0, target = 0;
setInterval(() => {
//这里是箭头函数
leader = leader + (target - leader) / 10;
logo.style.left = leader + 'px';
}, 10);
var lis = $('nav').getElementsByTagName('li');
var pos = 0;
for (var i = 0; i < lis.length; i++) {
lis[i].onmouseover = function() {
target = this.offsetLeft;
}
lis[i].onmouseout = function() {
target = pos;
}
lis[i].onclick = function() {
pos = this.offsetLeft;
}
}
}

下面我们来学一下箭头函数:

在ES6标准新增了一种新的函数:Arrow Function(箭头函数)。

为什么叫Arrow Function?因为它的定义用的就是一个箭头:

x => x * x

上面的箭头函数相当于:

function (x) {
return x * x;
}

箭头函数相当于匿名函数,并且简化了函数定义。箭头函数有两种格式:
①、只包含一个表达式,连{ ... }和return都省略掉了。
②、可以包含多条语句,这时候就不能省略{ ... }和return;

x => {
if (x > 0) {
return x * x;
}
else {
return - x * x;
}
}

如果参数不是一个,就需要用括号()括起来:

// 两个参数:
(x, y) => x * x + y * y // 无参数:
() => 3.14 // 可变参数:
(x, y, ...rest) => {
var i, sum = x + y;
for (i=0; i<rest.length; i++) {
sum += rest[i];
}
return sum;
}

动态导航栏和JavaScript箭头函数的更多相关文章

  1. Jquery实现动态导航栏和轮播导航栏

    动态导航栏和轮播导航栏的实现思想: 利用jquery技术的append()方法和bind()方法实现li标签的添加和点击事件绑定,在利用$getJSON(url,data,function)请求方法实 ...

  2. 轻松学习 JavaScript——第 6 部分:JavaScript 箭头函数

    JavaScript箭头函数是ECMAScript 6中引入的编写函数表达式的一种简便方法.通常,在JavaScript中,可以通过两种方式创建函数: 函数语句. 函数表达式. 可以如下所示创建函数语 ...

  3. JavaScript箭头函数中的this详解

    前言 箭头函数极大地简化了this的取值规则. 普通函数与箭头函数 普通函数指的是用function定义的函数: var hello = function () { console.log(" ...

  4. JavaScript箭头函数 和 generator

    箭头函数: 用箭头定义函数........           var fun = x=>x*x alert(fun(2))            //单参数   var fun1 = ()=& ...

  5. 巧妙使用checkbox制作纯css动态导航栏

    前提:很多时候.我们的网页都需要一个垂直的导航栏.可以分类.有分类.自然就有展开.关闭的功能.你还在使用jquery操作dom来制作吗?那你就out了! 方案:使用checkbox 的 checked ...

  6. jsp动态导航栏

    站点页面的导航栏是从数据库中生成出来的,所以在界面上展示导航栏时,要从数据库中读取出来,但不能每次显示一个页面都从数据库中读.这样就非常浪费性能.应该考虑把导航栏放到一个缓存中.如:session.a ...

  7. javascript箭头函数把函数给简写了[0403]

    箭头函数把函数给简写了[0403]        我不是很喜欢箭头函数,总觉得它让原本就不那么严谨的js更加不严谨了,所以有时候看js程序也是一件很头痛的事情,不过在ES6中加入了这么一个新的方法,已 ...

  8. JavaScript 箭头函数

    ES6新标准增加了一种新的函数,箭头函数. x=>x*x 相当于: function (x){ return x*x; } 如果参数不是一个,就需要用括号()括起来: // 两个参数:var t ...

  9. javascript 箭头函数的使用 初学者必看

    为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用于学习. 本文我们介绍箭头(arrow)函数的优点. 更简洁的语法我们先来按常规语法定义函数: 1 2 3 4 5 funct ...

随机推荐

  1. doker基本使用

    Docker与虚拟机的区别 docker和虚拟机最大的不同,docker共用宿主机的内核,虚拟机中每个虚拟机中有单独的内核虚拟出来,如上图所示: docker不能做后端兼容性测试,因为其没有独立的虚拟 ...

  2. 安装Linux注意事项

    网络配置NAT Worstation 生成虚拟网卡,编辑虚拟网络中子网IP地址为10网段内部地址,避免冲突.  Linux命令 查看主机IP地址 [root@C8 ~]# hostname -I 19 ...

  3. 这份算法攻略,我拿到了5个大厂的offer

    每个时代,都不会亏待会学习的人. 大家好,我是 yes. 我持续在 LeetCode 刷算法题将近有一年半的时间了,这一年半以来我对算法的看法改变了很多,但是实话实说支持我前进的还是面试. 在之前的文 ...

  4. 更换Centos的yum源

    1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS-Base ...

  5. SaaS系统怎么做物流行业年度经营报告,MVC+js+echarts实现

    前言 马上就到年底了,很多公司都要汇总这一年的经营情况,如果一个系统没有自动生成年报的功能, 需要人工手工去做年报,我相信可能是一个不小的工作量,最近我通过一个星期的时间,结合系统情况自动生成年报,全 ...

  6. 拿了十几个offer,怎样做选择?

    本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/articles 最近收到好几个读者的咨询,关于如何选offer的 ...

  7. npm ande gulp cmd

    在学习前,先谈谈大致使用gulp的步骤,给读者以初步的认识.首先当然是安装nodejs,通过nodejs的npm全局安装和项目安装gulp,其次在项目里安装所需要的gulp插件,然后新建gulp的配置 ...

  8. viewpage和tablayout导航栏

    引入material库: implementation 'com.google.android.material:material:1.2.1' <?xml version="1.0& ...

  9. Flink1.9.2源码编译和使用

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  10. Java学习的第五十一天

    1.例9.3 析构函数 public class Cjava { public static void main(String[]args) { Student s1=new Student(1001 ...