JS手撕(八) Promise Promise实现 Promise的原理之前有写过两篇博客,就不细讲了。 但还是需要简单复习一下下。
JS手撕(七) 事件总线 事件总线 事件总线是什么呢? 事件总线其实就是发布订阅模式的一种实现。 学习JS的话,就一定会接触到事件的概念。
JavaScript 动画框架 框架封装 ---- 相信大家在很多门户网站上都可以看到动画的交互效果,通过这些动画生动地体现了我们在网页上的交互效果,现在我们就来学习一下这些动画效果的分解动作吧。...动画的实现思路都是通过连续改变物体的属性值来实现效果的。一般来说都是改变一个物体的left,right,width,height,opacity....li> 四.链式动画 首先把上面的简单运动框架抽取出来然后加上透明度的变化,放进一个人通用的JS文件里movement.js...filter: alpha(opacity:30); opacity: 0.3; } <script src="move.<em>js</em>...JSON的格式: {键:值,键:值} 完善后的运动框架<em>js</em>:movement.<em>js</em> function getStyle(obj,attr) { if(obj.currentStyle){
JS手撕(三) 节流、防抖 节流和防抖 前端开发中会遇到一些频繁的事件触发,像是resize、scroll、mousedown、mousemove、keyup、keydown等。...参考 死磕 36 个 JS 手写题(搞懂后,提升真的大) - 掘金 GitHub - qianlongo/fe-handwriting: 手写各种js Promise、apply、call、bind、new
JS手撕(九) 常用Promise API 前言 上一篇已经手撕了一个简单版本的Promise。现在就在继续手撕常用的Promise API。...因为p4先得到结果 参考 Promise学习笔记(一) | 赤蓝紫 GitHub - qianlongo/fe-handwriting: 手写各种js Promise、apply、call、bind、
/promisify.js');const readFile = promisify('fs.readFile'); // 转换异步读取// 异步文件 由回调函数形式变成promise形式readFile
一、setTimeout VS. requestAnimationFrame 传统js动画实现一般使用setTimeout/setInterval等定时方式执行一个动画更新操作,但这种方式在使用中存在一些问题...另外,各个显示器的刷新频率不同,也使得一套代码无法自适应不同频率,难以对动画效果最优化。...就是10ms;如果是16.7ms,则interval自动是16.7ms 浏览器优化动画绘制 浏览器可以合并requestAnimationFrame的动画操作、CSS动画、CSS变换等各种动画效果到一次渲染周期中完成
此案例实现的是侧边栏的滑入与滑出,主要用定时器来实现物体滑动时速度的控制,从而实现滑入滑出效果,下面是效果图: 下面是实现的js代码: window.onload=function()
http://mpvideo.qpic.cn/0b78biabsaaadaacplu7bvqfacwddefaagia.f10002.mp4? 点击按钮触发 r...
JS手撕(十一) 选择排序、快速排序 选择排序 原理 选择排序原理就是每次从未排序序列中选择最小元素,放到已排序序列的末尾。 那么如何选择最小元素,并把最小元素放到已排序序列的末尾?...图片来自菜鸟教程 JS实现 function selectSort(arr) { const len = arr.length; let minIndex; // 保存最小数的索引.../sort.js'); let arr = [3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 26, 4, 19, 50, 48]; console.log(selectSort...该操作称为分区操作(partition) 递归地把小于基准值地子序列和大于基准值地子序列排序 图片来自菜鸟教程 JS实现 function quickSort(arr, l, r) { if...Math.floor(Math.random() * (r - l) + l); [arr[l], arr[pivot]] = [arr[pivot], arr[l]]; pivot = l; JS
使用RequestAnimationFrame,核心部分就是利用transformX实现位移 Js 逻辑写的比较挫,还要想想怎么改进,或者有更好的思路。
JS手撕(十) 冒泡排序、插入排序 冒泡排序 原理 冒泡排序原理就是依次比较相邻元素,如果前面的比后面的大,那就互换位置。从第一对比到最后一对。...下面的动图来自于菜鸟教程(贴出来主要是为了能更好的理解) JS实现 实现: function bubbleSort(arr) { const len = arr.length; for (let...(如果待插入元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面,这是为了让插入排序是稳定的) JS实现 function insertSort(arr) { const len =.../sort.js'); let arr = [3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 26, 4, 19, 50, 48]; console.log(insertSort
做开发久了,会越来越依赖框架,毕竟利用框架可以快速的完成工作任务,如常见的分页效果,只需要与后端配合,由后端返回总页数和当前第几页这两个参数传给一些框架的分页功能,就可以轻松的实现分页效果,那如果在不依赖框的情况下利用原生...JS如何实现一个分页效果呢?...接下来给大家分享一段分页代码实现下面的效果。 ? 原生JS...实现分页效果 a { margin: 5px; }
DOCTYPE html> 开关灯效果
效果图 html <!...left: 0; top: 0; /* 鼠标箭头样式 */ cursor: move; display: none; } js
mermaid 是一款 javascript 库,能够轻而易举地通过文本代码绘图。
近期正在鼓捣个人网站,想实现进入网站自动弹出二维码的效果,类似下面这样: ?...中间磨磨唧唧从原生JS找到JS插件,浪费了不少精力和时间,但是也磕磕碰碰学到了些知识,建议读者:想学一下弹窗的JS实现代码的可以看看前两小节,只想实现效果的,直接复制源码就行!...利用jquery.popup.js可以实现图中炫酷的动画效果, 支持animate.css。...">x $(function () { $('.btn1').on('click', function
window.onload 窗口加载完成事件;如果js代码写在body标签之前,则所有的js都要写在window.onload的事件中;即等待窗口加载完成之后再执行!...定时器 setInterval 做返回顶部的动画效果 6....清除定时器 实现步骤: 注册窗口滚动事件 滚动离顶部的距离大于300时,显示ICON 注册点击事件,返回顶部 ==>> 即设置scrollTop 的值为0 用定时器做返回顶部的滚动效果...device-width, initial-scale=1.0"> 返回顶部效果...none"> 效果
LayerShow(text),text为参数,可以写入想要写入的提示语 //本方法在调用时会自动生成一个添加到body的div,并且会在调用隐藏遮罩层 LayerHide()时删除div //封装遮罩层div显示效果
领取专属 10元无门槛券
手把手带您无忧上云