JustYeh的前端博客

使用nodejs做爬虫来爬取一本小说
最近在网上看到了一个小说,感觉挺好看的,在线阅读的网站广告比较多,想下载下来,结果找半天也没个全本下载的。于是想到用爬虫自己来实现,下面记录了我的实现过程。 使用nodegrass做网络请求 刚开始是使用http模块的get方法来做网络请求的,不过一直有中文乱码的问题,于是找到了nodegrass,使用比较简单: var gs = require('nodegrass'); g

2019-01-05

折腾一个html5播放器
现在的网页中有很多场景中会涉及到视频播放,个人认为原生的控件已经做得很好了。但是老有人觉得原生的就是丑的,有什么办法呢,('_')。本文利用html5 video的相关api,尝试折腾出一个“美化”过的的视频播放器。 代码地址https://github.com/justyeh/y-video-player 构建HTML结构 <div class="y-vide

2017-09-27

Object.defineProperty方法解读
Object.defineProperty是ES5中提出的新方法,作用是为对象新添加一个属性或者修改对象中已经存在的属性 用法 Object.defineProperty(obj, prop, descriptor) obj:需要定义属性的对象 prop:需要定义或修改的属性的名称 descriptor:需要定义或修改的属性的特性 上面的三个参数都是必需的 descriptor的值是一个对象

2017-09-18

js的方法和属性
方法或属性之间的区别 //对象构造函数 function People(name) { //私有属性,只能在对象构造函数内部访问 var NATION = 'china'; //共有属性,对象实例化后可以调用 this.name = name; //对象方法 this.introduce = function () {

2017-09-12

1px解决方案
前端的同学想必都碰到过1px边框的问题,在高分屏手机上,我们会发现自己写的1px往往会比预想的“粗”一些,下面是他人总结的解决方案。 单线 写一个高度为1px的线,然后通过transform:scaleY(0.5)缩放来实现 div{ height:1px; background:#ddd; -webkit-transform: scaleY(0.5); -we

2017-09-07

flex兼容性写法
利用flex可以方便快捷的帮助我们进行网页布局,不过由于历史标准很多,人工书写会有一些兼容性问题,这里将在网上搜集到的兼容性的写法放在博客中,以便取用。 flex:定义布局为盒模型 .flex { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; }

2019-07-02

JavaScript异步问题解决方案
JavaScript是一门单线程语言,在执行一些比较耗时的操作(比如常见的Ajax请求)时,为了不阻塞后面代码的执行,往往需要执行异步操作。关于JS的运行机制,大家可以看阮一峰的这篇文章:JavaScript 运行机制详解:再谈Event Loop 如何处理异步操作在一直是个值得关注的问题,我会在这篇博文里介绍几种常见的处理异步函数的解决方案 使用回调函数 如果你有使用过JQuery,那么

2017-07-22

使用Nuxt+Vue+Node构建的SSR博客项目
以前的博客使用的是Ghost,不过被攻击了,勒索我几百美元,还是算了吧,顺便说一句,数据备份很重要!前段时间学了Vue.js,以前看的Node还能记起来点,主要为了锻炼自己吧,这次的博客没有用Hexo,Ghost什么的,自己写的。由于有SEO的需求,毕竟自己写自己看也没什么意思,最终的使用的技术方案:Vue.js+Nuxt.js+ES6+Webpack+Mysql+Node.js+Express

2019-10-18

前端常用属性、方法备忘
在编写前端代码的过程中,有一些属性和方法是需要经常用到的,但是记忆起来又比较麻烦(反正我是间歇性记得),以前我总是要用了就去百度一下,每次还需要对网页对内进行一下筛选,总之很麻烦。本文总结了一些比较常用但又不容易记住的前端属性和方法,包括:文本溢出、文本禁止选中、点击目标区域以外影藏、获取元素距离与位置等。 文本溢出省略符 .text-ellipsis{ overflow: hidden; t

2017-06-24

git乱码解决方法
git对中文的支持不是很好,想必英文不是很好的朋友一定深受其扰;因为Git 是在linux下开发的,而 Linux 的编码方式是基于 UTF-8 的,所以移植到 Windows 之后难免会存在编码冲突,导致乱码。 下面的方法是我在网上总结来的,并且经过亲自实践,最终解决了这个问题。 注意:我的git客户端Git for Windows v2.11.0,有可能你的目录结构和我的不一致。 让

2017-06-24

JavaScript节流和防抖
节流throttle 设定一个时间间隔,某个频繁触发的函数,在这个时间间隔内只会执行一次。也就是说,这个频繁触发的函数会以一个固定的周期执行。 高频触发的函数每隔一个时间段执行执行,并且最后一次触发时也执行 适用场景: 鼠标不断点击触发,mousedown(单位时间内只触发一次) 监听滚动事件,比如是否滑到底部自动加载更多,用 throttle 来判断 时间戳版本 function throt

2019-07-02

JavaScript模块化开发
通俗易懂的介绍了模块化概念,以及使用模块化编程的必要性。详细介绍了实现模块化开发的演变过程。 一、为什么会有模块化 1.当一个项目开发的越来越复杂的时候,会遇到一些问题,比如: 命名冲突 当项目由团队进行协作开发的时候,不同开发人员的变量和函数命名可能相同;即使是一个开发,当开发周期比较长的时候,也有可能会忘记之前使用了什么变量,从而导致重复命名,导致命名冲突。 文件依赖 代码重用时,引入js

2019-07-02

RequireJS参考手册
关于RequireJS RequireJS 是一个JavaScript模块加载器。它非常适合在浏览器中使用,但它也可以用在其他脚本环境, 就像 Rhino and Node. 使用RequireJS加载模块化脚本将提高代码的加载速度和质量。 兼容性 IE 6+ .......... 兼容 ✔ Firefox 2+ ..... 兼容 ✔ Safari 3.2+ .... 兼容 ✔ Chrome 3

2019-07-02

web代码编辑器CodeMirror
这两天有个项目需要使用在线代码编辑器,要求支持语法高亮、自动缩进、可切换高亮语法框架等要求。最终我选择了CodeMirror,发现这个插件确实不错,将其记录在我的博客中。 本文有部分内容参考自知乎网友var dump的文章。连接:[https://zhuanlan.zhihu.com/p/22163474](https://zhuanlan.zhihu.com/p/22163474 在线D
内滚动布局的概念与实现方法
转载自腾讯isux,原文地址:https://isux.tencent.com/inner-scroll-layout.html 一、什么是内滚动布局? 所谓“内滚动布局”,顾名思义就是主滚动条在页面内部的布局,是相对于传统的滚动而言的,例如,下图所示滚动条,是从头部下方开始: 传统的页面滚动,基本上是相对于整个浏览器窗体,例如,QQ视频首页: 二、为什么会有内滚动布局? 随着显示器设备越

2019-07-02