天氣越來越冷了,人也越來越懶怠,越來越像呆在溫暖的寢室裡看小說或者打遊戲,也好久沒看Three.js源碼了。今天天氣不錯,接著看! 這次從光照部分看起:光照模型,從光線本身角度來看包括環境光線、平行光、點光源,從物體表面材質角度看又包括漫反射和鏡面反射。 Lights:Light 複製代碼 代碼如下: THREE.Light = function ( hex ) { THREE.Object3D.call( this ); this.color = new THREE.Color( hex );
checkbox 和 radio的事件選擇一度讓我很迷惑。 開始以我對js的理解,我覺得change事件應該是最合理的,可惜啊ie下change事件是在改變後焦點離開時才觸發。 後來就用click mousedown等滑鼠事件代替。發現click比mousedown要更完美一些: radio註冊了click事件以後,神奇的是用鍵盤上的上下左右選擇時,居然會觸發滑鼠事件,滾輪也會觸發,這種神奇的事情在mousedown下面是不會發生的。(webkit不能使用上下左右選擇)
<!-- 把下面代碼放到<body>地區中 --> 複製代碼 代碼如下: <form> <div align="left"> <input type="button" Value="開啟新視窗" ONCLICK="window.open('index.htm','Sample','toolbar=yes,location=no,directories=no,status=no,menubar=yes,
cloneNode 是 HtmlElement 原型鏈上的方法,用於建立指定 dom-節點的拷貝,它接受一個布爾參數 include_all,如果 include_all 設定為 true,則副本會帶有指定節點的所有子節點。 然而,script 標籤也是 dom-節點,cloneNode 對其依然有效,經實測各瀏覽器(尤其是IE)對 cloneNode 執行結果表現不一致,主要現象為以下兩種: IE,至少是 IE8 及以下,對某節點 cloneNode 時,如果該節點包含 script
1.JS中的是是非非 JS是一門電腦程式設計語言,是一門動態語言也稱為指令碼語言,是解析型程式設計語言。為什麼是指令碼?因為他本身不能執行,就是沒有main函數或主程式的入口,必須被他的宿主環境,也就是解析環境解析執行他。為是什麼是解析型?因為JS不會進行編程,連結,彙編等一系統的過程產生某個檔案,再執行,他就是以字串形式載入執行.. 2.JS中的真真假假 空,null,undefined,false,0,””,'',NaN都為假,其他都為真 3.函數,類,對象,構造器有什麼區別?
very short version: [html] 複製代碼 代碼如下: $('#myDiv').css({top:'50%',left:'50%',margin:'-'+($('#myDiv').height() / 2)+'px 0 0 -'+($('#myDiv').width() / 2)+'px'}); $('#myDiv').css({top:'50%',left:'50%',margin:'-'+($('#myDiv').height() / 2)+'px 0 0 -'+($('
表頭固定應該是一個用得比較多的功能,參考了網上幾個例子,在幾個常用瀏覽器下顯示不是很完美。而且很多都是基於固定的表格,在編碼時多寫一個固定的表頭,對於動態產生的不知道多少列的表格就無從下手。而且例子中大多隻能滿足限定高度的情況,如果限定寬度,出現橫向捲軸就無能為力了。 我的目的就是要像jquery-ui那樣,找到頁面上存在的表格,調用一個方法就可以實現固定表頭的功能。趁著動手學習寫jquery外掛程式的機會,自己寫了一個表頭固定的外掛程式。
一個div的運動其實就是它與瀏覽器邊框的距離在變動。如果他變化的速率一定,那就是勻速運動;如果變化的速率不一定,那麼就是變速運動。當,變動率與聚離瀏覽器邊框的距離成比例的話,那麼就可以說是div在做緩衝運動。 其實,很簡單,就是用一個定時器(timer),每隔一段時間來改變div聚瀏覽器邊框的距離。 比如勻速運動: 進入定時器:(每隔30ms做) if(是否到達終點) { 停止定時器} else do{ 改變距離} 改變距離的方法決定是勻速還是變速(緩衝)運動。 勻速的比如: 複製代碼
var a=new Array(); 如果這樣定義:a[3]="a"; alert(a.length) 4 而是的1, 如果定義了,但沒有賦值則返回一個undefined (alert(a[0])) 建立數組: 複製代碼 代碼如下: arr = [];//是的,一個空中括弧 //與下面一句幾乎是等價的 arr = new Array();var a=new Array(1,"n",3,"m",5,“m”,8); var a=[]; //定義一個空數組 var a=new Array(2); //
下面我們就做一個10以內的階乘試試看吧: js中遞迴函式的使用 [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行] 遞迴函式的調用就說這麼多了 js遞迴函式調用自身時的保險方式。 來自js進階程式設計 一個典型階乘遞迴函式: 複製代碼 代碼如下: function fact(num){ if (num<=1){ return 1; }else{ return num*fact(num-1); } } 以下代碼可導致出錯: var
概述: 事件對於控制項來說至關重要,控制項的訊息通訊機制使用事件的成本最低,但是對於JS控制項來說有一些麻煩需要解決,JS類本身不支援事件,DOM模型支援的事件僅適應於瀏覽器的DOM節點。所以建立一套事件是我們寫控制項之前要做的。 事件機制 對於事件的機制我不想多說,各種語言中對事件的描述都很具體,都是觀察者模式的一種實現,我們可以從中抽取出事件必須的介面(由於控制項陳列庫是基於jQuery 所以介面跟jquery保持一致): 1.on: 綁定事件 2.off: 刪除事件 3.fire:
Jquery中利用navigator.userAgent.indexOf來判斷瀏覽器類型,並進行了一下處理,建議學習Jquery的朋友學習下,瞭解一下思路。 主要使用的方法:$.browser.['瀏覽器關鍵字'] 複製代碼 代碼如下: $(function() { if($.browser.msie) { alert("this is msie"); } else if($.browser.safari) { alert("this is safari!"); } else
6、執行環境和範圍 (1)執行環境(execution context):所有的JavaScript代碼都運行在一個執行環境中,當控制權轉移至JavaScript的可執行代碼時,就進入了一個執行環境。活動的執行環境從邏輯上形成了一個棧,全域執行環境永遠是這個棧的棧底元素,棧頂元素就是當前正在啟動並執行執行環境。每一個函數都有自己的執行環境,當執行流進入一個函數時,會將這個函數的執行環境壓入棧頂,函數執行完之後再將這個執行環境彈出,控制權返回給之前的執行環境。 (2)變數對象(variable
在眾多的瀏覽器產品中,IE、Firefox、Opera、Safari........眾多品牌卻標準不一,因此時常需要根據不同的瀏覽器,甚至相同瀏覽器不同版本做不同的操作,因此,知曉瀏覽器的判斷方法,還是很重要的。下面列舉一下常用的判斷方法 1、判斷瀏覽器是否為IE document.all ? 'IE' : 'others':在IE下document.all值為1,而其他瀏覽器下的值為0; navigator.userAgent.indexOf("MSIE")>0 ? 'IE' :
首先用css的偽類:focus可以改變。 文字框的 html代碼假設如下: 複製代碼 代碼如下: <dl> <dt>Name: <dt> <dd><input type="text" /></dd> <dt>Password: <dt> <dd><input type="password" /></dd> <dt>Textarea: <dt>
倒計時 [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]
一、Html代碼 複製代碼 代碼如下: <div class="MenuSubTitle AccordionCollapse">子功能表1</div> <div> <a href="Fld_BaseData/aa.aspx">aa管理</a><br/> <a href="Fld_BaseData/bb.aspx">bb管理</a><br/> </div> <div
什麼是對象 簡單點說,程式設計語言中的對象是對現實中事物的簡化。例如,我們一個人就是一個對象,但是程式設計語言很難完全描述一個這樣複雜的對象。所以我們必須做出簡化,首先,將人簡化成屬性和行為的組合,然後僅僅保留對程式有意義的幾個屬性以及行為。例如,我們做一個統計某學校的人的身高的程式,那麼我們在這個程式中就可以把人的行為省略掉,只保留行為,並且只保留身高這一個屬性。這樣,我們就得到了一個最簡單的對象。 JavaScript字串對象 對象的屬性 其實我們之前在HTML
先下頁面代碼: 複製代碼 代碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script
複製代碼 代碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type"