您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“web前端中常用的封裝方法是什么”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
1、放大鏡
//頁面加載完畢后執(zhí)行
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>親~~沒有數(shù)據(jù)哦~~~</h3>';
}
}
window.onload=function(){
varoBtn=document.getElementById('btn');
variNow=0;
oBtn.onclick=function(){
//動態(tài)添加script標(biāo)簽加載URL地址后傳入callback=fn1輸出一個函數(shù),在上面則定義好這個函數(shù),接受一個data就是資源json類型,循環(huán)輸出,可先console.log(dara)查看數(shù)據(jù)
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);
//點(diǎn)擊一次+10,從多少開始獲取
iNow+=10;
}
}
3、獲取指定區(qū)間范圍隨機(jī)數(shù),包括lowerValue和upperValue
functionrandomFrom(lowerValue,upperValue)
{
returnMath.floor(Math.random()*(upperValue-lowerValue+1)+lowerValue);
}
//如獲取1-100之間的隨機(jī)數(shù)
console.log(randomFrom(1,100));
4、數(shù)組排序
1、快速排序
/**
*得到中間那位那位數(shù),然后循環(huán)判斷,arr[i]<中間數(shù)則pushleftArr,否則pushrightArr,最后返回left數(shù)組'拼接'中間數(shù)+right數(shù)組
*/
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、數(shù)組去重
1、indexOf去重
/**
*當(dāng)arr的第一次出現(xiàn)的位置==i則是第一次出現(xiàn)就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證明沒有出現(xiàn)過
tempArr.push(arr[i]);
}
}
returntempArr;
}
2、Set去重
functionSetUnique(array){
return[...newSet(array)];
}
dedupe([1,1,2,3])//[1,2,3]
6、深度拷貝
/**
*深度拷貝
*使用forin在循環(huán)賦值,避免對象引用
*/
functioncopy(obj){
if(typeofobj!='object'){
returnobj;
}
varnewObj={};
for(varattrinobj){
newObj[attr]=copy(obj[attr]);
}
returnnewObj;
}
“web前端中常用的封裝方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。