1、拖動(dòng)層:
在曲靖等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,全網(wǎng)整合營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè),曲靖網(wǎng)站建設(shè)費(fèi)用合理。
div id="div1" style="position:absolute; background-color:#0064c2; width:150px; height:150px;" onmousedown="MoveStart(this,event)"/div
script
function MoveStart(o,event){
var oX = event.clientX-o.offsetLeft;
var oY = event.clientY-o.offsetTop;
document.attachEvent("onmousemove",MoveIt);
document.attachEvent("onmouseup",MoveStop);
event.cancelBubble = true;
event.returnValue = false;
function MoveIt(e){
e = window.event;
o.style.left = (e.clientX-oX)+'px';
o.style.top = (e.clientY-oY)+'px';
event.cancelBubble = true;
}
function MoveStop(){
document.detachEvent("onmouseup",MoveStop);
document.detachEvent("onmousemove",MoveIt);
}
event.cancelBubble = true;
}
/script
2、關(guān)掉瀏覽器,拖動(dòng)以后的層還可以留在拖動(dòng)后的位置。
只需要在用戶退出時(shí),記錄層的當(dāng)前位置,存儲(chǔ)于數(shù)據(jù)庫(kù)中,下次用戶再打開此頁(yè)面時(shí),從數(shù)據(jù)庫(kù)中讀取層的位置再顯示。
在JS中插入短的HTML代碼,可以通過(guò)先使用一個(gè)函數(shù)來(lái)包著,你要添加的HTMl代碼,然后在使用innerHTML這個(gè)函數(shù)提取就行,在你的HTMl中添加一個(gè)事件就行,然后調(diào)用這個(gè)函數(shù)就行了,具體的我提供例子給你看下:
可維護(hù)性
靈活架構(gòu),焦點(diǎn)分離
方便模塊間組合、分解
方便單個(gè)模塊功能調(diào)試、升級(jí)
多人協(xié)作互不干擾
可測(cè)試性,可分單元測(cè)試;
性能損耗
系統(tǒng)分層,調(diào)用鏈會(huì)很長(zhǎng)
模塊間通信,模塊間發(fā)送消息會(huì)很耗性能
最近的項(xiàng)目中也有用到模塊化;
使用的是seajs,但是當(dāng)引用到j(luò)query,jquery easyui/或者jquery;
UI組件時(shí),有可能會(huì)用到很多jquery插件,那這樣要是實(shí)現(xiàn)一個(gè)很復(fù)雜的交互時(shí),模塊間的依賴會(huì)很多,使用define()方法引入模塊會(huì)很多。
用添加事件
function addEvent(obj, eventName, handler, argsObject)
{
var eventHandler = handler;
if(argsObject)
{
eventHander = function(e)
{
handler.call(argsObject, e);
}
}
if(window.attachEvent)
obj.attachEvent("on" + eventName, eventHandler );
else
obj.addEventListener(eventName, eventHandler, false);
}
function removeEvent( obj, eventName, handler, cap)
{
var cap = cap || false;
if(window.detachEvent)
obj.detachEvent("on"+eventName, handler)
else
obj.removeEventListener(eventName, handler, cap);
}
這樣onmouseover就有多個(gè)動(dòng)作了
如今backbone、emberjs、spinejs、batmanjs
等MVC框架侵襲而來(lái)。CommonJS、AMD、NodeJS、RequireJS、SeaJS、curljs等模塊化的JavaScript撲面而
來(lái)。web前端已經(jīng)演變成大前端,web前端的發(fā)展速度之快。
1)我們來(lái)看看什么是模塊化?
模塊化是一種將系統(tǒng)分離成獨(dú)立功能部分的方法,可將系統(tǒng)分割成獨(dú)立的功能部分,嚴(yán)格定義模塊接口、模塊間具有透明性。javascript中的模塊在一些C、PHP、java中比較常見:
c中使用include 包含.h文件;php中使用require_once包含.php文件
java使用import導(dǎo)入包
此中都有模塊化的思想。
2)模塊化的優(yōu)缺點(diǎn):
a優(yōu)點(diǎn):
可維護(hù)性
1.靈活架構(gòu),焦點(diǎn)分離
2.方便模塊間組合、分解
3.方便單個(gè)模塊功能調(diào)試、升級(jí)
4.多人協(xié)作互不干擾
可測(cè)試性
1.可分單元測(cè)試
b缺點(diǎn):
性能損耗
1.系統(tǒng)分層,調(diào)用鏈會(huì)很長(zhǎng)
2.模塊間通信,模塊間發(fā)送消息會(huì)很耗性能
3)最近的項(xiàng)目中也有用到模塊化,
使用的是seajs,但是當(dāng)引用到j(luò)query,jquery easyui/或者jquery
UI組件時(shí),有可能會(huì)用到很多jquery插件,那這樣要是實(shí)現(xiàn)一個(gè)很復(fù)雜的交互時(shí),模塊間的依賴會(huì)很多,使用define()方法引入模塊會(huì)很多,不知
有么有什么好的方法?
4)附:
內(nèi)聚度
內(nèi)聚度指模塊內(nèi)部實(shí)現(xiàn),它是信息隱藏和局部化概念的自然擴(kuò)展,它標(biāo)志著一個(gè)模塊內(nèi)部各成分彼此結(jié)合的緊密程度。好處也很明顯,當(dāng)把相關(guān)的任務(wù)分組后去閱讀就容易多了。 設(shè)計(jì)時(shí)應(yīng)該盡可能的提高模塊內(nèi)聚度,從而獲得較高的模塊獨(dú)立性。
耦合度
耦合度則是指模塊之間的關(guān)聯(lián)程度的度量。耦合度取決于模塊之間接口的復(fù)雜性,進(jìn)入或調(diào)用模塊的位置等。與內(nèi)聚度相反,在設(shè)計(jì)時(shí)應(yīng)盡量追求松散耦合的系統(tǒng)。
本文標(biāo)題:javascript模塊,javascript模塊化開發(fā)
當(dāng)前地址:http://aaarwkj.com/article12/dssjidc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、App開發(fā)、、網(wǎng)站設(shè)計(jì)公司、電子商務(wù)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)