原创 js遞歸優化

遞歸優化 遞歸在我們平時擼碼中會經常用到,不過可能很多人不知道遞歸的弊端,就是會導致調用棧越來越深。如果沒有節制的使用遞歸可能會導致調用棧溢出。 那什麼是遞歸呢? 遞歸調用是一種特殊的嵌套調用,是某個函數調用自己或者是調用其他函數後再次調

原创 音視頻混流

音視頻混流 之前講過一篇如何通過攝像頭獲取音視頻流並導出的文章。這次要講的是如何將多個音視頻流混合後導出。 主要用的API有: MediaRecorder(提供的用來進行媒體輕鬆錄製的接口) getUserMedia(捕獲攝像頭、麥

原创 JS的發佈訂閱模式

JS的發佈訂閱模式 這裏要說明一下什麼是發佈-訂閱模式 發佈-訂閱模式裏面包含了三個模塊,發佈者,訂閱者和處理中心。這裏處理中心相當於報刊辦事大廳。發佈者相當與某個雜誌負責人,他來中心這注冊一個的雜誌,而訂閱者相當於用戶,我在中心訂閱了

原创 JS繼承的一些見解

# JS繼承的一些見解 > js在es6之前的繼承是五花八門的。而且要在項目中靈活運用面向對象寫法也是有點彆扭,更多的時候還是覺得面向過程的寫法更爲簡單,效率也高。久而久之對js的繼承每隔一段時間就會理解出現困難。所以這次我要把對對象的理

原创 移動端tab滑動和上下拉刷新加載

移動端tab滑動和上下拉刷新加載 查看demo(請在移動端模式下查看) 查看代碼 開發該插件的初衷是,在做一個項目時發現現在實現移動端tab滑動的插件大多基於swiper,swiper的功能太強大而我只要一個小小的tab滑動功能,就要引入

原创 寫一個vue組件

寫一個vue組件 我下面寫的是以.vue結尾的單文件組件的寫法,是基於webpack構建的項目。如果還不知道怎麼用webpack構建一個vue的工程的,可以移步到vue-cli。 一個完整的vue組件會包括一下三個部分: template

原创 js獲取地址欄URL上的參數

獲取地址欄上的URL參數現在最簡單通用的方法應該就是下面這種了。 function getUrlParam (name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'

原创 canvas-縮放

Canvas-圖片縮放 由上一篇canvas-旋轉的例子可以瞭解到canvas的一些特性,不熟悉的同學可以先去看看canvas-旋轉。 我們在將圖片引入canvas時,圖片會一原始像素渲染。這樣往往不是我們想要的大小。這時就要用到

原创 vue-過濾器filter

vue-過濾器filter vue的過濾器一般在JavaScript 表達式的尾部,由“|”符號指示: 過濾器可以讓我們的代碼更加優美,一般可以用在時間格式化,首字母大寫等等。 例如:{{ date | dateFormat }}這是過濾器

原创 js的視頻和音頻採集

js的視頻和音頻採集 今天要寫的,不是大家平時會用到的東西。因爲兼容性實在不行,只是爲了說明下前端原來還能幹這些事。 大家能想象前端是能將攝像頭和麥克風的視頻流和音頻流提取出來,再爲所欲爲的麼。或者說我想把我canvas畫板的內容錄製成

原创 Canvas事件綁定

canvas事件綁定 衆所周知canvas是位圖,在位圖裏我們可以在裏面畫各種東西,可以是圖片,可以是線條等等。那我們想給canvas裏的某一張圖片添加一個點擊事件該怎麼做到。而js只能監聽到canvas的事件,很明顯這個圖片是不存在與do

原创 Canvas-圖片旋轉

Canvas-圖片旋轉 衆所周知canvas是位圖,你可以在裏面渲染你要的東西,不過你只能操作canvas的屬性來進行編輯。就是說你並不能操作畫進canvas的東西,例如我在canvas裏添加一幅畫,我現在想將那幅畫移動10px,我們並不

原创 js獲取圖片的EXIF,解決圖片旋轉問題

相信大家在做項目的時候會遇到在canvas里加入圖片時,圖片發生90°,180°的旋轉。當時的你肯定時懵逼的,爲毛。 其實這就是圖片的EXIF搞的鬼。 什麼是EXIF 簡單來說,Exif 信息就是由數碼相機在拍攝過程中採集一系列的信息,然