2017-09-27
查看详情
我们知道在 video 的标签中支持 preload的属性, 它表示可以 用于定义视频对于媒体资源的预加载从而达到更好的播放体验。它可以设置下面属性值: auto 表示整个视频都会进行下载,即使用户并不打算播放它。 metadata 只请求视频信息的 metadata 数据,比如长度。 none 不停止视频资源预加载。 测试表现 Chrome *版本: 61 * 我们测试Chrome设置为 auto 的时候加载数据大约为 (3.6M / 20.1M) Preload Size auto 3.6M / 20.1M none 0 M / 20.1 M metadata 896 KB / 20.1 M Safari 版本: 11.0 Preload Size auto 20.1M 详情 »
2017-09-27
查看详情
前些天 Apple 正式向用户推送了他们的新一代 Mac OS MacOS High Sierra 。这次带来了新的 Safari 浏览器,然而一个不好的消息,是 safari 重新制定了新的限播策略。点击这里 了解上个版本的播放限制策略调整。 现在网页用包含 video 或者 audio 的标签,如果涉及了 autoplay 属性,浏览器现在不再进行自动播放,而用户需要在 url 的状态栏进行设置(右击就好): 里面会有三个选项: 允许自动播放 永不自动播放 停止播放含有声音的媒体 官方也给了建议,你可以通过代码来监听是否自动播放: var promise = document.querySelector('video').play(); if (promise !== undefined) { promise.catch(error => { // Auto-play was prevented // Show a UI element 详情 »
2017-09-17
查看详情
天气晴。 距离上一次随笔,已经是10天左右了。从杭州回来了,就开始加班加点进行 IE Bug 上的调整。随后是播放策略和对外输出的接口能力支撑。感觉这次挑战还不小。 去杭州的时候,和继稳聊了很多。关于技术,工作,未来,定居,情感。他说: 大概每个阶段都开始有自己的目标,觉得落实了工作,落实了婚姻,现在就得想着房子,大概未来几年都是这个目标吧~ 自己想了想何尝不是,认识所处阶段,三年一个阶梯,读完了初中,来到高中,从大学毕业三年,希望翻过另外一个阶梯。 然后 做的 avatar 其实想说下具体的每次出图会经历的流程: google up moive -> dribble search pink dress -> open PS -> visit behance -> paste images -& 详情 »
最近遇到了个平时很少遇到的 Bug,理论上代码压缩混淆后大多数都不会存在问题(之前确实没有遇到),但是最近却不小心给遇到了。 大概在测试的时候,没有混淆前,代码是可以正确执行的,但是混淆后,代码就出现部分 JS 未顺利执行的情况。然后通过代码一步步调试,发现,在进行混淆的时候,会把一些变量命名转化成类似字幕 a, b, c等这样。然后这次在组件注册的时候,比较偷懒,用了 Function.name 来代表注册组件的名称,而不是独立命名。 自己在 ES6 偷懒这样写了: import PlayComponent from './play-component'; // ... ui.register(PlayComponent); // register 的实现 ui.register = function(func) { const name = func.name; } 这样就导致在压缩的时候的 传入的参数会变成 t 这样就会知道命名失效,始终都是 t 。 所以在实现的时候尽量少用 Function.name 详情 »
天气晴。 好久没写随笔了。和同事调侃这周 三天打鱼,两天晒网。可是这周确实只上了两天班。 大概又想起了《中国合伙人》里的那句台词: 明天去杭州,9月份又一次。此地有雨,还需带伞。 详情 »
2017-09-04
查看详情
vue-core-image-upload 是一款方便的 vue.js 图片上传裁剪插件,你可以用它进行图片的上传,裁剪和压缩。 vue-core-image-upload 提供 is-xhr 这个属性来 取消默认的上传方式。然后通过 imagechanged 来获取文件内容。 参考示例 下面我们简单实现一套代码,实现自定义图片处理,我们不用自动上传,我们上传一张 png 然后将图片进行压缩和重命名上传到我们的服务器。 安装依赖 默认的一些 vue ,webpack 这些安装就省略了,我们直接开始先安装插件 : npm i vue-core-image-upload --save 然后安装 j-i-c 用于图片的压缩。 npm install j-i-c --save 安装完成后,我们还需要做点小事情,我们需要将 jic 改成 common.js 的模式。这个时候我们更改下 src/JIC.js 。我们需要在文件末尾将模块导出; // ... above contens module.exports 详情 »
我们经常通过事件代理会取到一些元素,大概我们第一个想到的 tagName 来判断,但是这样的确需要写过 map 来判断。我们可以有个快捷的方法: const el = document.querySelector('.svg-inner'); el.ownerSVGElement // true 则表示式 svg 元素 如果 false 则不是 参考: https://stackoverflow.com/questions/20748836/how-do-i-tell-if-a-dom-element-is-html-or-svg#= 详情 »
2017-08-30
查看详情
Last year, I have tried to finish an interesting react-native project on my GitHub. React-native-percentage-circle is a component which supports you to define your percent data and draw a circle. And also you can use it as a progress bar and show some data in the circle. It does make a difference to my life. Opearation 详情 »
2017-08-30
查看详情
平常我们使用制作进度条的时候都是想的用 div 去模拟,在 html5 后,我们可以使用 input range 来实现这样的效果。 默认的效果如图: 你可以设置它的值得范围(min, max) 以及它的步长(step)。 这里的重点是设置它的样式啦: 取消掉默认的样式 在 chrome 和 safari 下我们可以通过声明: -webkit-appearance: none; 取消掉默认的样式,这时候效果如图: 这个时候我们可以设置它的 border 或者 background 等信息。 如果是 chrome 或者 safari 浏览器,以及其他支持设置 设置控制条轨迹的样式的浏览器可以使用伪类 -webkit-slider-runnable-track 来设置控制条轨迹的背景和边框样式; input[type='range']::-webkit-slider-runnable-track{ background-color: #eee; } 而 firefox 则需要使用 ::-moz-range-track: input[type='range']::-moz-range-track{ background-color: 详情 »