动态导航栏和JavaScript箭头函数
动态导航栏和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箭头函数的更多相关文章
- Jquery实现动态导航栏和轮播导航栏
动态导航栏和轮播导航栏的实现思想: 利用jquery技术的append()方法和bind()方法实现li标签的添加和点击事件绑定,在利用$getJSON(url,data,function)请求方法实 ...
- 轻松学习 JavaScript——第 6 部分:JavaScript 箭头函数
JavaScript箭头函数是ECMAScript 6中引入的编写函数表达式的一种简便方法.通常,在JavaScript中,可以通过两种方式创建函数: 函数语句. 函数表达式. 可以如下所示创建函数语 ...
- JavaScript箭头函数中的this详解
前言 箭头函数极大地简化了this的取值规则. 普通函数与箭头函数 普通函数指的是用function定义的函数: var hello = function () { console.log(" ...
- JavaScript箭头函数 和 generator
箭头函数: 用箭头定义函数........ var fun = x=>x*x alert(fun(2)) //单参数 var fun1 = ()=& ...
- 巧妙使用checkbox制作纯css动态导航栏
前提:很多时候.我们的网页都需要一个垂直的导航栏.可以分类.有分类.自然就有展开.关闭的功能.你还在使用jquery操作dom来制作吗?那你就out了! 方案:使用checkbox 的 checked ...
- jsp动态导航栏
站点页面的导航栏是从数据库中生成出来的,所以在界面上展示导航栏时,要从数据库中读取出来,但不能每次显示一个页面都从数据库中读.这样就非常浪费性能.应该考虑把导航栏放到一个缓存中.如:session.a ...
- javascript箭头函数把函数给简写了[0403]
箭头函数把函数给简写了[0403] 我不是很喜欢箭头函数,总觉得它让原本就不那么严谨的js更加不严谨了,所以有时候看js程序也是一件很头痛的事情,不过在ES6中加入了这么一个新的方法,已 ...
- JavaScript 箭头函数
ES6新标准增加了一种新的函数,箭头函数. x=>x*x 相当于: function (x){ return x*x; } 如果参数不是一个,就需要用括号()括起来: // 两个参数:var t ...
- javascript 箭头函数的使用 初学者必看
为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用于学习. 本文我们介绍箭头(arrow)函数的优点. 更简洁的语法我们先来按常规语法定义函数: 1 2 3 4 5 funct ...
随机推荐
- ps 树形显示
ps -axjf|grep swoft
- spring boot:使用poi导出excel电子表格文件(spring boot 2.3.1)
一,什么是poi? 1,poi poi是用来兼容微软文档格式的java api, 它是apache的顶级项目之一, 也是我们在生产环境中导出excel时使用最多的库 2,poi官方网站: http:/ ...
- rabbitmq与erlang版本
来源自https://www.rabbitmq.com/which-erlang.html erlang安装包下载地址 https://packages.erlang-solutions.com/er ...
- win10开机启动文件夹
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
- Git版本管理器操作步骤
组长建立管理器: 第一步: 管理器网址:https://gitee.com/ 第二步:注册个人信息 第三步(添加项目) 第四步(兴建文件)注意:必须双层文件夹 第五步:打开VS开发工具 第六步:去把刚 ...
- dubbo配置的覆盖关系
dubbo推荐在Provider上尽量多配置Consumer端属性: 由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的参数设 ...
- 看完本文若不能让你学通“Python”,我将永远退出IT界
学Python,切忌今天这学一点,明天那里学一点,零零散散没有系统的学习.这样不仅耽搁大家时间,久而久之也会消磨大家学习的兴致!这里给大家总结了一张系统的Python学习路线图!希望大家共勉! Pyt ...
- Stream(二)
public class Test { /* * Stream接口: * 实现类 * IntStream * DoubleStream * LongStream * * 一.创建Stream * 1. ...
- wepack配置
一.什么是 webpack? webpack是一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理,它能有Grunt ...
- python用scrapy模拟用户登录
scrapy模拟登录 关注公众号"轻松学编程"了解更多. 注意:模拟登陆时,必须保证settings.py里的COOKIES_ENABLED(Cookies中间件) 处于开启状态 ...