苹胖学习记录(一)3.24

在旅梦学习前端有段时间了,想着总得写个笔记持续更新学了些什么,只靠印象还是不够用,所以写个类似目录的东西

以下都是前端相关,有多为html,css,js还有算法,移动端开发注意的些东西

头一次记不清学这些的时间顺序了,就不按时间顺序记录了,以后会按时间顺序来记录的,尽量一周一记录

  • 算法
  1. 红包算法

    这星期学的红包算法是一个非常简易的一个算法

parseFloat((Math.random()*(((restAmout/restNum)*2)-0))).toFixed(2)
restAmout 是剩余的总额
restNum 是剩余的总人数

用上面的算法分红包时,它的数学期望每次都是平均数(restAmout/restNum),可以说是很公平了。
于是我又在这基础上加了保底

parseFloat((Math.random()*(((restAmout/restNum)*2)-2*N))+N).toFixed(2)
加了保底后每次的数学期望也还是平均数,只是保底有N元,上限也砍了N元
这个算法还有个要注意的点,它的数学期望是会按着次数来浮动的,要是前一次分红包分的比前一次的期望值低,那么下一次分的期望值就会提升,一开始我并没有注意到这点。

  1. QQ号加密
    631758924 是加密过后的
    解密规则:
  • 第一个数删除取数,
  • 将第二个数移到末尾
  • 将第三个数字删除取数
  • 将第四个数字移到末尾
  • 直至最后一个删除了取完为止
    结果:
631758924   6
17589243    1
5892437     5
924378      9
43782       4
7823        7
238         2
83          8
3           3

用数组和两个指针,一个head指向第一个数,另一个tail指向最后一个,删除就是把 head 头指针指向后一个数,移向末尾也可以通过 tail 来实现

let enc_qq = [1,2,3,4,5,6,7,8,9],
qq=[],
head = 0,
tail = 9;
while(head < tail){
qq.push(enc_qq[head]);
head++;
enc_qq[tail]=enc_qq[head];
tail++;
head++;
}

用指针和数组可以简单实现栈,队列,列表等结构。此处还有关于数组常用的函数要注意。

enc_qq.push(0);插入最后一个
enc_qq.pop();移除最后一个
enc_qq.unshift(0);插入第一个
enc_qq.shift();移除第一个

  • CSS
  1. 阿里支付-健康块仿写
    使用Swiper达成横向滑块效果以及从Iconfont在线链接获取图标使用(视情况使用box-sizing)
    content-box 标准盒模型 -> 计算宽高只有content
    border-box IE盒模型 -> 计算宽高会算边框以内
  2. animation-fill-mode
    animation-fill-mode: forwards; 动画后停留在动画的最后一帧
    animation-fill-mode: backwards; 动画前停留在动画的第一帧
    animation-fill-mode: both; 两个效果都应用
    仿写了JD校招页面练习,用Swiper套一层Swiper达到先滑竖屏再滑横屏,其中有一个数字转轮的效果用odometer框架和Swiper的添加事件监听实现
  3. 百度外卖熊仿写
    动画效果加过渡,用setInterval()“重复调用函数”做进度条效果,以及点击换屏
  4. 百度外卖熊-生活页面
    绕Z轴旋转特效
  5. 大白动画
    环形的颜色渐变,背景大小扩大,再设定动画移动
  6. BFC
BFC 的概念

Block Formatting Context(块级格式化上下文)

BFC 的渲染规则
  1. BFC在页面上是一个独立的容器,最显著的效果是建立一个隔绝的空间,外面的元素不会影响BFC里面的元素,反之,里面的元素也不会影响外面的元素。
  2. BFC的区域不会与浮动元素的box重叠
  3. 垂直方向的外边距会发生边距重叠(包括父子元素,兄弟元素),水平方向的外边距不存在边距折叠
BFC 的创建条件
  1. overflow的值不为visible
  2. float的值不为none
  3. 行内块inline-block
  4. 表格单元display: table-cell;
  5. 绝对定位 (absolute,fixed)

学习 BFC (Block Formatting Context)
正常的html页面是会吃间距的,BFC可避免

  1. BootStrap
    初识BootStrap框架,对于动态分布的网站很好用,还有提交表单但不刷新页面,dom操作
  2. 豆瓣仿写
    页面图片的缩放处理、弹性布局占比和继承兄弟高度、多行超出省略、盒内背景图片处理->用另外一个盒子padding-top:100%撑起
  3. 掘金小册页面
    /* 调用性能->文本抗锯齿 */
    text-rendering: optimizeLegibility;
    /* 滚动更顺滑 */
    -webkit-overflow-scrolling: touch;
    最简单的跨终端自适应
  4. 网易云音乐年度歌单仿写
    Swiper滑屏和背景音乐还有扣动画
  5. 自适应
    媒体查询做到兼容多终端
  6. 星战简单的动画
  7. Swiper实例
    Swiper框架3D效果、分页器、导航的运用,具体的去看文档
  8. WEUI
    为微信小程序使用的前端框架
  • Float
    圣杯布局、双飞翼布局和清除浮动的五个方法
  1. 在父元素底部加上一行代码<div style="clear: left;"></div> 也可用both
  2. 在父元素的CSS上加一个div.content{float:left;}
  3. 在父元素的CSS上加一个伪元素after 同样 clear:left; 并加上 display:block
  4. 利用BFC简称 (块级格式化上下文) 的效果来弥补父容器的高度塌陷
    .clearFix {
    padding: 0 200px;
    overflow: hidden;auto;scroll;
    }
  5. 尼古拉斯大师 方法, 把父容器的display设置为table,可以创建一个匿名表格单元,直接触发BFC效果======>不推荐
    .clearFix {
    display:table;
    }
  • JS
  1. Jquery
    使用Jquery写JS
  2. 玩家
    JS里函数也是对象,可以用函数代替类的作用
    new Player() 作为构造函数constructor被运行,会有一个返回新对象->实例
  3. table
    利用dom制成动态表
  • stylus
    stylus可以定义变量、函数以及嵌套
    flex-shrink 缩进的动态
    flex-grow 剩余的动态
    动态分布的对齐、换行、超出隐藏
    值得注意的是对齐属性加在父元素,换行和超出隐藏都加在子元素
  • SVG
  1. animation
    利用SVG的x,y拖动图形,控制音量
    SVG的移动和变形动画,其中的移动动画还可以利用SVG画的路径
  2. icon-path
    SVG在<defs>里提供组合<g>和模版<symbol>
    不同的是组合除了位置外不用定义大小尺寸,模版需要,因此模版可以随意放大缩小
  3. 霓虹灯
    利用stroke-dasharraystroke-dashoffset属性镂空文本,并描边以此做了霓虹灯动画。
  • 手机的微信支付页面
    动态分布布局、监听器改变样式
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容