免费国产欧美国日产_少妇AV一区二区三区无码_蜜桃精品av无码喷奶水小说_jk18禁网站视频_精产国品一二三级产品区别_被夫の上司に犯波多野结衣_78m成人手机免费看_最爽最刺激18禁视频_偷偷色噜狠狠狠狠的777米奇

易優(yōu)GEO 重磅上線 ~ 一站式GEO優(yōu)化工具,讓豆包、文心一言、DeepSeek 在回答中主動(dòng)推薦你的品牌,搶占AI流量入口!  點(diǎn)擊查看

小程序模板網(wǎng)

前端開(kāi)發(fā)常見(jiàn)問(wèn)題精選(三)

發(fā)布時(shí)間:2018-04-25 09:29 所屬欄目:小程序開(kāi)發(fā)教程

一、如何禁止微信h5頁(yè)面默認(rèn)下拉,并且同時(shí)頁(yè)面局部可滾動(dòng)?

眾所周知,微信瀏覽器默認(rèn)是可以上拉和下拉的,就像下面這樣:

然而,有時(shí)候我們需要禁止它,那該怎么做呢?

1. 禁止頁(yè)面的touchmove事件

document.addEventListener('touchmove',function(e){
    e.preventDefault();
});

該方法簡(jiǎn)潔明了,但是問(wèn)題來(lái)了,瀏覽器默認(rèn)下拉是禁掉了,可頁(yè)面卻不能滑動(dòng)了。因此,該方法只適用于在單屏內(nèi)能夠顯示全內(nèi)容的頁(yè)面。

2. 使用iScroll.js插件

該方法才是真正要提到的,既可以禁止瀏覽器默認(rèn)下拉,也能同時(shí)讓頁(yè)面局部可滾動(dòng)。

使用iScroll.js插件時(shí)需要注意一下幾點(diǎn):

① 調(diào)用該插件的對(duì)象元素只能存在一個(gè)子元素,也就是說(shuō)如果在滾動(dòng)區(qū)域中存在多個(gè)子元素,需要使用一個(gè)元素來(lái)包裹它們。
② 調(diào)用該插件的對(duì)象元素樣式中最好不要設(shè)置外邊距,否則可能出現(xiàn)寬高計(jì)算不準(zhǔn)確的情況。
③ 使用該插件的默認(rèn)狀態(tài)下,滾動(dòng)區(qū)域內(nèi)的按鈕、鏈接等一切可點(diǎn)擊元素均失效,如需恢復(fù)正常點(diǎn)擊,可以配置options.click為true。

iScroll.js插件的具體用法可以參考:http://wiki.jikexueyuan.com/project/iscroll-5/。

二、Less中寫(xiě)border-radius時(shí)用到 “/” 時(shí)該如何處理?

不知道大家現(xiàn)在寫(xiě)CSS是怎么寫(xiě)呢?是直接寫(xiě)原生的CSS,還是使用像Sass或Less這樣的預(yù)編譯語(yǔ)言呢?

如果你是習(xí)慣使用Less,那么遇到border-radius中的 “/” 該如何處理呢?

大家可能都知道border-radius有很多種寫(xiě)法,不知道的話可以看《你不知道的CSS3圓角》這篇文章,其中有比較詳細(xì)的介紹。然而,如果是在Less中直接寫(xiě) “/” 可不行,因?yàn)樗鼤?huì)被認(rèn)為是個(gè)除號(hào)而直接參與運(yùn)算了。這時(shí)的解決方法就是使用 e(“/”) 來(lái)替代,比如像下面這樣:

//Less代碼
.box{ border-radius: 5px e("/") 10px;}
//編譯后的CSS代碼
.box{ border-radius: 5px / 10px;}

三、Less中如何寫(xiě)循環(huán)?

Less中的循環(huán)其實(shí)就像是其他編程語(yǔ)言中通常意義上的遞歸調(diào)用,用法如下:

.loop(@n, @i:1) when (@i <= @n){    // 此處僅為函數(shù)定義
  .loop(@n,@i+1);
}
.loop(4);    // 此處為函數(shù)調(diào)用,代表循環(huán)4次

其中l(wèi)oop是方法名,可以由自己喜好定義,i 是循環(huán)因子,n 是循環(huán)次數(shù)。比如想要給列表元素有規(guī)律地依次設(shè)置不同大小,可以這樣寫(xiě):

//Less代碼
.loop(@n, @i:1) when (@i <= @n){    // 此處僅為函數(shù)定義
  li:nth-child(@{i}){     // 注意此處需用 {} 將 i 括起
      width: @i*100px;
      height: @i*100px;
  }
  .loop(@n,@i+1);
}
.loop(4);
//HTML代碼
       
  •  
  •    
  •  
  •    
  •  
  •    
  •  

這時(shí)四個(gè) li 元素的寬高分別為 100、200、300和400。

四、如何將一個(gè)數(shù)組中的元素全部賦值給另外一個(gè)數(shù)組?

你可能會(huì)想,這還不簡(jiǎn)單,將 a 數(shù)組直接賦值給 b 數(shù)組不就行了嗎? 就像下面這樣:

var a = [1,2,3];
var b = a;

實(shí)際上通過(guò)這種方式賦值只不過(guò)是將 a 數(shù)組所在地址賦值給了 b,如果 b 中元素改變其實(shí)也就改變了 a 元素,那么該如何保證賦值操作之后改變 b 而不會(huì)影響 a 呢?

其實(shí)這里就涉及到的深拷貝和淺拷貝的區(qū)別了。

簡(jiǎn)單來(lái)說(shuō),淺拷貝其實(shí)就是簡(jiǎn)單地對(duì)地址的賦值,上面例子就是淺拷貝。

而這里我們要說(shuō)的是數(shù)組的深拷貝,也就是開(kāi)辟一個(gè)新的存儲(chǔ)地址,然后將 a 數(shù)組中的所有元素存入該新地址中,最后將 b 指向該地址。

具體實(shí)現(xiàn)其實(shí)非常簡(jiǎn)單:

b = [].concat(a);

我們知道,JS數(shù)組方法中的concat()是用于合并兩個(gè)數(shù)組的,返回的是一個(gè)新的數(shù)組。

以上是我在工作當(dāng)中所遇到的一些問(wèn)題總結(jié),在此與大家共勉!



易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開(kāi)源 碼云倉(cāng)庫(kù):starfork
本文地址:http://m.szcjxy.com/wxmini/doc/course/23984.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢: 點(diǎn)擊咨詢
在線客服