鍍金池/ 問答/ HTML問答
女流氓 回答

為了兼容IE(9-11),需要引入es2015,

其中: 'babel-polyfill',babel-preset-es2015需要通過npm 安裝,加到package.json里

尐飯團 回答

fillNumberInOneArray 將數(shù)字 m 填入到 第 n 個小宮格中,為什么要隨機選一個位置放呢?后期快放滿的時候,沖突的概率越來越大,根本不收斂的呀。你都能 judgeElse 了,為什么不能在生成 random 坐標(biāo)之前就排除一下已經(jīng)放了數(shù)字的格子呢?這一步浪費的效率不計其數(shù),甚至導(dǎo)致了算法有極大可能無法停止。9個格子有一個空位,用random去撞這個空位置,那有 8/9 的概率撞不到,一直死循環(huán)。

已經(jīng)被占的格子提前排除,這是其一。其二,假設(shè)小9宮格都剩下3個格子,需要放 7 了對吧,隨機一下,得到一個空格子,檢查了一下橫豎,發(fā)現(xiàn)不能放,接下來你需要標(biāo)記這個格子不可用,否則下次再 random 還有 1/3 的概率打中這個不可用的格子,導(dǎo)致算法不收斂。犯過的錯,為什么下次還要繼續(xù)犯?下次你就該排除掉它,在剩下的選項里挑,否則這次試錯就沒有意義啦,那這就不是算法,完全就是在碰運氣。

function calculateCoordinate(position,n) 也可以精簡一下,沒必要那么多 switch-case:

function calculateCoordinate(position, n) {
  // 先計算九宮格是幾排幾列的九宮格, 我們把數(shù)獨看成是 3*3 的9個9宮格
  var nx = n % 3;
  var ny = Math.floor(n / 3); 

  var px = position % 3;
  var py = Math.floor(position / 3);
  // 同樣的套路處理小9宮格內(nèi)的坐標(biāo),
  
  // 轉(zhuǎn)換一下坐標(biāo)系
  var returnX = px + nx * 3; 
  var returnY = py + ny * 3;
  return [returnY, returnX];
}
妖妖 回答

應(yīng)該這么講:如果你寫了一個css,完全只依賴于vh, vw,而完全不設(shè)置max-height, max-width的話,那么你的這些頁面元素的寬度和高度會隨著窗口的大小而變化,在屏幕非常大的時候,元素可能會變得非常大,屏幕非常小的時候,元素會變得非常小。

但是誰會那么傻,只設(shè)置vw而不設(shè)置max-width呢?所以其實這個假設(shè)的意義并不大。我們當(dāng)然會設(shè)置width: 100vw; max-width: 960px,當(dāng)屏幕寬度小于960px的時候,就占滿整個屏幕,屏幕寬度大于960px的時候,就最多960px,或者再結(jié)合上min-width等等,如果想搞得再復(fù)雜一些,還有@media query可以使用。具體怎么用,完全看個人對css掌握的精通程度了。

雨蝶 回答

setState中很重要的三個功能是:

  1. 合并state
  2. 觸發(fā)調(diào)和算法和render
  3. 批量更新

而且并不是說只有setState才可以改變state。

瘋子范 回答

純js實現(xiàn):
html

<div class="a ">11</div>
<div class="b ">11</div>
<div class="c ">11</div>

css

.b{
  background:red;
}

js

function addClass (elements,className){
        for (var i=0;i < elements.length;i++){
            var element = elements[i];
            if(!element.className.match(new RegExp('(\\s|^)'+className+'(\\s|$)'))){
                element.className +=' '+className;
            }
        }
    }
var elements = document.getElementsByTagName("div");
addClass(elements,"b");

更新

(setAttr 不覆蓋原來屬性,如果需要覆蓋修改下代碼即可)

function getAttr(element,attrName){
                if(typeof element!='object'||typeof attrName!='string') return;
                return attrName =='class'? element.className:element.getAttribute(attrName);
 }

function setAttr (element,attrName,attrValue){
                if(typeof element !='object'|| typeof attrName!='string' || typeof attrName!='string') return;
                            var _attrValue = getAttr(element,attrName);
                            if(!_attrValue){
                                    _attrValue =  attrValue;
                            }else if(!_attrValue.match(new RegExp('(\\s|^)'+attrValue+'(\\s|$)'))){
                                   _attrValue = _attrValue + ' ' + attrValue;
                                }
                            attrName == 'class'? element.className=_attrValue:element.setAttribute(attrName,_attrValue);

                        
 }

var element = document.getElementsByTagName("div")[0];
setAttr(element,"class","b");

setAttr(element,"id","b");

setAttr(element,"id","b c");

更新

封裝為類似jquery的調(diào)用方式


function MyJquery(selector){ //這里演示,只實現(xiàn)id選擇器
    this.element = document.getElementById(selector);
}

MyJquery.prototype.getAttr = function (attrName){
                if(typeof attrName!='string') return;
                return attrName =='class'? this.element.className:this.element.getAttribute(attrName);
 };
     
MyJquery.prototype.setAttr = function (attrName,attrValue){
                if(typeof attrName!='string' || typeof attrName!='string') return;
                 var _attrValue = this.getAttr(attrName);
                  if(!_attrValue){
                                        _attrValue =  attrValue;
                                    }else if(!_attrValue.match(new RegExp('(\\s|^)'+attrValue+'(\\s|$)'))){
                                        _attrValue = _attrValue + ' ' + attrValue;
                                    }
                  attrName == 'class'? this.element.className = _attrValue:this.element.setAttribute(attrName, _attrValue);
                        
 };
         
             
 var $ = function (selector) {
            return new MyJquery(selector);
}
$("aa").setAttr("class","b");
     
不歸路 回答

(MDN)[https://developer.mozilla.org...]

MDN 解釋

注意事項

當(dāng)加載自不同域的腳本中發(fā)生語法錯誤時,為避免信息泄露(參見bug 363897),語法錯誤的細節(jié)將不會報告,而代之簡單的"Script error."。在某些瀏覽器中,通過在<script>使用crossorigin屬性并要求服務(wù)器發(fā)送適當(dāng)?shù)?CORS HTTP 響應(yīng)頭,該行為可被覆蓋。一個變通方案是單獨處理"Script error.",告知錯誤詳情僅能通過瀏覽器控制臺查看,無法通過JavaScript訪問。

舊顏 回答

為什么你的箭頭函數(shù)沒有被編譯呢? 你檢查下原因,有可能是因為這個

雨萌萌 回答

檢測下兩者的Content-Type/Content-Disposition。

https://stackoverflow.com/que...

Content-Type: application/octet-stream
Content-Disposition: attachment; filename="picture.png"
Means "I don't know what the hell this is. Please save it as a file, preferably named picture.png".

Content-Type: image/png
Content-Disposition: attachment; filename="picture.png"
Means "This is a PNG image. Please save it as a file, preferably named picture.png".

Content-Type: image/png
Content-Disposition: inline; filename="picture.png"
Means "This is a PNG image. Please display it unless you don't know how to display PNG images. Otherwise, or if the user chooses to save it, we recommend the name picture.png for the file you save it as".

司令 回答

justify-content: flex-start;不可以嗎?主要不理解多區(qū)塊靠左置中什么意思。

茍活 回答

antd另外更簡潔一種方式,clipboard.png,引入組件的時候不需要引入css,推薦一個github項目webpack4+antd

青瓷 回答
const gatewayB2c = [{
      "singlemaxamt": "9999999999999",
      "biztype": "1201",
      "singleminamt": "0.01",
      "bankcode": "000000",
      "bankname": "招商銀行",
      "cdflag": "A"
    }];

    let data = [];
    gatewayB2c.forEach(function (item) {
      for (let [key, value] of Object.entries(item)) {
        var obj = {
          name: key,
          value: value
        };
        data.push(obj);
      }
    });

    console.log(data);

圖片描述

冷眸 回答

我暫時修改react-native源碼防止它中斷程序,暫時沒有問題,但這不是解決方法,希望Facebook官方可以修復(fù)好這個bug。

尐懶貓 回答

實際上是要干嘛? 我覺得這個需求不合理

離魂曲 回答

你的路由需要配置,異步加載

通過transform來寫動畫,不要用top,當(dāng)頁面在滾動時,調(diào)整translate值就行了

補充:

var test = $('#test'),
    bodyScroll = 0;
$(window).on('scroll',function(){
     bodyScroll = $(window).scrollTop();
});

function loop(){
    requestAnimationFrame(loop);
    test.css("top",bodyScroll + 100 + "px");
};

requestAnimationFrame(loop);
膽怯 回答

增加 flexWrap: 'wrap',
設(shè)置 flex 為 可以換行

薔薇花 回答

在HTML模板中,$emit傳入的自定義事件名稱全部小寫。