javascript
Marchanges
这个作者很懒,什么都没留下…
展开
-
JS监听DOM宽高的变化
在 JS里面 resize 方法可以监听 window 窗口的大小变化,如果要监听某个Dom的变化话需要用到 MutationObserver 来去监听了,示例代码如下。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <style> #pp { width: 200px; height:原创 2020-05-15 11:17:27 · 5136 阅读 · 0 评论 -
web页面 button 按钮获取到焦点后,可以触发键盘事件
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <button id="btn">btn</button> <input type="text"> <script> var oBtn = docu.原创 2020-05-12 10:52:23 · 1385 阅读 · 0 评论 -
three.js 把geometry转换成BufferGeometry
在 three.js 的文档里面有这个方法https://threejs.org/docs/index.html#api/en/core/BufferGeometry.fromGeometryvar bufferGeometry = new THREE.BufferGeometry().fromGeometry( geometry );...原创 2019-01-16 10:42:50 · 3994 阅读 · 1 评论 -
浏览器与JavaScript(一)
作为web前端工程师,每天都会使用浏览器,所以就想总结下浏览器的知识,下面开始正文,本文的东西都是拿Chrome浏览器来说的。浏览器是多进程。我们先打开浏览器然后打开一个页面,这个时候我们并不清楚浏览器在后台为我们做了什么,接下来打开资源管理器(快捷键 Shift + Esc直接打开或者 浏览器右上角三个点-> 更多工具 -> 任务管理器)我们能看到各个进程。上面是我打...原创 2019-02-22 11:07:49 · 668 阅读 · 1 评论 -
threejs 局部辉光
首先看一下局部辉光的效果。困扰很久的问题,终于解决了!!!具体找到解决的方法是看了这里和这里2。也是看了这两个帖子之后才找到解决方法。这种辉光效果也是用后期处理方法,大家可以先看官网上的这个例子。renderer.autoClear = false;obj.layers.set(0);objBack.layers.set(1);function render(){ ...原创 2019-03-21 18:39:58 · 10628 阅读 · 12 评论 -
Uncaught (in promise) DOMException 报错
最近在项目里面加入视频自动播放,有时候会报错(RT),不能自动播放。<video id="videoPlayer" v-show="!isNormalCamera" class="preview-video" name="media" controls="controls" autoplay="autoplay" loop> <source :src="v...原创 2019-04-09 11:05:09 · 45252 阅读 · 3 评论 -
threejs 判断对象是否在可视区内
在threejs 中判断一个对象(vector坐标)是否在相机的可视区内 let tempV = vector.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix); if ( (Math.abs(tempV.x) > 1) || (Math.abs(tempV.y) &g...原创 2019-04-26 15:44:46 · 5162 阅读 · 3 评论 -
RTMP 在浏览器端播放
RTSP、RTMP 也有很多在说的。然而我就是总结下我最近在使用RTMP的理解。首先说一下RTMP协议的定义,实时消息协议(英语:Real-Time Messaging Protocol,缩写RTMP)也称实时消息传输协议,是最初由Macromedia为通过互联网在Flash播放器与一个服务器之间传输流媒体音频、视频和数据而开发的一个专有协议。Macromedia后被Adobe System...原创 2019-06-21 17:15:48 · 29049 阅读 · 7 评论 -
Promise 多个异步函数都执行完,再执行其他
let P1 = new Promise(function (resolve, reject) { setTimeout(function () { resolve("p1 data") }, 500)})let P2 = new Promise(function (resolve, reject) { setTimeout(function () { resolve("p2...原创 2019-09-05 17:02:37 · 18787 阅读 · 0 评论 -
warnings (imported as 'THREE') was not found in 'three'
这个问题还没解决!用Vue.js 重构项目的时候,引入three.js和其他相关的东西的时候会出现上面的警告。今天就说一下这个解决办法,但是我觉得这个方法不一定适用所有的项目。一、引入THREE首先用 npm 安装了 three, 然后再项目里面引入了。如下代码所示。import * as THREE from 'three'这个时候还需要引入其他three.js 的方法。比...原创 2018-12-29 16:00:08 · 11100 阅读 · 4 评论 -
js 类型判断
说到js的类型判断很容易想到的是 typeof、instanceof等。typeof 有个缺点就是引用类型的结果值都是object 所以就要说一下这些类型是怎么判断的。在说类型判断之前先介绍个东西 Object.prototype.toString 可以查看链接翻译过来就是当 toString 方法被调用的时候,下面的步骤会被执行:如果 this 值是原创 2018-02-28 18:05:13 · 242 阅读 · 0 评论 -
call 和 apply 的使用
call 和 apply 都是改变当前执行函数的上下文,也就是改变this的指向。 call的语法 fun.call(thisArg[, arg1[, arg2[, ...]]])apply的语法fun.apply(thisArg, [argsArray])var pet = { words: '...', speak: function (name) { console.l原创 2017-08-24 17:19:34 · 199 阅读 · 0 评论 -
打乱数组排序的算法shuffle
打乱数组排序的算法。export function shuffle(arr) { let _arr = arr.slice() for (let i = 0; i < _arr.length; i++) { let j = getRandomInt(0, i) let t = _arr[i] _arr[i] = _arr[j]原创 2017-08-24 02:20:00 · 1007 阅读 · 0 评论 -
js使用深度优先遍历实现getElmentById(id)
function getElementById(node, id) { if (!node) return null; if (node.id === id) return node; for (var i = 0; i < node.childNodes.length; i++) { var found = getElementById(node.childNodes[原创 2017-09-26 16:04:40 · 1437 阅读 · 0 评论 -
js 对象的深拷贝
对象的深拷贝 var cloneObj = function (obj) { // typeof null 是等于 object,所以也把null给排除了 if ((obj === null)||(typeof obj != 'object')) return var newObj = obj.constructor === Array ? [] : {}原创 2017-09-01 23:46:51 · 199 阅读 · 0 评论 -
js 把线性的数据结构改成树形结构
把数组的数据结构改成树形结构。 var aaa = [ {name:"111", id: 1, pId: 0, children: []}, {name:"222", id: 6, pId: 0, children: []}, {name:"b", id: 2, pId: 1, children: []}, {name:"c", id: 3, pId: 1, chil原创 2017-09-28 16:16:35 · 2847 阅读 · 1 评论 -
Status Code:200 OK (from disk cache)和304的区别,以及怎么禁止缓存
http Status 200 304 缓存原创 2018-01-22 17:48:38 · 29429 阅读 · 0 评论 -
观察者模式和js自定义事件
事件是一种叫做观察者的设计模式,观察者模式由两类对象组成:主体和观察者。主体负责发布事件,同时观察者通过订阅这些事件来观察该主体。拿DOM来说,DOM就是主体,事件处理代码便是观察者。下面是一个自定义事件,function EventTarget() { this.handlers = {};}EventTarget.prototype = { constructor:原创 2018-01-23 16:58:56 · 628 阅读 · 0 评论 -
js 排序
冒泡排序 var dataStore = [ 72 , 1 , 68 , 95 , 75 , 54 , 58 , 10 , 35 , 6 , 28 , 45 , 69 , 13 , 88 , 99 , 24 , 28 , 30 , 31 , 78 , 2 , 77 , 82 , 72 ]; var t = bubbleSort(dataStore); console.log原创 2018-02-28 10:59:02 · 221 阅读 · 0 评论 -
js来读写cookie操作
因为之前公司的项目前后端是在一起的,因为要用vue来重构之前的项目。所以token签名要作为一个参数传递到后台。所以就遇到两个问题,1 token的保存和获取的问题。 2 token 判断。判断用户是否用token值。首先先说一下 token的保存和获取问题。保存到哪?随着H5的普及相信大家也都知道本地存储,包括我自己在开发的时候也是也是经常用到本地存储的东西。所以我首先想到的就是本地存储原创 2017-08-08 10:47:17 · 2306 阅读 · 0 评论