10天完成50个前端基础的练手项目
原项目地址:https://github.com/bradtraversy/50projects50days
[toc]
- 绘制标题以及各个盒子
- 为 windows 添加scroll监听事件,监听滚动事件
- 通过 windows.innerHeight 获取窗口高度,并且计算出应该呈现出来的box的高度
- 遍历各个box,通过getBoundingClientRect()获取box与顶部的高度,并对需要呈现的box添加show class
- 对于每个box默认,transform: translateX进行位移
- 并且通过伪类nth-of-type(even)实现奇偶不同方向位移
- .show类 再覆盖掉默认位移属性
- :root声明全局变量
- 通过伪类::before 添加上一个图层能够使得背景更加好看
- @media 媒体响应
- 为左右两边添加hover监听事件,当触发监听事件时,为两边添加新的class
- 在input的最后添加上required
- 通过JS操作将label的每一个字母转换为span,并且复制上transition-delay实现更好的效果
- 伪类控制动画
- audio标签实现音乐播放,并且有一些控制播放的接口
- font绘制图片,以及伪类绘制
- 通过display实现一种collapse
- 通过JS监听键盘事件,实现标签添加
- 通过定时器实现随机选择
- linear-gradient,线性插值实现渐变背景色
- 通过JS进行点击事件的控制,通过JS从而控制class从而通过CSS切换状态
- 常规通过transition: 进行动画控制
- fetch拉取数据
- 通过后端封装API进行搜索
- 当没有hover属性通过position让元素消失于div中,通过:hover transition
- ::before 伪类实现蒙版效果
- 定时器, date对象获取时间
- rotate属性实现旋转
- border-radius旋转
- 通过在button下添加一个circle实现效果
- click通过点击位置更新circle位置
- 通过circle的动画实现波动效果
- border-style: dashed 将边框设置为虚线效果
- flex中,margin-left: auto可以实现居于最右
- 通过canvas.getContext方法获取画布对象,之后使用画布API进行绘制。
- 新的绘制三角形的方法,border四边透明,然后控制border-bottom底边设置颜色绘制
- animation 设置动画, infinite动画无尽播放
- 语义化标签
- 通过fixed实现sticky效果
- JS通过序列设置div的transform
- 通过CSS实现div的transition
- 通过监听点击事件,点击后生成div实例。
- 并且通过setTimeout定时销毁已经声明的实例
- 添加Mouseenter与 Mouseout的事件监听
- box-shadow: x偏移量 y偏移量 阴影半径 扩散半径 颜色
- display的换行新方式,指定父组件的max-width,并且display设置为flex,子组件只需要指定宽度即可 不用进行flex的设置
一种效果不错的卡片展示方式
- linear-gradient()
- filter设置滤镜
- 通过focus()函数使得下一个输入框被激活
- 在输入框为输入、focus以及有输入值后的情况下分别设置不同的css,使得用户体验更好
- 实现根据用户输入内容进行过滤
- 通过为元素添加class进行过滤,display:none,不会进行渲染(opacity:0, visibility: hidden都会渲染出来只是不会显示)
- JS计算label的位置,并且进行更新
- 有用的API:nextElementSibling\getComputedStyle(Dom对象).getPropertyValue(CSS属性名)
- 针对不同浏览器内核的处理方式
- 通过div堆叠的方式实现一个非常好的展示效果,很有层次感
- label 通过for属性与input进行绑定
- 语义化标签,
- 通过localstorage 存储
- text-decoration: line-through; 实现删除线效果