当前位置: 首页 > wzjs >正文

宁夏网页设计网站建站快车加盟

宁夏网页设计网站,建站快车加盟,wordpress插件开发教程,网站后台注入文章目录背景思路页面情况核心代码小结效果背景 1. 后台接口只是动态返回一个数组的数据,前端需要根据数据量的大小判断是否需要分页,页面高度固定2. 页面根据页数大小有不同的展示a. 只有一页 头部 内容 统计 尾部b. 多页i. 第一页 头部 内容 尾…

文章目录

    • 背景
    • 思路
    • 页面情况
    • 核心代码
    • 小结
    • 效果

背景

   1. 后台接口只是动态返回一个数组的数据,前端需要根据数据量的大小判断是否需要分页,页面高度固定2. 页面根据页数大小有不同的展示a. 只有一页  头部 + 内容 + 统计 + 尾部b. 多页i.  第一页 头部 + 内容 + 尾部ii. 中间页 内容 + 尾部iii. 最后一页 内容 + 统计 + 尾部

思路

	1. 先判断是否一页能满足 如果能满足 不做数据处理2. 不满足则肯定是多页a. 先计算第一页的逻辑,将数组分为[第一页数据, 剩余数据]b. 剩余数据只有两种情况i. 符合尾页逻辑 直接将剩余数据放入最后一页ii. 不符合尾页逻辑 递归实现中间页

页面情况

 s1 只有一页  不需要操作s2 多页a. 第一页因为要显示头部  所以高度为  540 - 50b. 中间页只显示内容      所以高度为  540c. 尾页因为要显示统计    所以高度为  540 - 50

核心代码

<template><div class="container"><div class="page" v-for="(list, index) in lists" :key="index"><div class="top" v-if="index === 0"><VHead /></div><div class="middle"><VTable :item="list" /><VTotal v-if="index === lists.length - 1" /></div><div class="bottom"><VFooter /></div></div></div>
</template><script setup>
import { ref, onMounted, nextTick } from 'vue'
import VHead from './components/VHead.vue'
import VTable from './components/VTable.vue'
import VTotal from './components/VTotal.vue'
import VFooter from './components/VFooter.vue'
import { init } from './data/index.js'const HEIGHT = 540const list = init(5)
const lists = ref([])const render = async () => {lists.value = [list]await nextTick()calculatePages()
}const getTrs = () => {const trEls = document.querySelectorAll('.v-table tbody tr')let trHeights = []for (let i = 0; i < trEls.length; i++) {trHeights.push(trEls[i].offsetHeight)}const trHeightsTotal = trHeights.reduce((acc, cur) => acc + cur, 0)return {trHeights,trHeightsTotal}
}const calculatePages = () => {const isSiglePage = getIsSinglePage()if (!isSiglePage) {const remainIndex = calculateFirstPage()lists.value = [list.slice(0, remainIndex)]calculateOtherPages(remainIndex)}
}const getIsSinglePage = () => {const { trHeightsTotal } = getTrs()if (trHeightsTotal + 100 > HEIGHT) {return false}return true
}const calculateFirstPage = () => {const { trHeights } = getTrs()const maxHeight = HEIGHT - 50let total = 0let index = 0for (let i = 0; i < trHeights.length; i++) {if (total + trHeights[i] > maxHeight) {break}total += trHeights[i]index = i}return index
}const calculateOtherPages = (remainIndex) => {const { trHeights } = getTrs()const remainTrHeights = trHeights.slice(remainIndex)const remainTrTotal = remainTrHeights.reduce((acc, cur) => acc + cur, 0)if (remainTrTotal + 50 > HEIGHT) {let total = 0let index = 0for (let i = remainIndex; i < trHeights.length; i++) {if (total + trHeights[i] > HEIGHT) {break}total += trHeights[i]index = i}if (index) {lists.value.push(list.slice(remainIndex, index))calculateOtherPages(index)}} else {lists.value.push(list.slice(remainIndex))}
}onMounted(() => {render()
})
</script><style lang="scss" scoped>
.container {display: flex;flex-direction: column;
}.page {width: 800px;height: 590px;border: 1px solid #ccc;display: flex;flex-direction: column;justify-content: space-between;margin-bottom: 2px;overflow: hidden;.top,.bottom {height: 50px;}.middle {flex: 1;overflow: hidden;}
}
</style>

小结

最开始想的是通过AI实现,经过多次测试发现AI实现的有很多缺陷,甚至需求都不明白,最后只能自己一步一步实现,想了很多方案,最终在此方案下符合需求。
如果有更好的方案,欢迎交流

效果

在这里插入图片描述
在这里插入图片描述

完整代码


文章转载自:

http://OJwPPP9a.Lkbyq.cn
http://XTAxllI9.Lkbyq.cn
http://xK6V495N.Lkbyq.cn
http://Bczx2Gin.Lkbyq.cn
http://vgJUQ6KY.Lkbyq.cn
http://dlkAKBFq.Lkbyq.cn
http://0gT1tKJE.Lkbyq.cn
http://LFwlw6ou.Lkbyq.cn
http://wa7tut4T.Lkbyq.cn
http://5X5K1Ys4.Lkbyq.cn
http://ToSuxnNc.Lkbyq.cn
http://70CNH62Y.Lkbyq.cn
http://CdZ8rvDS.Lkbyq.cn
http://bASmIQHW.Lkbyq.cn
http://n2OtfIsM.Lkbyq.cn
http://W4uSVOIv.Lkbyq.cn
http://TcvWO6cS.Lkbyq.cn
http://vwY1R1MZ.Lkbyq.cn
http://O3UeswBZ.Lkbyq.cn
http://n2C65o1c.Lkbyq.cn
http://nWJUJ5k9.Lkbyq.cn
http://5ezE2gik.Lkbyq.cn
http://GnlCkLtr.Lkbyq.cn
http://VmzEKReG.Lkbyq.cn
http://J8uMW7Zu.Lkbyq.cn
http://P6BgbuRy.Lkbyq.cn
http://MrwPRa5X.Lkbyq.cn
http://NRCuMUDY.Lkbyq.cn
http://GqnmzGtz.Lkbyq.cn
http://sCxlZQ22.Lkbyq.cn
http://www.dtcms.com/wzjs/672409.html

相关文章:

  • 建设部2018年工作要点网站泉州公司网站建设
  • 做app网站公司哪家好标书制作是干啥的
  • 手机网站制作案例wordpress对seo
  • 网站导购话术免费制作论坛网站模板
  • 惠州建设银行网站网站建设需要学编程吗
  • 相册网站怎么做的选择建设网站公司要注意什么
  • 文字网站居中无锡网站建设哪家公司比较好
  • 西安异构国际设计郑州网站建设优化
  • 网站做的漂浮为什么不动小型电商网站模板
  • php 社交网站模板源码互联网产品运营
  • 怎么做关于花的网站网站域名解析页面
  • 企业做网站需要注意事项创建网站收费
  • 网站uv pv什么是新零售
  • 计算机网站模板南京 招网站开发
  • 手机网站seo教程下载房屋设计找什么公司
  • dw怎么建设网站网络科技有限公司名字
  • 销售网站页面特点广西住房和城乡建设门户网站
  • 在社交网站开发外国客户wordpress 音乐下载主题
  • 怎么做一个网站的logo设计图网站开发需要多钱
  • 做3d动画的斑马网站海珠区专业做网站公司
  • 镇江建设质量监督站网站网站建设与维护很累吗
  • 有网站源码如何搭建自己的网站百度推广是怎么做的
  • 宿迁做网站公司哪家好装修公司设计图
  • 门户网站建设的平台wordpress反应好慢
  • 这里是我做的网站初学者怎么制作平面图
  • 深圳网站设计是什么湖南人文科技学院在哪个城市
  • 交互型网站难做吗自建站成本
  • 河北建设教育培训网站qq网页登录
  • 江干区网站建设网站问题解决
  • 泰安北京网站建设定西兰州网站建设