【消灭代办】第3周 - 斐波那契数列新写法、伪数组转化为数组
2018.11.26代办一:【js/jq获取元素的高度为0】
原因描述:
隐藏的元素的高度获取不到是0。存在于元素是display:none的时候
解决方案:
可以设置元素展开后立马获取高度。
2018.11.27代办二:【斐波那契数列新写法】
斐波那契数列:
1 1 2 3 5 8...
规律就是前一个数等于后边临近两个数之和
原理:
// f(n) = f(n-1) + f(n-2)
递归调用的代码写法:
1 function fibonacci(n) {
2 return n<=2 ? 1 : fibonacci(n-1) + fibonacci(n-2) //递归调用
3 }
2018.11.28代办三:【怎么看微信h5里的代码】
这是一个很水的代办。。。
因为可以单独算一个系列,所以单独成文:https://www.cnblogs.com/padding1015/p/10030518.html
2018.11.29代办四:【如何监听一个animation动画的结束事件】
不能全部用setTimeout设置定时器触发动画结束后的程序吧。
两种写法,1、原理都是监听animationend事件:
1 $('.page3 .bus').on('animationend',function(){ 2 console.log('动画完毕') 3 }) 4 document.getElementsByClassName('bus')[0].addEventListener('animationend',function(){ 5 console.log(this) 6 })
2、然后比较low一点的方法,就是setTimeout设置定时器。
但是这种方法比较好点的地方就是,可以设置的时间是早于动画或者动画播完后等一会再执行的。
2018.11.30代办五:【jq绑定touch事件时获取事件对象】
1 $('.choose-scroll').on('touchstart',function(e){ 2 console.log("touchStart",e); 3 });
这时打印出来的e,为目标元素对象,而不是事件对象。
而 e.originalEvent 里边有touches对象。
或者可以直接使用event就是e.originalEvent对象了,他俩拿到的对象一样
2018.12.01代办六:【如何将伪数组转化为数组?】
伪数组:无法调用数组的方法,但是有length属性,又可以索引获取内部项的数据结构。
比如:arguments、getElementsByTagName等一系列dom获取的NodeList对象,他们 都算。
转换方法:
假设这里有个伪数组:pagis
let arr = [].slice.call(pagis)
console.log(arr) 这时arr就是真数组了。
或者:
let arr = Array.prototype.slice.call(pagis);
利用了slice传一个数组/集合,就会直接返回这个集合的原理。拿到的也是数组。
也就可以使用数组的各种方法了。
2018.12.02代办日:【video标签的健康写法】
vedio标签:
<video x5-video-player-type="h5" x-webkit-airplay="true" airplay="allow" playsinline="" webkit-playsinline="" src="dizhi.mp4" style="width: 100%; height: 100%; object-fit: cover;"></video>
视频标签属性讲解:http://caibaojian.com/h5-video.html
<video id="video" class="pd" preload="auto" x-webkit-airplay="true" webkit-playsinline="true" playsinline="" x5-video-player-type="h5" x5-video-player-fullscreen="true" poster="image/poster.jpg" src="image/v.mp4" style="margin-left: -185.063px; height: 100%; margin-top: -181.222px; width: 100%;"></video>
越努力,越幸运;阿门。