成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript常用封裝函數(shù)

v1 / 826人閱讀

摘要:基本運(yùn)動(dòng)透明度變化抖動(dòng)獲取計(jì)算后的樣式獲取計(jì)算后的樣式并且賦值事件綁定下常用封裝函數(shù)先處理不是真值或者沒(méi)有上一個(gè)兄弟節(jié)點(diǎn)的情況。遞歸不斷往上一層一層地找元素節(jié)點(diǎn),直到找到或者返回為止。獲取元素在當(dāng)前頁(yè)面中的絕對(duì)位置

基本運(yùn)動(dòng)
function doMove(obj,attr,speed,target,endFn){

var iCur = getStyle( obj, attr );

speed = iCur <= target ? Math.abs(speed) : -Math.abs(speed);

clearInterval(obj.timer);

obj.timer = setInterval(function(){

    iCur = getStyle( obj, attr ) + speed;

    if( (speed > 0 && iCur >= target) || (speed < 0 && iCur <= target) ){

        iCur = target;

    }

    obj.style[attr] = iCur + "px";

    if(iCur == target){

        clearInterval(obj.timer);

        if( typeof endFn === "function" ){  endFn(); }  
    }

},30);

}

透明度變化
function opacity(obj,speed,target,endFn){

var iCur = getStyle( obj, "opacity" ) * 100;

speed = iCur <= target ? Math.abs(speed) : -Math.abs(speed);

clearInterval(obj.alpha);

obj.alpha = setInterval(function(){

    iCur = getStyle( obj, "opacity" )*100 + speed;

    if( (speed > 0 && iCur >= target) || (speed < 0 && iCur <= target) ){

        iCur = target;

    }

    obj.style.opacity = iCur / 100;

    obj.style.filter = "alpha(opacity: "+ iCur +")";

    if(iCur == target){

        clearInterval(obj.alpha);

        if( typeof endFn === "function" ){  endFn(); }  
    }

},30);

}

抖動(dòng)

function shake(obj,attr,endFn){

var pos = getStyle(obj,attr);

var arr = [];

for(var i=14; i>=0; i-=2){

    arr.push(-i,i); 
}

obj.shake = setInterval(function(){

    obj.style[attr] = pos + arr[i++] + "px";

    if(i==arr.length){

        clearInterval(obj.shake);   

        if( typeof endFn === "function" )endFn();
    }   

},30);

}

獲取計(jì)算后的樣式
function getStyle( obj ,attr ){

if( obj.currentStyle ){

    return parseFloat( obj.currentStyle[attr] || 1 );   
} 

return parseFloat( getComputedStyle(obj)[attr] );

}

獲取計(jì)算后的樣式并且賦值
function css(obj,attr,val){

if(val)
{
    if(attr=="opacity")
    {
        obj.style["opacity"]=val/100;

        obj.style["filter"]="alpha(opacity="+val+")";
    }
    else
    {
        obj.style[attr]=val+"px";
    }
}
else
{
    iVal=parseFloat(getStyle(obj,attr));

    if(attr=="opacity")
    {
        iVal=Math.round(iVal*100);
    }
    return iVal;
}

}

事件綁定
function bind(obj,ev,fn){

if( obj.addEventListener ){

    obj.addEventListener(ev,fn,false);

}else{

    obj.attachEvent("on" + ev,function(){

        fn.call(obj);   
    }); 
}   

}

DOM下常用封裝函數(shù)
function getPrev( obj ){

if( !obj || !obj.previousSibling )return null;

//先處理obj不是真值或者沒(méi)有上一個(gè)兄弟節(jié)點(diǎn)的情況。

return obj.previousSibling.nodeType === 1 ? obj.previousSibling : getPrev( obj.previousSibling ); //遞歸

//不斷往上一層一層地找元素節(jié)點(diǎn),直到找到或者返回Null為止。

}

function getNext( obj ){

if( !obj || !obj.nextSibling )return null;

//先處理obj不是真值或者沒(méi)有下一個(gè)兄弟節(jié)點(diǎn)的情況。

return obj.nextSibling.nodeType === 1 ? obj.nextSibling : getNext( obj.nextSibling ); //遞歸

//不斷往下一層一層地找元素節(jié)點(diǎn),直到找到或者返回Null為止。

}

function getFirst( obj ){

if( !obj || !obj.firstChild )return null;

//先處理obj不是真值或者沒(méi)有第一個(gè)兄弟節(jié)點(diǎn)的情況。

return obj.firstChild.nodeType === 1 ? obj.firstChild : getNext( obj.firstChild ); //遞歸

//如果第一個(gè)子節(jié)點(diǎn)不是元素節(jié)點(diǎn),就以第一個(gè)子節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn),查找下一個(gè)兄弟節(jié)點(diǎn)。

}

function getLast( obj ){

if( !obj || !obj.lastChild )return null;

//先處理obj不是真值或者沒(méi)有最后一個(gè)兄弟節(jié)點(diǎn)的情況。

return obj.lastChild.nodeType === 1 ? obj.lastChild : getPrev( obj.lastChild ); //遞歸

//如果第一個(gè)子節(jié)點(diǎn)不是元素節(jié)點(diǎn),就以第一個(gè)子節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn),查找下一個(gè)兄弟節(jié)點(diǎn)。

}

獲取元素在當(dāng)前頁(yè)面中的絕對(duì)位置
function posLeft( obj ){

    var iLeft = 0;

    while( obj ){

        iLeft += obj.offsetLeft;

        obj = obj.offsetParent;
    }
    return iLeft;

}

function posTop( obj ){

    var iTop = 0;

    while( obj ){

        iTop += obj.offsetTop;

        obj = obj.offsetParent;
    }
    return iTop;

}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/87581.html

相關(guān)文章

  • 編寫(xiě)自己的代碼庫(kù)(javascript常用實(shí)例的實(shí)現(xiàn)與封裝--續(xù))

    摘要:前言這個(gè)系列的上一篇文章編寫(xiě)自己的代碼庫(kù)常用實(shí)例的實(shí)現(xiàn)與封裝總結(jié)了個(gè)常見(jiàn)的操作。前序修改以及寫(xiě)法優(yōu)化此處修改之前提交函數(shù)已經(jīng)發(fā)現(xiàn)的,基于這個(gè)系列上篇文章的提供的函數(shù)。 1.前言 這個(gè)系列的上一篇文章(編寫(xiě)自己的代碼庫(kù)(javascript常用實(shí)例的實(shí)現(xiàn)與封裝))總結(jié)了34個(gè)常見(jiàn)的操作。但是在開(kāi)發(fā)中,常見(jiàn)的實(shí)例又何止這么多個(gè),經(jīng)過(guò)這些日子的探索,以及他人的意見(jiàn),現(xiàn)在得追加一些操作實(shí)例了。...

    Atom 評(píng)論0 收藏0
  • JavaScript常用腳本集錦1

    摘要:初始化參數(shù)可選參數(shù),必填參數(shù)可選,只有在請(qǐng)求時(shí)需要參數(shù)可選回調(diào)函數(shù)可選參數(shù)可選,默認(rèn)為參數(shù)可選,默認(rèn)為創(chuàng)建引擎對(duì)象打開(kāi)發(fā)送普通文本接收文檔將字符串轉(zhuǎn)換為對(duì)象最后,說(shuō)明一下此函數(shù)的用法。即等待與成功回調(diào),后標(biāo)志位置為。 jquery限制文本框只能輸入數(shù)字 jquery限制文本框只能輸入數(shù)字,兼容IE、chrome、FF(表現(xiàn)效果不一樣),示例代碼如下: $(input).keyup(...

    ygyooo 評(píng)論0 收藏0
  • 【Vue原理】Vue源碼閱讀總結(jié)大會(huì) - 序

    摘要:扎實(shí)基礎(chǔ)幸好自己之前花了大力氣去給自己打基礎(chǔ),讓自己現(xiàn)在的基礎(chǔ)還算不錯(cuò)。 寫(xiě)文章不容易,點(diǎn)個(gè)贊唄兄弟專注 Vue 源碼分享,文章分為白話版和 源碼版,白話版助于理解工作原理,源碼版助于了解內(nèi)部詳情,讓我們一起學(xué)習(xí)吧研究基于 Vue版本 【2.5.17】 如果你覺(jué)得排版難看,請(qǐng)點(diǎn)擊 下面鏈接 或者 拉到 下面關(guān)注公眾號(hào)也可以吧 【Vue原理】Vue源碼閱讀總結(jié)大會(huì) - 序 閱讀源碼是需...

    Edison 評(píng)論0 收藏0
  • 常用JavaScript編程風(fēng)格

    摘要:工作中好的編程風(fēng)格會(huì)更友好,不好的編程風(fēng)格會(huì)讓隊(duì)友難受變量的聲明使用和代替存在變量提升等副作用,聲明常量使用命名規(guī)范使用小駝峰命名,變量名可讀性好使用變量說(shuō)明不要出現(xiàn)讓人覺(jué)得晦澀難懂的變量不要重復(fù)命名當(dāng)一個(gè)對(duì)象名有意義的時(shí)候,對(duì)象里面的的命 工作中好的編程風(fēng)格會(huì)更友好,不好的編程風(fēng)格會(huì)讓隊(duì)友難受 變量的聲明 使用let和const代替var(var存在變量提升等副作用),聲明常量使用c...

    explorer_ddf 評(píng)論0 收藏0
  • 前端基礎(chǔ)入門(mén)五(掌握jQuery的常用api,實(shí)現(xiàn)動(dòng)態(tài)效果)

    摘要:基本概念學(xué)習(xí)目標(biāo)學(xué)會(huì)如何使用,掌握的常用,能夠使用實(shí)現(xiàn)常見(jiàn)的效果。想要實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)效果,也很麻煩代碼冗余。實(shí)現(xiàn)動(dòng)畫(huà)非常簡(jiǎn)單,而且功能更加的強(qiáng)大。注意選擇器返回的是對(duì)象。 jQuery基本概念 學(xué)習(xí)目標(biāo):學(xué)會(huì)如何使用jQuery,掌握jQuery的常用api,能夠使用jQuery實(shí)現(xiàn)常見(jiàn)的效果。 為什么要學(xué)習(xí)jQuery? 【01-讓div顯示與設(shè)置內(nèi)容.html】 使用javasc...

    nevermind 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<