js
文章平均质量分 50
qq_38694034
这个作者很懒,什么都没留下…
展开
-
图片旋转处理
浏览器图片旋转的兼容处理需求: 在项目中,我们经常要实现用户上传图像的功能,由于图像“太大"或者"压缩上传服务器"或者“本地处理图片”,我们经常会用canvas对图片进行2次处理。在最近的一次开发中我发现,ios低系统、ios(13.4.1之后)高系统对图片的旋转处理不同。并且我还研究了android及chrome对旋转图片的处理,下面我研究的成功,分享给大家。手机拍摄旋转图片ios和android的区别: 用户用手机拍照的时候,会不同方向的旋转拍照,...原创 2020-06-29 10:01:44 · 578 阅读 · 0 评论 -
构造函数的this,原型中的this,构造函数方法中的this
结论:构造函数中的this和原型方法中的“this” 都指向 构造函数的实例话对象, 构造函数的方法中的 this 指向构造函数例:function Persion(options){ this.name = "张三"; console.log(this) this._init(options)}Persion.prototype._init = function...原创 2019-11-13 17:05:11 · 622 阅读 · 0 评论 -
Object.getOwnPropertyNames 和 Object.keys()
var obj = {'a':'a','b':'b'};Object.defineProperties(obj,{ "c":{value:'c',enumerable:0}, "d":{value:'d',enumerable:!0}})// obj {a: "a", b: "b", d: "d", c: "c"}Object.keys(obj) //[...原创 2019-11-12 15:08:44 · 284 阅读 · 0 评论 -
常用的浏览器判断方式
我们做h5兼容开发或统计的时候经常用到平台的判断处理,下面是常用的浏览器判断方式var UA = inBrowser && window.navigator.userAgent.toLowerCase();var isIE = UA && /msie|trident/.test(UA);var isIE9 = UA && UA.indexOf...原创 2019-11-08 15:08:30 · 197 阅读 · 0 评论 -
属性的判断in和hasOwnProperty区别
1. hasOwnProperty 方法用于判断对象“自身”是否有某个属性:2. in 用于判断对象“自身”及其“继承对象”是否具有某个属性:例: let obj = {a:1,b:2};控制台查看: obj.hasOwnProperty('__proto__') // falseobj.hasOwnProperty('valueOf') ...原创 2019-11-08 14:41:09 · 390 阅读 · 0 评论 -
判断数组或对象结构是否相同
参考vue源码中的方法function looseEqual (a, b) { if (a === b) { return true } var isObjectA = isObject(a); var isObjectB = isObject(b); if (isObjectA && isObjectB) { try { ...原创 2019-11-07 19:17:14 · 372 阅读 · 0 评论 -
将 “驼峰字符串” 转 “连字符字符”
实现代码:var hyphenateRE = /\B([A-Z])/g;var hyphenate = function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase()}hyphenate("containerId"); //container-id实现原理:replace方法的第二个...原创 2019-11-06 15:02:01 · 416 阅读 · 0 评论 -
将“连字符字符串”转化为驼峰字符串
一:实现代码:var camelizeRE = /-(\w)/g;function camelize(str){ return str.replace(camelizeRE,function(_,c){ return c ? c.toUpperCase():''; })}camelize('kkk-zzz-hhh'); kkkZzzHzz;二: 实...原创 2019-11-06 12:17:07 · 625 阅读 · 0 评论 -
js更精准的判断数据类型
toString 方法Number.toString() : var a=5; a.toString() // "5"String.toString() : var a = "jiji" a.toString() // "jiji"Boolean.toString() : var a = true; a.toString()...原创 2019-11-05 19:07:24 · 231 阅读 · 0 评论 -
实现点击自身元素而不是子元素触发的js条件
如下:点击子元素时候不想触发<style>#parent{background: pink;width:50%;}#child{background: orange;height:300px;width: 300px;}</style><div id="grandFather" onclick="a...原创 2018-04-26 13:38:27 · 3017 阅读 · 1 评论 -
geometry 的偏移(translate)和mesh的偏移的区别
geometry中的偏移,是物体的网格偏移了,,但是物体的世界的坐标还在原来的位置:这样可以很简单的实现一个绕着世界坐标的中心点旋转的物体效果:1. 怎么实现物体绕这世界坐标的中心点旋转:实现的思路是:网格(geometry)先偏移(translate),以后生成网格物体(mesh),最后网格旋转,实现代码如下:var geo = new THREE.BoxGeometry(10,10,10);...原创 2018-03-26 19:24:38 · 3334 阅读 · 2 评论 -
将blob对象转二进制buffer
一直做了一个websocket的项目,,接的是第三方接口,第三方接口有一个node案例,案例中,通过websocket返回的数据是直接是buffer对象,然后通过第三方库pako,进行解压。 但是在客户端,返回的数据是blob二进制数据,那么怎么将它向客户端进行解压呢? 最后通过 renderer 对象成功解决:var render = new FileReader();rend...原创 2018-02-08 18:07:37 · 4684 阅读 · 0 评论 -
为什么three中position,scale,rotation, quaternion, modelViewMatrix ,normalMatrix 等属性 直接修改属性值失败
在以前做项目的时候,我想改一个Mesh的顶点值为鼠标点击的坐标,直接设置设置失败,原因是这样的,以下是源码:Object3D 对象中:Object.defineProperties( this, { position: { enumerable: true, value: position }, rotation: {原创 2018-02-05 17:03:23 · 2123 阅读 · 0 评论 -
three 源码解析之 Euler
// 欧拉角function Euler( x,y,z,order ) { // 自定义 x,y,z,order,并且设定默认值 this._x= x ||0; this._y= y ||0; this._z= z ||0; this._order= order || Euler.DefaultOrder; // 默认值可以修改原创 2018-02-06 12:34:15 · 393 阅读 · 0 评论 -
传值和传址
传址案例如下: 当函数的参数传入一个对象时,,是传址,以为对象储存的是地址所以,,如果,你申明一个全局变量,想要接受函数执行的结果,一种非常有用的方式就是,申明一个全局变量为object,当作参数传入进去,最后再返回该对象。当传入一个简单的数据类型传的是值,所以不会影响原来的值: 希望对大家有帮助,喜欢我的话,可以关注我!!谢谢!!!原创 2018-02-06 12:10:19 · 304 阅读 · 1 评论 -
ajax bufferarray three中loader的实现原理
ajax的返回数据的类型有五中,,在研究three的loader的时候,突然发现ajax返回的数据还有arrayBuffer数据类型,以前我只知道返回文本,,于是我查阅资料,总结了一下,,以下是我的总结:responseType的值如下五中:《1》“ ”和 "text" 字符创(默认) 《2》“arraybuffer” ArrayBuffer原创 2018-01-26 19:00:07 · 459 阅读 · 0 评论