用laya開發時,策劃提出需求,要修改特效的顯示層級。注意,這次要修改層級的特效,並不是本來就在父容器上的,而是後來手動新增的,之前做的修改層級都是直接修改子元素的層級,直接修改zorder就完事了。之前已經做過類似的調整層級的問題,上來直接就用_zorder,結果發現,專案執行後,控制台的層級資料是正確的,但是顯示出來的層級存在問題,手動修改控制台的zorder後,顯示效果被重新整理,顯示效果達到預期效果。猜想可能是設定層級之後,沒有進行層級重新整理,查laya api,得到updatezorder,根據zorder進行重新排序,新增到**中之後,表現達到預期。
驗證後,發現確實如此,addchild新增的元素會預設顯示在最頂層。至於原因,addchild方法新增的子元素會被顯示在最頂層。
node類addchild()方法原始碼如下,arr用的push新增node ,直接新增到最上層顯示
/**
* 新增子節點。
* @param node 節點物件
* @return 返回新增的節點
*/public function addchild(node:node):node
_childchanged();
}} else
return node;
}
layabox的顯示物件在舞台上顯示之前,還需要有乙個過程,那就是先新增到顯示列表中。顯示列表的作用就是將顯示物件進行資料索引,用於層級的顯示順序(後新增的在最上層顯示),然後在舞台上顯示。所以,addchild新增的子元素會被顯示在最頂層,
updatezorder之後,就能顯示為預期的層級順序了
jquery 建立元素和新增子元素
一 建立新元素 1 使用 函式建立新元素 var newelement 段落 建立元素,返回jquery物件 說明 其插入位置為某個元素的最後乙個子元素 2 返回的jquery物件中只包含html片段最頂層 外層 的元素,對於後代元素我們可以像處理頁面中已有元素一樣,使用 children或find...
對已存在的標籤元素新增子元素
請選擇 北京市天津市 河北省 使用父元素.parentnode.replacechilde 替換的元素,父元素 獲取省份元素物件 let select provs document.queryselector select name provs 監聽省份元素改變 select provs.oncha...
z index設定完後,元素仍然無法在頂層顯示
如下兩步檢查 檢查position屬性。z index只能在position屬性值為relative或absolute或fixed的元素上有效。觀察跟需要覆蓋元素是否已不在同乙個父節點中。我們通常都是在同乙個父節點的子節點中設定z index值,所以可以控制子節點相互覆蓋的情況,但有時候,子節點超出...