看板外化项目总结
項(xiàng)目–看板外化
2021-3-20 15:13:32
分類專欄:vue antd vue
看板外化演示
項(xiàng)目描述:新建需求全景模塊,將各個(gè)業(yè)務(wù)老師給產(chǎn)研提的需求進(jìn)行外化。
技術(shù)棧:vue、ant design vue
項(xiàng)目反思與總結(jié):
router/index.js
Demand/idnex.vue
<template><div><router-view></router-view></div> </template><script>export default {} </script><style lang="scss" scoped></style>scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
當(dāng)scrollTop >= tab距離頁面頂部距離 設(shè)置tab position: fixed
注: 1. 當(dāng)tab置fixed時(shí) tab脫離文檔流 下面元素會(huì)擠上來(突然上前)
解決:1. 給tab一個(gè)高度 2. 當(dāng)tab fixed時(shí)給下面元素一個(gè)大小為tab高度的margin-top
2. 在mounted中使用window.onload增加滾動(dòng)監(jiān)聽 在destoryed鉤子中移除監(jiān)聽 問題:第一次進(jìn)入時(shí)調(diào)用了window.onload 再次進(jìn)入時(shí)不調(diào)用 導(dǎo)致未監(jiān)聽 解決:使用this.nextTick()在下次dom更新循環(huán)后執(zhí)行回調(diào)3.問題:使用echarts圖表導(dǎo)致累加的offsetTop變小解決:在this.nextTick() 在下次dom更新循環(huán)后執(zhí)行回調(diào) 3. 問題:使用echarts圖表 導(dǎo)致累加的offsetTop變小 解決: 在this.nextTick()在下次dom更新循環(huán)后執(zhí)行回調(diào)3.問題:使用echarts圖表導(dǎo)致累加的offsetTop變小解決:在this.nextTick()中綁定滾動(dòng)事件(dom渲染好之后)
注意:只有元素show(渲染完成)才會(huì)計(jì)算入offsetTop,若是中間有元素?cái)?shù)據(jù)需要異步獲取,會(huì)導(dǎo)致最終獲取的offsetTop值偏小
補(bǔ)充:offsetTop獲取元素到頂部的距離(累加): 為什么要累加?
因?yàn)閛ffsetTop返回的是當(dāng)前對(duì)象距離上一層父級(jí)節(jié)點(diǎn)(offsetParent)的距離;
如果元素有多個(gè)父級(jí),則必須要累加
* offsetParent:距離元素最近的一個(gè)具有定位的祖宗元素(relative,absolute,fixed),若祖宗都不符合條件,offsetParent為body。

封裝函數(shù):
position fixed層級(jí)高于relative 但仍未覆蓋relative元素 解決:尋找父元素層級(jí)(若relative的父元素層級(jí)高 則不會(huì)覆蓋)
chorme字體最小限制為12px 解決: 使用css transform 縮小 例9px: font-size:90px; transform: scale(0.1) translate(-930px, -380px); 注:transform: scale 除了縮小 font-size,也會(huì)縮小其他一些屬性,例如整個(gè)字體的長寬,需要進(jìn)一步調(diào)整它的位置等屬性
css中圖片頂對(duì)齊 文字底對(duì)齊: 若想讓文字與圖片底對(duì)齊 文字樣式:vertical-align : bottom
制作遮罩層 使用opacity及background 問題:遮罩層上的元素背景色也變成透明色了 解決:使用background: rgba() 問題:顯示遮罩層 下面層級(jí)還可以滾動(dòng) 解決:遮罩層顯示時(shí) 給body加類名 document.getElementsByTagName("body")[0].className = “hidden” .hidden{ height: 100%; overfloe:hidden; }
(注:.hidden要與body并列編寫)
vue如何使容器內(nèi)不定高的元素垂直居中 父容器設(shè)置display: flex;
方法一:
width: 40px; height: 40px; position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto;方法二:
display: flex; align-items: center; justify-content: center;總結(jié)