開源小巧的javascript框架:G.js

jopen 10年前發布 | 35K 次閱讀 G.js JavaScript開發

G.js是一個開源小巧的javascript框架。支持瀏覽器 ie6+
一共包含31個方法,其中有13個是對dom原生對象的擴展(被G.js處理過的對象才有這些擴展方法,沒有污染原生對象結構),18個常用方法。

18個常用方法包含了4個插件:
1、自動驗證表單
2、各種彈出框 (alert | success | error | confirm | prompt | box)
3、無刷新上傳圖片
4、移動設備的上下 左右 長按 手勢的識別(需要支持touch事件)

G.js返回的對象均為原生js對象。

下載

g.js ----------- 16KB

g.min.js ----------- 11KB

g.css ----------- 3KB (各種彈出框的樣式)

對dom擴展的13個方法(均支持數組操作)

方法 說明
$ dom.$('css選擇器',false|true = false) 選擇器,作用域是當前元素 第二個參數默認是false 表示選擇第一個元素,true 表示選擇所有的
child dom.child(n='') 當前元素的子元素 n為空表示所有子元素
css dom.css({}) 給當前元素添加css樣式
rcss dom.rcss(被替換的class名稱,替換的class名稱) 操作class類名 第一個參數為空表示添加 第二個參數為空表示刪除
del dom.del() 刪除當前元素
each dom.each(回調函數) 遍歷當前對象
hide dom.hide(回調函數,淡出時間css3) 隱藏當前元素
show dom.show(回調函數,淡入時間,最終透明度) 顯示當前元素
next dom.next(n=1) 當前元素的下n個元素 默認為1
prev dom.prev(n=1) 當前元素的上n個元素 默認為1
offset dom.offset() 獲取當前元素的位置 返回{top:'',left:'',bottom:'',right:''}
parent dom.parent(n=1) 返回當前元素的父N級元素
use dom.use(fn) 當前所有元素執行fn函數

DEMO

獲取1個class為.dt的元素 改變背景顏色為(#85B3DC)

G('.dt').css({'backgroundColor':'#85B3DC'});測試

獲取1個class為.dt的元素內的所有信息

alert(G('.dt').innerHTML);測試

獲取所有class為.dt的元素 改變背景顏色為(#85B3DC)

G('.dt',true).css({'backgroundColor':'#85B3DC'});測試

獲取所有class為.dt的元素 下面的第一個p元素 改變背景顏色為(#85B3DC)

G('.dt',true).$('p').css({'backgroundColor':'#85B3DC'});測試

獲取所有class為.dt的元素 下面的所有p元素 返回的是一個二維數組

G('.dt',true).$('p',true);

18個常用方法

方法 說明
$$ G.$$('div')創建dom對象
F G.F() 初始化自動驗證表單 在表單加載完調用
TE G.TE(對象,lr|tb|all|lclick,滑動結束函數,滑動過程中的函數?,滑動開始函數?) 手勢操作 滑動結束函數發回的是1 或則 -1 或著 滑動的距離
aj ajax G.aj(url地址,POST數據,回調函數,格式?) 有防止多次提及的功能 相同的數據和地址 前一次提交沒有返回 會自動屏蔽后面的提交
notice 注意提示 G.alert('提示內容',是否有遮蔽層=false,回調函數=false,時間=3000)
alert 警告提示 G.alert('提示內容',是否有遮蔽層=false,回調函數=false,時間=3000)
success 成功提示 G.alert('提示內容',是否有遮蔽層=false,回調函數=false,時間=3000)
error 錯誤提示 G.alert('提示內容',是否有遮蔽層=false,回調函數=false,時間=3000)
box 彈出窗口 G.box('標題',內容,是否有遮蔽層=false,關閉時的回調函數)
confirm 確認提示 G.confirm('提示內容',function(r){},是否有遮蔽層)
prompt 輸入提示 G.prompt('提示內容',function(r){},是否有遮蔽層)
move G.move(事件作用元素的對象,需要移動元素對象)
fix G.fix(css3屬性,css3值);返回一個兼容個瀏覽器的css對象
fnr G.fnr(from對象);返回from的所有元素的值
ldimg G.ldimg(圖片url地址,回調函數);預加載圖片
on G.on(元素,事件,函數方法);綁定事件在元素上
rand G.rand(最小數,最大數,是否是浮點數=false);產生隨機數
urlencode G.urlencode(字符串);轉換成url編碼

DEMO

G.alert | G.error | G.success | G.notice 方法

           <script type="text/javascript">
/*
 G.alert(s,c,f,t),G.error(s,c,f,t),G.success(s,c,f,t),G.notice(s,c,f,t)
 @s:提示信息; 
 @t:顯示時間;默認 2000 毫秒
 @f:回調函數
 @c:是否有遮蔽層 默認true  
*/

G.alert('用戶名不能空!');

//有遮蔽層
G.alert('用戶名不能空!',true);

//無遮蔽層 提示完跳轉到 http://www.yxsss.com
G.alert('用戶名不能空!',false,function(){window.location='http://www.yxsss.com'});

</script>測試         

G.F() 表單自動驗證

屬性 說明
req req="true" 表示必填項,不能為空
exp 填寫正則表達式,當前元素內的內容符合發回true,不符合給出警告
ts 當內容不符時的提示信息 如果沒有 會依次尋找placeholder,上一級上一個元素的信息
fname 無刷新上傳文件的的name
funbak 無刷新上傳文件成功后后臺返回的信息 的回調函數
furl 無刷新上傳文件地址 當為空時 默認為當前form的action地址
funstr 上傳開始時執行的函數 默認為空

DEMO

req 屬性

<!--
    req="true" 表示用戶名為必填項,當用戶名為空是提示為:
    提示語默認是 元素的父級的上一個元素的內容。下面的提示為 用戶名不能為空;
    自定義提示提示信息看 屬性ts
-->
<form action="" method="post">
<table>
    <tr><td>用戶名:</td><td><input type="text" req="true"></td></tr>
    <tr><td colspan="2"><input type="submit" value="提交"></td></tr>
</table>
</form>

exp | ts 屬性

<!--
exp="這里填寫正則表達式" 表示當內容不為空時,用正則表達式驗證當前元素里面的內容
如:必填 郵箱格式 自定義提示語
-->
<form action="javascript:;" method="post">
<table>
    <tr><td>email:</td><td><input type="text" ts="郵箱格式不正確" req="true" exp="^[\w\-_\.]+@[\w\-]+(\.[a-zA-Z]{2,6}){1,2}$"></td></tr>
    <tr><td colspan="2"><input type="submit" value="提交"></td></tr>
</table>

fname | funbak | furl | funstr 屬性

<!--
fname:后臺接收時用的名字, 必填
funstr:開始上傳執行的函數, 默認無
funbak:上傳成功后的回調函數, 必填
furl:上傳地址; 默認當前form的提交頁面
注意:上傳地址和當前地址必須為同意域名否則回調函數獲取不到 上傳成功發回的地址。

a.php:

$path='a.jpg';
move_uploaded_file($_FILES['uimg']['tmp_name'],$path);
exit(json_encode(array('ztai'=>true,'url'=>$path)));


-->

<form action=""  method="get">
<input type="button" fname="uimg" funstr="function(){document.title='圖片正在上傳……';return false;}" funbak="ddd" furl="a.php" value="本地上傳">
</form>
<script type="text/javascript">
function ddd(da){

    if(da.ztai){
        document.title='上傳完成';
        G.success('上傳成功保存地址為'+da.url);
    }
}
</script>

項目主頁:http://www.baiduhome.net/lib/view/home/1409214785275

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!