溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

web前端中常用的封裝方法是什么

發布時間:2022-03-23 13:46:55 來源:億速云 閱讀:214 作者:iii 欄目:web開發

本篇內容介紹了“web前端中常用的封裝方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

    1、放大鏡

    //頁面加載完畢后執行

    window.onload=function(){

    varoDemo=document.getElementById('demo');

    varoMark=document.getElementById('mark');

    varFloatBox=document.getElementById('float-box');

    varSmallBox=document.getElementById("small-box");

    varbigBox=document.getElementById('big-box');

    varbigImg=bigBox.getElementsByTagName('img')[0];

    oMark.onmouseover=function(){

    FloatBox.style.display="block";

    bigBox.style.display="block";

    }

    oMark.onmouseout=function(){

    FloatBox.style.display="none";

    bigBox.style.display="none";

    }

    oMark.onmousemove=function(ev){

    varev=ev||window.event;

    varleft=ev.clientX-oDemo.offsetLeft-SmallBox.offsetLeft-FloatBox.offsetWidth/2;

    vartop=ev.clientY-oDemo.offsetTop-SmallBox.offsetTop-FloatBox.offsetHeight/2;

    if(left<10){

    left=0;

    }elseif(left>=oMark.offsetWidth-FloatBox.offsetWidth-10){

    left=oMark.offsetWidth-FloatBox.offsetWidth;

    }

    if(top<10){

    top=0;

    }elseif(top>=oMark.offsetHeight-FloatBox.offsetHeight-10){

    top=oMark.offsetHeight-FloatBox.offsetHeight;

    }

    FloatBox.style.left=left+"px";

    FloatBox.style.top=top+"px";

    varscaleX=left/(oMark.offsetWidth-FloatBox.offsetWidth);

    varscaleY=top/(oMark.offsetHeight-FloatBox.offsetHeight);

    bigImg.style.left=-scaleX*(bigImg.offsetWidth-bigBox.offsetWidth)+"px";

    bigImg.style.top=-scaleY*(bigImg.offsetHeight-bigBox.offsetHeight)+"px";

    }

    }

    2、JSONP

    functionfn1(data){

    varhtml='';

    varoUl=document.getElementsByTagName('ul')[0];

    console.log(data);

    if(data.total!=-1){

    for(vari=0;i<data.books.length;i++){

    html+='<li><h3>'+data.books[i].title+'</h3><span>'+data.books[i].author_intro+'</span><imgsrc="'+data.books[i].image+'"/><p>'+data.books[i].summary+'</p><p><em>'+data.books[i].publisher+'</em></p></li>';}

    oUl.innerHTML=html;

    }else{

    document.body.innerHTML+='<h3>親~~沒有數據哦~~~</h3>';

    }

    }

    window.onload=function(){

    varoBtn=document.getElementById('btn');

    variNow=0;

    oBtn.onclick=function(){

    //動態添加script標簽加載URL地址后傳入callback=fn1輸出一個函數,在上面則定義好這個函數,接受一個data就是資源json類型,循環輸出,可先console.log(dara)查看數據

    varoScript=document.createElement('script');

    oScript.src="https://api.douban.com/v2/book/search?q=%E6%A0%A1%E5%9B%AD&count=10&start="+iNow+"&callback=fn1";

    document.head.appendChild(oScript);

    //點擊一次+10,從多少開始獲取

    iNow+=10;

    }

    }

    3、獲取指定區間范圍隨機數,包括lowerValue和upperValue

    functionrandomFrom(lowerValue,upperValue)

    {

    returnMath.floor(Math.random()*(upperValue-lowerValue+1)+lowerValue);

    }

    //如獲取1-100之間的隨機數

    console.log(randomFrom(1,100));

    4、數組排序

    1、快速排序

    /**

    *得到中間那位那位數,然后循環判斷,arr[i]<中間數則pushleftArr,否則pushrightArr,最后返回left數組'拼接'中間數+right數組

    */

    functionsort(arr){

    if(arr.length<=1){

    returnarr;

    }

    varnumIndex=Math.floor(arr.length/2);

    varnumVal=arr.splice(numIndex,1);

    varleftArr=[];

    varrightArr=[];

    for(vari=0;i<arr.length;i++){

    if(arr[i]<numVal){

    leftArr.push(arr[i]);

    }else{

    rightArr.push(arr[i])

    }

    }

    returnsort(leftArr).concat(numVal,sort(rightArr));

    }

    2、sort排序

    varnum=[7,45,100,4,2,564];

    num.sort(function(a,b){

    returna-b;

    });

    console.log(num)//[2,4,7,45,100,564]

    5、數組去重

    1、indexOf去重

    /**

    *當arr的第一次出現的位置==i則是第一次出現就push到tempArr

    */

    functionunique(arr){

    if(arr.length<=1){

    returnarr;

    }

    vartempArr=[];

    for(vari=0;i<arr.length;i++){

    if(tempArr.indexOf(parseInt(arr[i]))==-1){//-1證明沒有出現過

    tempArr.push(arr[i]);

    }

    }

    returntempArr;

    }

    2、Set去重

    functionSetUnique(array){

    return[...newSet(array)];

    }

    dedupe([1,1,2,3])//[1,2,3]

    6、深度拷貝

    /**

    *深度拷貝

    *使用forin在循環賦值,避免對象引用

    */

    functioncopy(obj){

    if(typeofobj!='object'){

    returnobj;

    }

    varnewObj={};

    for(varattrinobj){

    newObj[attr]=copy(obj[attr]);

    }

    returnnewObj;

    }

“web前端中常用的封裝方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女