你可以看下前臺的html機(jī)構(gòu) 后臺只要返回相應(yīng)格式的json數(shù)據(jù)然后動態(tài)創(chuàng)建js創(chuàng)建html即可

新余網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,新余網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為新余上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的新余做網(wǎng)站的公司定做!
將整個系統(tǒng)看做這樣一個物理系統(tǒng):質(zhì)點(diǎn)和橡皮筋的系統(tǒng);橡皮筋有個自然長度Length,當(dāng)橡皮筋被拉長時產(chǎn)生彈力T;任意2個質(zhì)點(diǎn)間存在反萬有引力G(簡單的說就是質(zhì)量產(chǎn)生斥力,和物理系統(tǒng)相反)。當(dāng)斥力和彈力平衡的時候,布局就結(jié)束了,算法簡單描述如下:
設(shè)系統(tǒng)為G(V,E);
for (vi in V) {
vi.x = random ();
vi.y = random ();
}
while (未平衡) {
for (ei(vx, vy) in E) {
Fx += T(ei, vx, vy);
Ty += T(ei, vy, vx);
}
for (vi in V) {
for (vj in V) {
if (i == j) 跳過
Fi += G (vi, vj);
}
}
for (fi in F) {
vi.x = |fi| * cos(fi.angle);
vi.y = |fi| * sin(fi.angle);
}
}
其中彈力公式T(e, vi, vj)遵循胡克定律:F = Length(e) Length ? K * (Length(e) - Length) : 0; K 為胡克常數(shù),酌情取值
萬有引力公式G(vi, vj)遵循牛頓萬有引力定律,但方向相反:
F = -G * Mass(vi) * Mass(vj) / (Distance(vi, vj) * Distance(vi, vj)); G 為萬有引力常數(shù),酌情取值,Mass(v)為質(zhì)點(diǎn)v的質(zhì)量,可直接去定點(diǎn)的邊數(shù);Distance(vi, vj)為質(zhì)點(diǎn)vi 和vj之間的距離,根據(jù)勾股定理可到。
系統(tǒng)平衡的標(biāo)準(zhǔn):合彈力=合斥力,表現(xiàn)為v.x和v.y不再發(fā)生變化或震動
注意:當(dāng)隨機(jī)初始化后,可能產(chǎn)生2個質(zhì)點(diǎn)重疊的現(xiàn)象,這時2質(zhì)點(diǎn)間的斥力可用常數(shù)替代,方向隨機(jī)。若質(zhì)點(diǎn)無質(zhì)量,可使用一個小常數(shù)替代,如.0005
這是因?yàn)閳D片還沒加載完的時候執(zhí)行了布局。所以出現(xiàn)了這個問題。
要等到圖片加載完再布局。
或者設(shè)置圖片的高度(如果你提前知道寬高,這個應(yīng)該是最好的)。
或者window的onload事件觸發(fā)之后再布局(這時候圖片都加載完了)。
項(xiàng)目中常用的吸頂效果,如果頁面沒有固定定位的元素是比較容易實(shí)現(xiàn)的,但是如果頁面結(jié)構(gòu)比較復(fù)雜會有兼容性問題
常見兼容性問題:吸頂元素?zé)o法固定,會隨著頁面滾動抖動
解決方案:頁面整體為彈性布局,中間加載部分自適應(yīng)高度,總體結(jié)構(gòu)為 頂部固定+內(nèi)容+底部固定
注意整體彈性布局的時候如果要實(shí)現(xiàn)吸頂效果,必須將定位元素放到flex=1元素的外層,吸頂?shù)脑匦枰脙蓚€div,一個是正常顯示的,一個是滾動到一定高度固定到頂部的
html:
div class="wrap" id="wrapId"
div class="isFixed" v-if="is_fixed"
? ? div class="topBar" id="fixedTopFixed" ref="topBar"
? ? ? ? div class="item" v-for="(item,index) in barList" 吸頂內(nèi)容/div
? ? /div
/div
div class="flexWrap" :class="is_fixed? 'wrapTop' : 'flex'"
? ? ? ? div class="myScroll" v-infinite-scroll="loadMore" infinite-scroll-throttle-delay="500" infinite-scroll-immediate-check="true" infinite-scroll-disabled="busy" infinite-scroll-distance="50"
? ? ? ? div class="flexContent"
? ? ? ? ? ? div class="top" ref="top"
? ? ? ? ? ? ? ? div class="banner"img src="../../../assets/images/文件名/banner.jpg" alt="" srcset=""/div
? ? ? ? ? ? ? ? div class="topBar" id="fixedTop" ref="topBar" v-show="!is_fixed"
? ? ? ? ? ? ? ? ? ? div class="item" v-for="(item,index) in barList" @click="tab(index,item)"
? ? ? ? ? ? ? ? ? ? 不吸頂時展示的內(nèi)容
? ? ? ? ? ? ? ? ? ? /div
? ? ? ? ? ? ? ? /div
? ? ? ? ? ? /div
? ? ? ? ? div class="scrollContent" id="wrap-content" ref="contentH"
? ? ? ? ? ? ? ? div class="memberList" v-show="infoList.length0" id="content"
? ? ? ? ? ? ? ? ? ? div class="myScroll" v-infinite-scroll="loadMore" infinite-scroll-throttle-delay="500" infinite-scroll-immediate-check="true" infinite-scroll-disabled="busy" infinite-scroll-distance="10"
? ? ? ? ? ? ? ? ? ? ? ? div class="memberItem" v-for="(item,index) in infoList"
? ? ? ? ? ? ? ? ? ? ? ? ? ? 加載內(nèi)容
? ? ? ? ? ? ? ? ? ? ? ? /div
? ? ? ? ? ? ? ? ? ? ? ? div class="loading" v-if="loading"
? ? ? ? ? ? ? ? ? ? ? ? ? ? span id="load-text"{{loadText}}/span
? ? ? ? ? ? ? ? ? ? ? ? /div
? ? ? ? ? ? ? ? ? ? /div
? ? ? ? ? ? ? ? /div
? ? ? ? ? ? ? ? div class="empty" v-show="noData"最新達(dá)成情況正在更新中...請稍后再來~/div
? ? ? ? ? ? /div
? ? ? /div
? /div
/div
div class="footer"底部固定/div
/div
js:
data: {
return {
? ? busy: false,
? ? pageNum: 1,
? ? pageSize: 10,
? ? loading: false,
? ? noData: false,
? ? infoList: []
}
}
mounted() {
!--監(jiān)聽滾動--
that.$nextTick(() = {
? ? let scrollDOM = document.querySelector('.flexContent')
? ? scrollDOM.addEventListener('scroll',that.handleScroll)
})
},
methods: {
handleScroll () {
? ? let scrollDOM = document.querySelector('.flexContent')
? ? let scrollTop = scrollDOM.scrollTop;
? ? !--計(jì)算滾動高度--
? ? let clientHeight = document.documentElement.clientHeight
? ? if (scrollTop document.querySelector('.banner').offsetHeight) {
? ? ? ? this.is_fixed = true;
? ? } else {
? ? ? ? this.is_fixed = false;
? ? }
},
!--//觸發(fā)加載--
loadMore() {
? ? if(this.pageNumthis.pages) {
? ? ? ? this.loading = true
? ? ? ? this.pageNum+=1
? ? ? ? this.busy = true
? ? ? ? this.loadData(接口參數(shù),this.pageNum)
? }
},
//加載時觸發(fā)的接口調(diào)用
loadData() {
? ? api.XXX({},function(success,data,err){
? ? ? ? if(success) {
? ? ? ? ? ? if(data.status==200) {
? ? ? ? ? ? //加載邏輯判斷
? ? ? ? ? ? ? ? if(data.body.list.length0 pageNum0){
? ? ? ? ? ? ? ? ? ? that.infoList = that.infoList.concat(data.body.list)
? ? ? ? ? ? ? ? ? ? that.loading = false
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? if(pageNum==data.body.pages || data.body.list20) {
? ? ? ? ? ? ? ? ? ? that.loading = true
? ? ? ? ? ? ? ? ? ? that.loadText = '沒有更多數(shù)據(jù)了'
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? if(pageNum==1 data.body.list.length==0) {
? ? ? ? ? ? ? ? ? ? that.noData = true
? ? ? ? ? ? ? ? ? ? that.infoList = []
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? })
}
}
css:
.isFixed {
width: 100%;
height: 1rem;
position: absolute;
top: 0;
left: 0;
z-index: 100;
}
.myScroll {
height: 100%;
}
.wrap {
width: 7.5rem;
margin: auto;
height: 100%;
overflow: hidden;
display: flex;
flex-direction: column;
}
.flex {
flex: 1;
}
.wrapTop?{
padding-top:0.45rem;
}
.flexWrap {
width: 100%;
height: 100%;
}
.flexContent {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
overflow: scroll;
-webkit-overflow-scrolling: touch;
}
.top {
.banner {
? ? position: relative;
? ? img {
? ? ? ? width: 100%;
? ? ? ? display: block;
? ? }
? ? .month {
? ? ? ? position: absolute;
? ? ? ? bottom: 0.33rem;
? ? ? ? left: 0.45rem;
? ? ? ? color: #fff;
? ? ? ? font-size: 0.45rem;
? ? }
}
}
.scrollContent {
width: 100%;
background: #fff;
flex: 1;
-webkit-overflow-scrolling: touch;
.memberList {
? ? height: 100%;
? ? padding-top: 0.2rem;
}
}
.footer {
position: fixed;
bottom: 0;
width:7.5rem;
margin: auto;
height:auto;
background:rgba(0,0,0,.7);
}
JS和CSS有區(qū)別,沒有JS布局的說法,JS的作用是制作動.態(tài)網(wǎng)頁效果等,是提高用戶體驗(yàn)的利器!而CSS是定義網(wǎng)頁樣式,讓網(wǎng)頁元素更好的表現(xiàn)給用戶,好的的網(wǎng)頁表現(xiàn)形式也能提高用戶體驗(yàn)!
新聞名稱:布局javascript,布局建設(shè)大型煤炭儲配基地打造西南地區(qū)煤炭保供中心
文章起源:http://chinadenli.net/article11/dsisedd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、移動網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、定制網(wǎng)站、品牌網(wǎng)站制作、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)