原创 js之文件上傳(含進度條,回調)向下兼容

之前分享過一篇拖拽上傳預覽的實現是基於html5的,在那篇文章中,我們實現了拖拽預覽,對於上傳並沒有特別提及到:這篇算作對文件上傳的補充吧 在html5之前我們上傳文件一般都會用form表單進行提交,from.submit()即可 ok,

原创 js文本框監聽

主流瀏覽器包括firefox、chrome以及ie高版本都支持oninput方法監聽文本框變化,此外ie有自己的監聽方法:onpropertychange方法。根據這些我們就可以做兼容各種瀏覽器的文本框監聽方法: var inputAre

原创 正則表達式精講

正則表達式講解: 首先要知道正則表達式到底是幹什麼用的? •測試字符串是否匹配格式:例如測試手機號郵箱是否符合規則  •替換文本內容:可以在一串文本中查找需要的內容進行批量替換 •根據匹配規則從文本中查找需要的內容:例如可以根據輸

原创 javascript之冒泡排序算法

    原理分析:     其原理是從頭開始臨近的數字兩兩進行比較,比較一輪戰罷,最小的或者最大的被交換到第一位或者最後一位,     其餘的再從頭進行兩兩比較,直到比較大到倒數第一位,此輪戰罷,最小的或者最大的排到了倒數第二位;。。依

原创 富文本編輯的利器execCommand

富文本編輯中一個非常關鍵的document屬性execCommand(command,boole,val);這個屬性可以得到並且編輯我們當前選則文檔節點內容。 我們上一節講過createRange和createTextRange,都是針對

原创 我的富文本編輯器

先截個圖看看效果: 前面講過execCommand以及光標選區操作,富文本中核心應用便是如此。 大體思路就是根據瀏覽器兼容性利用execCommand以及選區去在可編輯話的iframe中進行插入代碼以及樣式。我們來一步步實現: 第一步:

原创 canvas講解進階篇一

html5中最強大的武器當屬canvas莫屬。從文字處理到電子遊戲,canvas都會提供給你而且總體而言運行速度相當快,而且編碼良好的canvas應用程序無需修改即可在任何兼容html5瀏覽器中進行運行。 偶爾因爲canvas更新而瀏覽器

原创 扯扯javascript之自定義事件

如果您看到這篇文章 說明您知道js中事件這個東西,js中操作少不了事件的參與,小到click mouse等事件,大到面向對象處理事件。 說白了,js就是一個處理事件的東東。。只是作用環境不同或者不明顯而已。向上追溯祖宗八代 肯定能找到相關

原创 canvas講解進階篇四

貝塞爾曲線、座標變換以及圖像合成 我們之前說過:canvas的元素大小與繪圖環境大小不一定相同,例如我們通過css定義canvas的寬高後,改變的只是canvas元素的寬高,而繪圖環境的寬高還是不變的,當我們在canvas內部作圖時候,繪

原创 canvas講解進階篇三

承上啓下:上篇我們學過了canvas中繪圖的顏色陰影以及漸變操作,這些有時候是給我們繪圖錦上添花有時候是審美需要,無論如何 都是canvas不可獲取的一部分, canvas中還有一些操作可以爲你實現比較複雜的效果例如文本書寫、剪裁縮放、以

原创 bind與call比較分析

對很多人來說,都知道call和bind是可以改變函數作用域的,那麼很多情況下我們函數中後面用bind而爲什麼不用call呢,bind的出現是否多餘呢? 下面就來比較一下call和bind函數執行過程中各起什麼作用。 我們寫一段js代碼用來

原创 js光標選區操作

拿input框來舉例子:平時我們操作input或者textArea需要用到該技術情況下一般有兩處: 一:點擊一個按鈕在input框中特定位置插入一段文本; 二:選中一段文本進行操作 實現兩個效果時候ie以及非ie實現方式不同。具體看看各自

原创 javaScript獲取元素位置以及元素頁面大小總結

js獲取元素位置以及元素頁面大小總結: 一:元素位置: js中獲取元素位置也就是元素的left以及top位置利用el.offset即可。el.offsetLeft以及el.offsetTop獲取的是元素邊框外部到目標位置距離; 而我們如果

原创 javascript事件處理方式之捕獲冒泡

javascript在事件處理機制上經歷了三個階段 html事件處理、dom0級事件處理、dom2級事件處理。 html事件處理: 形如 <div οnclick='alert(this.id)'id="myDiv"></div> 該單擊

原创 HTML5之Web Worker

Web Worker是什麼: web worker是html5提供的一個多線程解決方案,(以下我們簡稱爲wWorker),大家都知道js是單線程執行的,所謂多線程解決方案也就是不需要js在執行時候摁着一個線程可勁使用, 比如有些時候我們不