JS原生练习(一)

83个js原生代码实例,从易到难,涵盖js算法和几乎开发中用到的知识点(实时更新中)

实例中也包括了很多布局例如:flex布局和gird布局。

github地址 github.com/laihuamin/jsExample

项目展示地址laihuamin.github.io/jsExample/

(亲自做,对js的熟练度绝对的加深,有心的给个star,谢谢。)

第一课

第一个  控制DIV属性

说一下代码实现逻辑

用的是点击事件来实现的。

循环逻辑,五个按钮五个点击事件具有很多的相似之处,这样可以减少代码量。

判断逻辑,因为重置按钮需要清空之前的style,这里用if语句也可以,但是比较繁琐,所以我采用了与门操作符,好处就是代码量比较少。

JS原生练习(一)_第1张图片

第二个 网页换肤

首先先来说几个注意点,再来说代码逻辑

1、笔者用的是button,遵循JS语义化原则,使人更容易理解。但是得先设置box-sizing:content-box问题,不然按钮的宽高无法正常显示

2、笔者这里用了flex布局,简单方便。推荐这篇文章

http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

代码逻辑

通过点击事件来实现,实现过程主要由一下两点

1、改变引入的css文件

2、改变按钮的class,添加一个active样式。(注:active笔者设置了import属性)

JS原生练习(一)_第2张图片

第三个 函数接收参数并弹出

代码逻辑

采用点击事件,获取值后将其传个函数

JS原生练习(一)_第3张图片

第四个 用循环将三个Div变成红色

亮点

使用flex布局。

JS原生练习(一)_第4张图片

代码逻辑

运用点击事件,当点击之后,利用循环改变背景颜色


JS原生练习(一)_第5张图片

第五个 鼠标移入改变样式,鼠标移出恢复

代码逻辑

用鼠标经过事件和鼠标移出事件。当鼠标移入是,改变div的style,移出是将style置为空。

JS原生练习(一)_第6张图片

第六个 记住密码提示框

代码逻辑

鼠标经过显示内容,鼠标移出内容隐藏

JS原生练习(一)_第7张图片

第二课

第一个 百度输入法

代码逻辑

点击事件控制导航栏的下拉,但是需要加一个if的判断,判断ul块的display属性。

JS原生练习(一)_第8张图片

第二个 点击Div,显示其innerHTML

代码逻辑

利用点击事件弹框p元素的innerHTML内容。这个实例,主要帮助理解innerHTML。

JS原生练习(一)_第9张图片

第三个  求出数组中所有数字的和

代码逻辑

利用点击事件,然后取得input的value值。

取得的是字符串类型,用split把字符串切成一个一个字符串。

在用Number逐个进行转换,最后累加起来取得和,在输出给另一个div块

JS原生练习(一)_第10张图片

第四个  弹出层效果

代码逻辑

利用点击事件,控制两个div块的display。

JS原生练习(一)_第11张图片

第五个  函数传参,改变Div任意属性的值

代码逻辑

利用点击事件将参数传递给change函数,改变属性值。

在利用点击事件,将style中的css清除掉。

JS原生练习(一)_第12张图片

第六个  图片列表:鼠标移入/移出改变图片透明度

布局

采用flex布局,(笔者越来越喜欢这个布局,感觉没有float那么繁琐,用起来十分方便)

JS原生练习(一)_第13张图片

代码逻辑

采用鼠标经过事件和鼠标移出事件改变其style属性。

JS原生练习(一)_第14张图片

第七个  简易选项卡

代码逻辑

利用鼠标经过事件改变内容块的display属性,以及本身的背景色。

注意两个点:

1、改变内容块时,笔者用了索引,因为i的不能被引用。

2、在赋值之前,要将所以style重置之后在进行。

JS原生练习(一)_第15张图片

第八个  简易JS年历

布局还是采用flex布局

JS原生练习(一)_第16张图片

代码逻辑

利用循环和鼠标经过事件改变内容块里面的内容。

JS原生练习(一)_第17张图片

第九个  单一按钮显示/隐藏一播放列表收缩展开

代码逻辑

利用点击事件,设定一个判断标准,比如笔者用了show,这个vue里面也有类似用到。

JS原生练习(一)_第18张图片

第十个  提示框效果

布局

采用flex布局

JS原生练习(一)_第19张图片

代码逻辑

利用的是循环和鼠标经过事件,以及鼠标移出事件,来改变图片的display属性。

JS原生练习(一)_第20张图片

第十一个  鼠标移过,修改图片路径

布局

采用grid布局,第一次用,觉得挺不错的 blog.csdn.net/hj7jay/article/details/70670467

推荐这个教程,挺完善的

JS原生练习(一)_第21张图片

代码逻辑

采用鼠标经过事件,切换图片的src属性,笔者用到了正则,减少代码量。

笔者还加了图片的懒加载判断,用的是一张gif的动图

JS原生练习(一)_第22张图片

第十二个  复选框(checkbox)全选/全不选/返选

代码逻辑

for循环判断每一个复选项框是不是被选中。

当不被选中时,checked为false,在js的与操作符中当前一项为false时,后一项不被执行。

当循环执行完,判断被选中的数量是不是等于复选项框的数量。

当数量相等时,把全选按钮的check的值赋为true。

当全选项框为true时,innerHTML的值为“全不选”,反之,则为“全选”。

JS原生练习(一)_第23张图片

接下去就是全选和全不选,以及反选的逻辑。都是利用循环,逻辑比较简单,不加以赘述。

JS原生练习(一)_第24张图片
JS原生练习(一)_第25张图片

第三课

第一个  用typeof查看数据类型

代码逻辑,用typoof判断数据类型。

第二个  用parseInt解析数字,并求和

代码逻辑

利用点击事件,累加两个input的值(经过parseInt()转换)。再讲值赋给res

在添加两个句柄,判断input的值为空时,将res切换回?。

JS原生练习(一)_第26张图片

第三个  累加按钮,自加1

代码逻辑

点击事件,使得n的数值自动累加,然后赋值给button。

JS原生练习(一)_第27张图片

第四个  输入两个数字,比较大小

代码逻辑

利用点击事件,判别两个值的大小,然后用正则选取内容,改变button的innerHTML的属性值。

JS原生练习(一)_第28张图片

第五个  页面加载后累加,自加1

代码逻辑

利用setInterval设置定时触发函数,然后给innerHTML的内容赋值。

JS原生练习(一)_第29张图片

第六个  判断数字是否为几位数

代码逻辑

先对input输入框采用松开按键事件,判断输入为什么,把所有除数字以外的置为空。

然后在判断input的value值的长度,来判断是几位数。

JS原生练习(一)_第30张图片

第七个  简易计算器

www.jianshu.com/p/d847e5739cb7

第八个  简易时钟

代码逻辑

先定义一个函数,用来获取几点几分几秒,然后在用setTnterval定时器来事实更新dom

正则的作用是当时间是各位数的时候在他前面加个0,使其变成两位数。

JS原生练习(一)_第31张图片
简易时钟

第九个  简易倒计时时钟

代码逻辑

定义一个函数,将时间换算成分秒形式,然后在让值递减,使其完成计时功能。

JS原生练习(一)_第32张图片
计时器

你可能感兴趣的:(JS原生练习(一))