ThingJS加入js的基本表單功能
js之表單事件中包括change事件,change事件當<input>、<select>、<textarea>的值發生變化時觸發。ThingJS,不斷加入js的基本功能,讓3D開發更輕鬆!
如何結合2D圖形皮膚和js語法來做3D開發?ThingJS做個好示範,教你著手開發不同物體的溫度、霧效和iframe頁面。官方新推出change事件的功能,對應各種3D效果元素的值的變化,方便在GUI(圖形介面)手動操作,直接生成js程式碼。
Change事件指代一系列用於改變場景元素的介面元件,都有哪些元件呢?比如string元件、核取方塊元件、布林開關元件、單選框元件、iframe元件,都可以一一加入開發序列。
下面就來一一解析一下。首先要繫結介面元件資料,再建立皮膚和新增相關元件,注意在建立過程中會透過一些顏色或者動畫效果來動態呈現變化,包括變色、切換等。
建立皮膚
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 |
// 用於介面元件資料繫結 var
dataObj = {
temperature:
'30'
,
checkbox: {
'car01'
:
true
,
'car02'
:
false
,
'car03'
:
false
,
},
switch1:
false
,
radio:
'首頁'
,
iframe:
' }; // 建立皮膚 var
panel = THING.widget.Panel({
titleText:
'皮膚'
,
hasTitle:
true
,
width:
'300px' }); |
新增string元件
官方示例對應溫度的變化,透過文字修改來觸發change事件。程式碼中繫結了beforechange,透過return語句終止當前函式並返回當前溫度的值,change事件顯示當前溫度的返回值,皮膚中需要輸入數字,並勾選所作用的物體物件。
1
2
3
4
5
6
7
8
9
10 |
// 新增 String 元件 var
temperature = panel.addString(dataObj,
'temperature'
).isChangeValue(
true
); // 繫結 beforeChange 事件 temperature.on(
'beforeChange'
,
function
(ev) {
return
confirm(
'改變溫度設定'
); }) // 繫結 change 事件 temperature.on(
'change'
,
function
(ev) {
console.log(
'當前溫度為:'
+ ev); }); |
新增核取方塊元件
透過核取方塊來選擇物件,加入顏色變化,直觀呈現一個升溫或者降溫的效果。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 |
// 新增 核取方塊 元件 var
checkbox = panel.add(dataObj,
'checkbox'
); for
(let i = 0; i < 3; i++) {
checkbox[i].on(
'beforeChange'
,
function
(ev) {
var
car = app.query(/car/)[i];
if
(ev) {
return
confirm(
'取消 '
+ car.name +
' 紅色'
);
}
else
{
return
confirm(car.name +
' 變紅'
);
}
});
checkbox[i].on(
'change'
,
function
(ev) {
var
car = app.query(/car/)[i];
car.style.color = ev ?
'#ff0000'
:
null
;
}); } |
新增布林開關元件
布林值是“真” True 或“假” False 中的一個,在3D皮膚中是開啟與關閉霧效,設定霧效還要考慮到顏色、距離等因素。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
// 新增 布林開關 元件 var
switch1 = panel.addBoolean(dataObj,
'switch1'
).caption(
'霧效'
); switch1.on(
'beforeChange'
,
function
(ev) {
if
(ev) {
return
confirm(
'確定關閉霧效嗎?'
);
}
else
{
return
confirm(
'確定開啟霧效嗎?'
);
} }) switch1.on(
'change'
,
function
(ev) {
if
(ev) {
// 設定霧效果
app.fog = { color:
'#c4c4c4'
, near: 0, far: 150 };
}
else
{
app.fog =
null
;
} }) |
新增單選框元件
用單選框實現切換,透過新增iframe元件,呈現切換後的頁面。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 |
// 新增 單選框 元件 var
radio = panel.addRadio(dataObj,
'radio'
, [
'首頁'
,
'教程'
]); radio.on(
'beforeChange'
,
function
(ev) {
if
(ev ==
'教程'
) {
return
confirm(
'iframe 頁面將切換到首頁'
);
}
else
{
return
confirm(
'iframe 頁面將切換到教程'
);
} }) radio.on(
'change'
,
function
(ev) {
if
(ev ===
'首頁'
) {
dataObj.iframe =
"
}
else
{
dataObj.iframe =
"
} }) |
新增iframe元件
1
2 |
// 新增 Iframe 元件 var
iframe = panel.addIframe(dataObj,
'iframe'
).setHeight(
"400px"
); |
ThingJS,你的3D開發神器!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978212/viewspace-2726463/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Vuejs基本知識(十三)【表單的提交】VueJS
- Vuejs基本知識(十二)【表單的繫結】VueJS
- AngularJS實現的表單編輯提交功能簡單介紹AngularJS
- bootstrap18-基本表單boot
- js獲取表單元素所在的form表單物件JSORM物件
- js 單項鍊表JS
- Js表單驗證JS
- 關於簡單的js計步功能JS
- Js提交表單的兩種方法JS
- js獲取form表單下所有表單元素JSORM
- js解析php格式的表單到json物件PHPJSON物件
- 真孿生•共見未來 ▏ThingJS開發者大會JS
- js簡單的留言功能程式碼例項JS
- 銷售訂單處理期間的基本功能
- (JS基礎)操作表單JS
- angularjs表單驗證AngularJS
- 表單驗證<AngularJs>AngularJS
- js表單檔案提交JS
- 走進AngularJs(九)表單及表單驗證AngularJS
- 用js開發3D專案,ThingJS兩年前就成功了JS3D
- Mybatis加入JPA的自動建表功能MyBatis
- 利用js解析php的表單資料JSPHP
- Seam中的JSF表單驗證JS
- js的表單元素的defaultValue預設值簡單介紹JS
- js如何禁用表單中的所有文字框JS
- js如何阻止表單提交簡單介紹JS
- Angularjs製作簡單的路由功能簡單程式碼例項AngularJS路由
- 利用jQuery實現表單驗證功能jQuery
- Java實現單向連結串列基本功能Java
- JSP(ajax)+Servlet實現簡單的登入功能JSServlet
- Hive表的基本操作Hive
- three.js加入監控JS
- JS — 物件的基本操作JS物件
- JSCore的基本使用JS
- jQuery Validate表單驗證基本流程介紹jQuery
- JSON Schema與表單驗證JSON
- 將Json值填充至表單JSON
- AngularJS教程十九—— 表單校驗AngularJS