;

1.图片绘制到canvas <canvas type="2d" id="canvas"></canvas> <view catchtap="canvasSave">保存到相册</view> onLoad: function (options) { wx.createSelectorQuery() .select(‘#canvas’) .fields({ node: true, size: true, }) .exec(this.drawInit.bind(this)) }, drawInit: function (res) { const width = res[0].width const height = res[0].height const canvas = res[0].node const ctx = canvas.getContext(‘2d’) const dpr = wx.getSystemInfoSync().pixelRatio const canvasWidth = width * dpr const canvasHeight = height * dpr canvas.width = canvasWidth c…

小程序canvas生成分享图 6 天前
;

1.单字段 var keyWord = ‘abc’ const db = wx.cloud.database() const _ = db.command db.collection(‘product’).where({ title: { $regex: ‘.*’ + keyWord, $options: ‘i’ } }).get() 2.多字段 var keyWord = ‘abc’ const db = wx.cloud.database() const _ = db.command db.collection(‘product’).where(_.or([ { title: db.RegExp({ regexp: ‘.*’ + keyWord, options: ‘i’, }) }, { subtitle: db.RegExp({ regexp: ‘.*’ + keyWord, options: ‘i’, }) } ])).get()

微信小程序云开发中模糊查询 26 天前
;

说明:用户头像名称等作为公开数据以前需要通过wx.getUserInfo接口获取,这个过程中会有弹框让用户授权,估计是觉得这个流程小题大做了,因此现在这部分数据可以直接通过open-data组件展示,但是要进一步获取更多身份特征信息就需要用button组件。 方式一: <open-data type="userAvatarUrl"></open-data> <open-data type="userNickName"></open-data> 方式二: <button open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="onGotUserInfo">获取用户信息</button> onGotUserInfo: function (e) { console.log(e.detail.errMsg) console.log(e.detail.userInfo) console.log(e.detail.rawData) } 授权弹框中已经没有了拒绝按钮,因此可以重复弹出 其它: 云开发方式默认已经获取到了openid因此w…

wx.getUserInfo接口废弃,改用button和open-data 2020年3月2日
;

1.svg标签直接在页面中 svg { fill: currentColor; //currentColor为css变量,自动读取当前元素颜色 } 2.通过img引入的svg文件 此时css对svg文件无法生效,此时要用到CSS3滤镜filter中的drop-shadow,通过生产一个可指定颜色的阴影放置于svg的位置,并将原始svg移出视线 <img src="img/success.svg"> img{ position: relative; left: -80px; filter: drop-shadow(#fff 80px 0); } 备注:drop-shadow可用于png图片变色

通过img引入的svg如何改颜色? 2020年2月21日
;

1.问题描述 通过addEventListener添加事件,代码多次触发后会导致重复的click事件累加 2.问题原因 addEventListener对同一个事件是可以多次添加的,多次调用就会重复添加 3.解决方案一,每次添加后通过removeEventListener将其注销 var btn = document.getElementById(‘btn’); // 添加事件绑定 btn.addEventListener(‘click’, btnClick, false); // 按钮点击方法 function btnClick() { console.log(‘hello’); // 删除事件绑定 btn.removeEventListener(‘click’, btnClick, false); } 4.解决方案二,通过onclick的方式添加,这样的事件只会添加一次

js中click事件多次触发的处理 2020年2月19日
;

1.作用 元素内通过字符串添加节点 2.jquery中使用 $ele.append(‘<div id="two">two</div>’); 3.原生api var d1 = document.getElementById(‘one’); d1.insertAdjacentHTML(‘afterend’, ‘<div id="two">two</div>’); 第一个参数为插入的位置 <!– beforebegin –> <p> <!– afterbegin –> foo <!– beforeend –> </p> <!– afterend –> 4.其它方法appendChild 参数必须为node类型,通过createElement创建,遇到多层嵌套,较为繁琐 5.另一种方法innerHTML拼接 先获取本来的innerHTML和新追加的部分拼接到一起,再重新赋值给innerHTML 6.如何把字符串模板转为node节点 var str='<div><span>aaa</span></div>’; let tempNod…

原生js使用insertAdjacentHTML实现jquery中的append功能 2020年2月19日
;

1.问题描述 在不同的DOM元素之间通过拖拽实现内容交换,此时对正在交互中的元素用一个active类做标记,drag离开后取消active,需求本身很简单,但是实现过程中发现每次从对象元素进入子元素中也会触发dragleave。 dragenter,dragleave的触发类似于mouseover,mouseout而满足当前需求的mouseenter,mouseleave在drap中并没有 2.解决方案,在所操纵dom元素的子元素上添加元素穿透 .dom *{pointer-events: none;} 缺点:导致所有子元素上的事件失效 3.鼠标最终跑出父元素的上一个事件是dragenter,而目标恰好就是父元素自身 var lastenter = null; item.addEventListener(‘dragenter’,function(e){ lastenter = e.target; this.classList.add(‘active’); }); item.addEventListener(‘dragleave’,function(e){ if(lastenter==this){ this.classList.remove(‘active’); } }); 4.相关知识 drag事件 被我们拖的元素(按住鼠标) ondrags…

禁止dragleave事件在对象元素的子元素中触发 2020年2月18日
;

1.下载 wget -O – https://debian.neo4j.org/neotechnology.gpg.key | sudo apt-key add – echo ‘deb https://debian.neo4j.org/repo stable/’ | sudo tee /etc/apt/sources.list.d/neo4j.list sudo apt-get update 2.安装 sudo apt-get install neo4j 3.修改配置 cd /etc/neo4j vim neo4j.conf dbms.connectors.default_listen_address=0.0.0.0 #跳到54行,去掉前面的注释,让所有用户可以通过服务器IP来访问网页版 4.启动 neo4j start 报错:JAVA_HOME环境变量路径错误 ERROR: JAVA_HOME is incorrectly defined as /usr/lib/jvm/Java-7-openjdk-amd64 错误诊断 java -version #查看版本 $JAVA_HOME #查看变量值 java -verbose #查看java的安装目录,最后一行你会看到你的jdk安装路径 修改配置文件/etc/profile export JA…

ubantu安装neo4j 2020年2月14日
;

什么是直方图? 直方图如何绘制? 什么是通道直方图? 什么是RGB直方图? 如何阅读直方图? 直方图在后期修图中如何应用? 认真学习这篇文章 就能找到答案! 一.认识色彩与RGB模型 1为什么人能看见色彩 我们之所以能够看到这个世界,是因为有光的存在,而我们之所以能区分不同的颜色,正是因为光的波长和强度可以有很大的区别。 光作为一种电磁波,其波长范围很大,但人眼可以看到的波长范围却很有限,这部分能够被人眼所观察到的波长范围被称为可见光,人眼可以感受到的波长范围一般是落在390 纳米到 700纳米。 可见光的范围 人眼之所以能够区分不同的色彩,正是因为人眼中的视锥细胞对波长有着不同的敏感范围,一般人眼中有三种不同的视锥细胞: 第一种主要感受红色,它的最敏感点在565纳米左右;第二种主要感受绿色,它的最敏感点在535纳米左右;第三种主要感受蓝色,其最敏感点在420纳米左右。 视锥细胞的光敏感曲线 例如现在有一束光光进入人眼睛,S视锥细胞的反应最强烈,另外两种视锥细胞的几乎没有反应,那么大脑就知道进入我们眼睛的光线是蓝色,正是基于此,我们才能区分各种各样的色彩。 也正是基于人眼这样一个生理特征,我们才将红绿蓝确定为三原色。 虽然眼球中的椎状细胞并非对红、绿、蓝三色的感受度最强,但是因为椎状细胞所能感受的光的带宽很大,红、绿、蓝也能够独立刺激这三种颜…

很多人都知道直方图,但真正懂的只有1% 2020年2月11日
;

黑暗效应(Dark Effect)在光线比较暗的场所,约会双方彼此看不清对方表情,就很容易减少戒备感而产生安全感。在这种情况下,彼此产生亲近的可能性就会远远高于光线比较亮的场所。心理学家将这种现象称之为“黑暗效应”。 另外,相对来说,黑夜能够给人一定的伪装空间。在白天的时候,人们往往很注意自己的行为举止,无论面对任何人,总会把自己伪装起来,因为人是群体性、社会性的,在心理学中,这也是一种保护机制。黑夜的时候,人们的感知降到很低,就意味着更加安全,同时,黑夜的空间也让人有了一层伪装的空间,这时候能够展示自己的另一面,同时也不用担心如同白天一般在意行为细节而导致产生的距离感。另一方面,黑夜中,双方交谈所给予的由于地位、身份等所产生的压迫感也会降到最低,利于能够更加愉快地交流。 在正常情况下,一般的人都能根据对方和外界条件来决定自己应该掏出多少心里话,特别是对还不十分了解但又愿意继续交往的人,既有一种戒备感,又会自然而然地把自己好的方面尽量展示出来,把自己弱点和缺点尽量隐藏起来。因此,这时双方就相对难以沟通。而黑暗登场,对方感官失效后,自己便没了危险,不需要伪装,表情不需要安排,自然而然的自我流露;而自己的感官失效后,人就会变得脆弱而敏感,倾向于在黑暗中抓住同伴的安全感,这种吸附性非常强。所以说,黑暗效应就产生了。

黑暗效应 2020年1月22日
;

从宏观角度而言,爽文无非就是撩拨人们心中的欲望,具体的感受主要是以下三种: 一.畅快感 所谓的畅快,简单说就是随心所欲,自由自我,主要由暴力与性爱获得。 经典的做法有: 1.主角碾压反派。 2.破坏规则,挑战权威,满足叛逆心理。 3.床戏:满足生殖冲动。 4.狠削装B犯/傲娇女,满足现实中的仇富心态。 5.迷宫夺宝,满足红果果的占有欲。 6.胖揍狗腿子。 7.战斗 二.成就感 所谓的成就,就是实现自我价值,以及由此产生的自豪,主要由克服重重困难获得。主角在逆境中发掘自己的优势,实力渐渐提升。读者因此获得人物养成的朴素的成就感。(为了增强感度,这优势一般不怎么起眼) 这里所说的实力,可以是个人武力,也可以是受主角支配的人力,财力,物力。前者的集中表现形式,就是所谓的“升级”;而后者的集中表现形式,则叫做“种田”。 经典的做法有: 1.推倒冰山美女 2.干翻BOSS 3.制造出某神器 4.调教 三.优越感 所谓的优越感,就是高高在上,受人膜拜的虚荣,主要靠装B获得。如果说畅快感的关键词是“爆发”,成就感的关键词是“稳定”,那么优越感的关键词就是“含蓄”。 经典的做法有: 1.有眼不识泰山 2.人之患在好为人师 3.这些垃圾,老子赏你了。 但是,道理你尽管懂,可如何表现出来后让你感同身受被带着走,这就需要对故事铺垫、伏笔、节奏等方面的把握了,就好比…

爽文的原理 2020年1月21日
;

所有生意的本质,都是流量! 1、案例一 两个东北人,2014年合伙拉滴滴,三个月时间,赚了70万。这是一个励志故事吗?_NO这是“风口猪”的故事吗?_NO NO这其实是个“刷单致富”的故事。 2014年滴滴手持巨资抢市场,疯狂补贴司机,一周只要能拉五单,就补贴司机2000块。于是这两人:一个前面开车,一个后面刷单;不眠不休,专心致富,以“手机+轮子”的“敏捷创业”模式,3个月薅走了滴滴70万现大洋。 陈轩点评 这个案例是真实案例,首先告诉我们:赚稍微大点的钱,没有走寻常路的。当然此案例见不得光,大家批判着看。其次印证一点:工业时代,传统企业可以通过机器、地段、资源的控制来保持比较长的竞争优势;而在互联网时代,物理资本变得越来越不重要。重要的是你能否低成本地获取和变现流量。 2、案例二紧挨北京地处燕郊的东贸服装城,是福建老板投资的。刚开始一个10平米档口年租金4万,现在呢?月租金就已经达到了3万。为啥?做起来了呗。与他们老板聊了一早上,发现其获取客流的方式很接地气! 服装城类似于滴滴本质是平台模式实质是流量变现机器关键是B2B2C最后的C是核心 B2B2C 第一个B,是福建老板第二个B,是被从北京动物园批发市场赶出来的老板们C呢,不是滴滴的终端消费者,而是开服装店的小老板们,是第二个B的下游分销渠道和零售渠道。 第一步好做,毕竟燕郊离北京近。承…

所有生意的本质,都是流量! 2020年1月18日
;

1.前期准备 安装python3 2.相关组件 VS2019 https://support.microsoft.com/zh-cn/help/2977003/the-latest-supported-visual-c-downloads faceswap代码 https://github.com/deepfakes/faceswap 3.安装依赖 pip install -r requirements.txt 如果缺少某个模块可手动安装 pip3 install tqdm 4.启动gui python faceswap.py gui

faceswap安装 2020年1月14日
;

自恋人格量表(NPI)是由美国加州大学教授拉斯金于1979年设计的一套自恋测量工具,此后经过历年修订,直到21世纪初仍是使用最为广泛的自恋测量工具,以其为操作性指标的研究表明自恋与自尊、攻击性呈正相关,并且在亲密关系中是消极的概念。 请表明您在多大程度上同意或不同意下面的陈述:   1=非常不同意,2=很不同意, 3=有点不同意,4=有点同意,5=很同意,6=非常同意 题目:   1 我天生就有一种能影响人们的本事               2 我不是一个谦虚的人               3 我几乎敢挑战任何事情               4 我是一个非凡的人               5 如果让我来统治世界,这个世界将会更好               6 我能靠口才说服他人以避免麻烦               7 我喜欢成为注意的中心               8 我将会是一个成功的人               9 我觉得我是个特别的人               10 我认为我是一个好领导               11 我是一个坚定自信的人               12 我喜欢拥有支配他人的权力               13 我发现操纵别人是容易的               14 我坚持获得我应得的尊重  …

自恋人格量表 2020年1月12日
;

世界进入“一切皆互联”的后真相时期,虽然同质化和共振性的问题已经提出,但最优解尚未求出,接下来有针对性地“趋利避害”就自然而然成为探索和再创新的动因。 刘珺/文 互联网时代和物联网时代的共同特征是科技创新居于主导地位,是时代前进的决定性力量。在普遍联系的网络中,国别政策或许能够应对税收、贸易、就业等经济民生问题,甚至移民、反恐等国际敏感问题, 但对日行千里乃至万里的科技创新所带来的深刻变化明显应接不暇。任何基于一时一地的政策,其效应在科技织就的全球系统内往往转瞬消弭于无形。 人类的发展史有言在先:凡事皆有两面性,既然有好的一面,就会有不好的一面,矛盾始终存在,只是以何种方式、何种程度相互转换并展现出来而已。那么,科技在显著增进人类福祉的同时是否会带来新的风险,包括已知的未知风险(known unknowns)和未知的未知风险(unknown unknowns)呢?风险属性和结构是否发生演变、嬗变甚至蜕变呢? 发展同质化与同质化发展 网络时代是人类历史长卷的“大写意”,技术和产品的创新由点到线,连线成面,组面成体,进而聚合为广袤的系统。变化成为不变的主题,变化无处不在,变化标识出时代的进步和进步的时代。新生事物形塑出以毫秒为单位的幻化和差异的时空和人,让不同演绎到极致。变化的结果一定是今不同昔,但是否“异”百分之百定义新时代而“同”无足轻重呢?…

互联网时代的同质化与风险共振 2020年1月12日
;

说明 使用 CSS 可以绘制出许多形状,比如三角形、梯形、圆形、椭圆,等 并不只是可以绘制矩形。下面来看看怎么实现这些形状的吧。 为了容易理解,文章分为基本形状 和 组合形状来说,基本形状是比较容易实现的,而利用这些基本形状进行组合,就可以实现稍微复杂点的组合形状了。 基本形状 三角形 .triangle { width: 0; height: 0; border: 50px solid blue; /* 通过改变边框颜色,可以改变三角形的方向 */ border-color: blue transparent transparent transparent; } 梯形 .trapzoid { width: 40px; height: 100px; border: 50px solid blue; border-color: transparent transparent blue transparent; } 圆形 .circle{ width:100px; height:100px; border-radius:50%; background:blue; } 球体 .sphere { height: 200px; width: 200px; border-radius: 50%; background: radial-gradient(c…

CSS 绘制各种形状 2020年1月10日
;

1.Airbnb JavaScript Style Guide https://github.com/airbnb/javascript/blob/master/README.md 2.http://youmightnotneedjquery.com/ 3.https://github.com/ryanmcdermott/clean-code-javascript

前端代码优化,代码风格 2020年1月10日
;

1.https://mp.weixin.qq.com/s/EYzaQXpOTBtFUJDLfvpu4Q 2.https://ts.xcatliu.com/

typescript教程 2020年1月9日
;

1.介绍 GitBook 是一个基于 Node.js 的命令行工具,支持 Markdown 和 AsciiDoc 两种语法格式,可以输出 HTML、PDF、eBook 等格式的电子书。 2.安装及初始化 npm install -g gitbook-cli //全局安装gitbook命令 gitbook init //初始化,会生成README.md和SUMMARY.md两个文件 README.md —— 书籍的介绍写在这个文件里 SUMMARY.md —— 书籍的目录结构在这里配置 3.生成文件目录 编辑SUMMARY.md # 目录 * [前言](README.md) * [第一章](Chapter1/README.md) * [第1节:衣](Chapter1/衣.md) * [第2节:食](Chapter1/食.md) * [第3节:住](Chapter1/住.md) * [第4节:行](Chapter1/行.md) * [第二章](Chapter2/README.md) * [第三章](Chapter3/README.md) * [第四章](Chapter4/README.md) 执行命令gitbook init。 GitBook 会查找 SUMMARY.md 文件中描述的目录和文件,如果没有则会将其创建。 4.预览 gitbook …

gitbook入门 2020年1月9日
;

0.引言 作为互联网项目,最重要的便是用户体验。在举国“互联网+”的热潮中,用户至上也已经被大多数企业所接收,特别是在如今移动端快速发展的时代,我们的网页不仅只是呈现在用户的PC浏览器里,更多的时候,用户是通过移动产品浏览我们的网页。加之有越来越多的开发者投入到Web APP和Hybrid APP的开发队伍中,性能这一问题又再一次被提上了程序员们重点关注的要素。我曾经看到过这样一句话:一个网站的体验,决定了用户是否愿意去了解网站的功能;而网站的功能,决定了用户是否会一票否决网站的体验。这是改版自网络上的一句流行语,但却把网站性能这件事说的十分透彻,特别是在网站这样的项目中,如果一个用户需要超过5s才能看见页面,他会毫不犹豫地关闭它。性能优化,作为工程师界的“上乘武功”,是我们在开发中老生常谈的话题,也是一名开发者从入门向资深进阶的必经阶段,虽然我们看到过很多的标准、军规,但在真正实践中,却常常力不从心,不知道落下了什么,不知道性能是否还有进一步优化的空间。 对于网站的性能,在行业内有很多既定的指标,但就以前端er而言,我们应该更加关注以下指标:白屏时间、首屏时间、整页时间、DNS时间、CPU占用率。而我之前自己搭建的一个网站(网址:http://jerryonlyzrj.com/resume/ ,近日因域名备案无法打开,几日后即恢复正常),完…

网站性能优化实战——从12.67s到1.06s的故事 2020年1月6日
;

商业周期(Business cycle):也称经济周期、商业循环、景气循环, 它是指经济运行中周期性出现的经济扩张与经济紧缩交替更迭、循环往复的一种现象。 四阶段:繁荣、衰退、萧条、复苏

商业周期理论 2019年12月16日
;

unpkg是一个快速的全球内容交付网络,适用于npm上的所有内容。 语法:unpkg.com/:package@:version/:file 例子: 使用固定版本: unpkg.com/react@16.7.0/umd/react.production.min.js unpkg.com/react-dom@16.7.0/umd/react-dom.production.min.js 使用version范围 unpkg.com/react@^16/umd/react.production.min.js 如果省略文件路径(即使用“裸”URL),则unpkg将提供unpkg字段指定的文件,或者回退到。 package.json main unpkg.com/jquery 在URL的末尾附加一个以查看包中所有文件的列表。 unpkg.com/lodash/

unpkg的cdn引用 2019年12月11日
;

setTimeout(function(){console.log(1)},0); new Promise(function(resolve){ console.log(2) for( var i=0 ; i<10000 ; i++ ){ i==9999 && resolve() } console.log(3) }).then(function(){ console.log(4) }); console.log(5); // 答案是 2 3 5 4 1 // 而不是 2 3 5 1 4 event loop 的概念 Javascript是单线程的,所有的同步任务都会在主线程中执行。 当主线程中的任务,都执行完之后,系统会 “依次” 读取任务队列里的事件。与之相对应的异步任务进入主线程,开始执行。 异步任务之间,会存在差异,所以它们执行的优先级也会有区别。大致分为 微任务(micro task,如:Promise、MutaionObserver等)和宏任务(macro task,如:setTimeout、setInterval、I/O等)。 Promise 执行器中的代码会被同步调用,但是回调是基于微任务的。 宏任务的优先级高于微任务 每一个宏任务执行完毕都必须将当前的微任务队列清空 第一个 script 标签的代码是第…

promise和setTimeout执行顺序 2019年12月5日
;

大家好,我是国平,我做流量已经有16年了。 2010年之前主要在阿里巴巴国际站负责免费流量增长,把海外B2B免费流量的日UV做到几百万。后来成立了一家乙方公司叫光年实验室(以前叫杭州光年),是携程、阿里云等40多家主流的大型互联网公司的流量顾问。另外这些年也没少折腾其他项目,其中做过电商(外贸独立B2C网站)、 做过电商系统(类似有赞)、 做过移动端APP (社交方向)。 来“群响”这段时间,只要能参加的聚会都参加了,听过大家分享很多非常有意思的流量玩法。先不说不同行业的“隔行如隔山”,就是在流量领域,可能有很多种细分领域,大家之间的资讯都是隔离得很厉害的。流量的渠道和玩法是永远在变的,不过也有一些不变的东西,如平台和内容创造者的博弈、大家仰视平台的心态(其实没必要)、以及各种流量玩法的底层模式等。 我首先分享的是过去一个很主流的流量渠道——搜索引擎,看看在现在这个移动互联网时代和新媒体时代,搜索引擎还能如何获取流量。 第一个议题:现在是否还值得做搜索引擎营销 结论是:值得做,不过如果不了解现在国内百度的现状生态,99%的人ROI一定会很差的。至于海外的Google,它依然是大部分人的第一大流量来源。 首先说为什么值得做。 大家可能不知道的是,在搜索引擎,也是65%以上的流量来自移动端,所以不要认为搜索引擎是PC流量的代表。百度的DAU是没有…

我以前在阿里巴巴的流量方法论 2019年12月5日