欢迎加入我的前端群

2019-07-31

A curated collection of useful CSS snippets you can understand in 30 seconds or less.

https://30-seconds.github.io/30-seconds-of-css/

乱语:30s 学习一个 css 小案例,成功抄袭一个动效给自己私用。不敢独享,安利给大家。

2019-07-30

Why are lookbehind assertions not supported in Javascript?

https://stackoverflow.com/questions/30118815/why-are-lookbehind-assertions-not-supported-in-javascript

乱语:偶然发现火狐浏览器目前仍旧不支持正则 lookbehind 的写法,至于为什么不支持,有的人说是 Brendan Eich(JavaScript 语言的缔造者) 忘记做了;有人说正则引擎实现这个太难了。你们知道是为什么吗? 继续阅读“欢迎加入我的前端群”

也谈 996 及其它

行外的人可能不太清楚“996”的意思,所以还是有必要解释一下。大致的意思是说早上 9 点上班,晚上 9 点下班,一周工作 6 天。本来我是不想谈这个的,对此没有兴趣。因为很多人都是带着或多或少的目的来发表意见,你聊的是法律,我灌得是鸡汤,一场辩论下来牛头不对马嘴,徒增口舌。我不带有什么目的,也不想辩论,所以我自是不感兴趣。

而且互联网的热度就是那么一阵,我写这篇文章的时候,大家早就好了伤疤忘了疼,另有其他热点事件转移了注意力。但是既然动笔了,就稍微写几句,关键在于“其它”。

继续阅读“也谈 996 及其它”

文件上传进度和解析 Form Data

最近有一个小需求:上传文件的时候显示上传进度(上传了百分之多少)。这个需求不难,比如以下代码就能实现:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Upload file</title>
    <script>
      function uploadFile() {
        var fd = new FormData(document.forms[0]);
        var xhr = new XMLHttpRequest();

        xhr.upload.onprogress = function (e) {
          console.log('e.loaded:' + e.loaded + ', e.total:' + e.total)
          console.log(Math.round(e.loaded / e.total * 100) + '%') // 这里是上传进度
        }

        xhr.onreadystatechange = function(){
          if ( xhr.readyState === 4 ) {
            if ( xhr.status >= 200 && xhr.status < 300 || xhr.status === 304 ) {
              console.log(xhr.responseText)
            }
          }
        }

        xhr.open("POST", "/");
        xhr.send(fd);
      }
    </script>
  </head>
  <body>
    <form action="/" method="POST" enctype="multipart/form-data">
      <input type="file" name="file" id="file" required />
      <input type="hidden" value="1" name="hidden">
      <input type="text" name="text">
      <input type="range" name="range">
      <button onclick="uploadFile();" type="button" id="upload">Upload</button>
    </form>
  </body>
</html>

继续阅读“文件上传进度和解析 Form Data”

公众号月总结:node 入门

因为工作中仿真的功能用到了 node,作为一名前端,node 可算是入了门了。

2019-05-31

前端开发尤其 Node.js 开发中,经常要调用一些异步接口,如:文件操作、网络数据读取。而这些接口默认情况下往往是通过 Callback 方式提供的,当这种写法遇上比较复杂的逻辑时,就很容易出现 callback hell 的问题。

http://welefen.com/post/how-to-convert-callback-to-promise.html

乱语:最近在写 node,node 的回调奇多,但是通过包装成 promise,就可以通过 async、await 走上前端开发的康庄大道。美滋滋。

2019-05-30

对于很多初学投资的人来说,经常会弄不明白公司分红有什么意义,因为分红后要除权除息,手中持有的股票市值并没有发生任何变化,投资者并不能从公司分红中获得任何收益啊?

https://www.douban.com/note/506346913/

乱语:昨天中午还和同事聊起长城汽车要分红了,赶快买其股票,以此发财。我就说嘛,哪有这么简单的发财之道。 继续阅读“公众号月总结:node 入门”

svg 学习

最近在学习 svg,写了一些 demo,记在这里,还挺有意思的。

以一张 svg 开头:

zengxiaoluan.com

d3 中的 domain 和 range

以下内容更新于 2019-06-14

最近一直在用 d3 画双通道示波器,因为不是很理解 d3 的原理,走了不少弯路,如果大家有兴趣学习 d3,可以看看这个示例,帮我们更好的理解 d3 的一些基础 API,实现我们想要的效果。

标签 text 、tspan

示例中的图形是一个正弦函数,公式如下:

$y = asin(bx + c)$

公式中的 a、b、c 如何影响图形,我就不解释了,我先回去翻一下高中课本。

See the Pen svg-text/tspan by zeng (@zengxiaoluan) on CodePen.

继续阅读“svg 学习”

公众号月总结:怎么准备一个自驾游计划?

问题标题的答案在文章中,可自己查询。

2019-04-30

This article demonstrates how to create and dispatch DOM events. Such events are commonly called synthetic events, as opposed to the events fired by the browser itself.

https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events

乱语:js 可以创建自定义事件,jQuery 的 trigger 方法是不是这个原理呢?

2019-04-29

招聘前端开发工程师了,各路朋友帮忙转发,内推加微信(370203400)。

https://www.lagou.com/jobs/5880513.html

继续阅读“公众号月总结:怎么准备一个自驾游计划?”

我要求职

是这样的,每个人在职业初期找工作都相对困难,需要朋友的帮忙提拔之类的。但是你知道的,我提供不了这种伟大的支持,我能做的就是免费帮找工作的小伙伴内推一些简历。即便被人拒绝了,也能知道个消息,避免承受石沉大海杳无音讯之苦。

继续阅读“我要求职”

我的 2018

当我回首我的 2018 年是如何度过的时候,我总免不了不能直接面对,想查看一下我的 2017 年、2016 年是如何度过的,我甚至看到了我的 2013 年的总结,都是草草了事,不太像认真对待岁月的态度。

这是一种对时光的眷恋,都想留住,可是终究谁都没有办法,变成了一种文字纪念,开始逐渐去适应这些。

继续阅读“我的 2018”