Time of Update: 2018-12-08
事件捕捉(Event Capture)的實現問題 W3C DOM Level2的事件模型規範中,事件在DOM樹中的傳播過程(從根節點到目標節點)被分為了兩個階段:捕捉(Capture)和冒泡(Bubbling)。下面這個圖能大概的說明整個過程: (from W3C) 如果想建立一個捕捉事件,在支援W3C 事件模型的瀏覽器中,將addEventListener的第三個參數設為true就好了。例如: 複製代碼
Time of Update: 2018-12-08
1.首先我們來瞭解幾個概念,“事件”,“事件流”,“事件名稱”,“事件處理函數/事件監聽函數,也許是“老生常談”,知道的朋友可以越過。 事件: 事件是使用者自身或瀏覽器進行的特定行為。如:使用者點擊 也就是常用的click事件 事件流:多個事件 按一定順序觸發 形成了事件流 事件名稱:如上面所講的click就是事件名 事件處理函數/事件監聽函數(Dom的叫法)就是 事件觸發後的處理函數,如obj.onclick=fn;函數fn就是事件處理函數 2.下面我們來瞭解一下曆史,事件是dom的一部分
Time of Update: 2018-12-08
系列簡介 也許,三百年前的艾薩克·牛頓爵士(Sir Issac Newton, 1643-1727)並沒幻想過,物理學廣泛地應用在今天許多遊戲、動畫中。為什麼在這些應用中要使用物理學?筆者認為,自我們出生以來,一直感受著物理世界的規律,意識到物體在這世界是如何"正常移動",例如射球時球為拋物線(自旋的球可能會做成弧線球) 、石子系在一根線的末端會以固定頻率擺動等等。要讓遊戲或動畫中的物體有真實感,其移動方式就要符合我們對"正常移動"的預期。 今天的遊戲動畫應用了多種物理類比技術,例如運動學類比(
Time of Update: 2018-12-08
剛才忽然靈機一動,迭代器我們很少會真的直接傻乎乎的next去遍曆的,那為什麼一定要實現這個傻乎乎的next呢?直接實現each,這樣,這樣反過來,Yeah,一通百通,不一會兒就寫出了第一個超簡潔版本: 複製代碼 代碼如下:function yieldHost(yieldFunction) { return function (processer) { var yield = function (result) { processer(result) }; yieldFunction(yield)
Time of Update: 2018-12-08
方法一: 正則替換 推薦個人認為最好的方法.採用的是Regex,這是最核心的原理. 下面是代碼原文 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript"> <!-- //出處:網上搜集 //For more visit http://www.jb51.net // Trim() , Ltrim() , RTrim() String.prototype.Trim = function() { return
Time of Update: 2018-12-08
擷取編輯器中HTML內容 複製代碼 代碼如下:function getEditorHTMLContents(EditorName) { var oEditor = FCKeditorAPI.GetInstance(EditorName); return(oEditor.GetXHTML(true)); } 擷取編輯器中文字內容 複製代碼 代碼如下:function getEditorTextContents(EditorName) { var oEditor =
Time of Update: 2018-12-08
今天重點講下 如何給Array對象擴充 1、直接在Array.prototype 上擴充 2、用自己方法對數組對象進行擴充 直接在Array.prototype上擴充,不能直接對dom對象使用(如:document.getElementsByTagName('div')得到的nodeList); 對有潔癖的同學而言 也破了原始生態環境的 : ) 先來看下 yui運算元組的一些方法,這裡我對源碼簡單剝離並改動了下 複製代碼 代碼如下:(function(){ var YArray; YArray
Time of Update: 2018-12-08
模式類型:原廠模式 模式說明:常用模式之一,用來動態建立對象 適用範圍:在運行期間需要在一系列可互換的子類中進行選擇的類 注意事項:介面的實現,從而使不同子類可以被同等的對待,恰當的使用原廠模式,但不要拘泥與形式,理解本質。 關鍵點:以 函數/類/子類 構建的選取器 本質:函數作為選取器的使用 一般使用形式: 作為獨立的選取器存在: 複製代碼 代碼如下:function FactoryMode(index){ switch(index){ case "index1" : return new
Time of Update: 2018-12-08
因為是html格式的內容,直接截取內容的前多少字元顯然不合適了。而如果直接去掉所有html格式然後再截取又無法達到想要的效果,再網上搜了一通之後,寫下如下代碼應該可以滿足基本的要求了。(js寫的,因為容易調試) 複製代碼 代碼如下:var br = {}; br.spTags = ["img","br","hr"];/*不需要成對出現的標記*/ br.contain = function(arr,it){ for(var i=0,len=arr.length;i<len;i++){ if(
Time of Update: 2018-12-08
先定義進度條顯示層: 複製代碼 代碼如下:<div><span class="intro">下載進度:</span> <div class="barborder"> <div class="bar" id="loadpercent"></div> </div> </div> 定義廣告層: 複製代碼 代碼如下:<div id="showAD"></div>
Time of Update: 2018-12-08
本文沒有什麼技術上創新,只要會一點Javascript的技術就可以寫了。 第一步: 在頁面查看原始碼,把Form中包含的需要填列的HTML控制項找出來如: <form name="mainfrm" action="" method="post"> <input type="text" name="username"/> <input type="submit" value="submit"/> </form> 第二步:編寫代碼
Time of Update: 2018-12-08
前天熬了大半宿發了一篇[一行代碼輕鬆搞定快捷留言功能],同時發布了V1.0beta版的快捷留言功能和原始碼,之所以是beta版,就是當時感覺雖然準系統有了,但是還不夠完善,特性也不一定合理,今天不知不覺又弄到了這個時候,這次對上一版做了很大改進: 首先,原來自動認可留言資訊的同時會自動推薦,大量的推薦數,直接影響了部落格園的推薦排名機制,所以後來在第一時間修改成了詢問是否要推薦的互動模式!
Time of Update: 2018-12-08
下面這篇是國外的一篇文章。http://www.jb51.net/article/20553.htm複製代碼 代碼如下:var sel = new Object(); var sel_num = 0; function getCookieVal(offset) { var endstr = document.cookie.indexOf(";", offset); if (endstr == -1) endstr = document.cookie.length; return
Time of Update: 2018-12-08
今天在網上看到的一個根據ClassName擷取Elements的指令碼,在此記錄一下,以便日後使用。 複製代碼 代碼如下:var getElementsByClassName = function(searchClass, node, tag) { if (document.getElementsByClassName) { return document.getElementsByClassName(searchClass) } else { node = node || document;
Time of Update: 2018-12-08
json轉html 三重奏 原料:json 複製代碼 代碼如下:var json={ 'div':{id:'flower',className:"a1",sub:[ { 'ul':{id:'flower1',className:["a2","a3"],sub:[ {'li':{num:3,con:"內容內容內容",fn:{'click':function(){alert('我是LiLi')}}}} ]} }, { 'ul':{id:'flower4',className:["a2","a3"],
Time of Update: 2018-12-08
我們先看一下淺複製的缺陷,不知多少人中過招呢? 複製代碼 代碼如下:var oOriginal = { memNum: 1, // number memStr: "I am a string", // string memObj: { test1: "Old value" // we'll test }, memArr: [ // array "a string", // string member of array { // object member of array test2:
Time of Update: 2018-12-08
習慣了C#的文法,遇到多分支調用的情況,除了最簡單的if-else,那麼就是switch-case了,所以使用JavaScript的時候就很容易會寫出下面這樣的代碼: 複製代碼 代碼如下:// JScript source code //something的值是1、2、3... switch (something) { case 1: todoA(); break; case 2: todoB(); break; case 3: todoC(); break; //... }
Time of Update: 2018-12-08
v1.0實現功能 1 放大倍數設定 2 透明度設定 3 反轉特效 4 放大圖片層的大小自訂 5 滑鼠層的大小自訂 6 ie6下select遮蓋問題 7 游標樣式自訂 8 zIndex設定 簡單初始化方法舉例 複製代碼 代碼如下:new flower.init("Demo","mag"); new flower.init("Demo1","mag1",{ max:3,zoomType:false,zoomWidth:200,zoomHeight:200,iframe:true,zIndex:666
Time of Update: 2018-12-08
複製代碼 代碼如下:<script type="text/javascript" src="scripts/json/json2.js"></script> <script type="text/javascript" src="scripts/json/jsonmessage.js"></script> 一、在javascript中使用JSON建立一個對象 Js代碼 複製代碼 代碼如下://建立一個Null 物件 var JSONObject =
Time of Update: 2018-12-08
原理基本是這樣,如果傳入的是字串,那麼讓它們變成一個元素節點,不過這元素節點也可以有許多層,在最內層把要包裹的元素放進。把字串變成元素節點的方法有如下幾個。1,createElement,IE可以連元素屬性也一起建立,但只能建立一層。2,innerHTML,不過需要對原來的字串進行處理,IE與FF都有許多意想不到的預設行為,可以為你多加一點東西或少加一點東西。3,createContextualFragment,由於Opera的行為有點怪異,需要選中修改元素的位置。經日本人的測試,它轉換字串成節