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

兰州网站建设 冰雨优秀网站设计网站

兰州网站建设 冰雨,优秀网站设计网站,模板网站建设教程,网站开发微信端目录 1,效果图2,实现思路3,实现方式 1,效果图 可以拖动纵向滑块,最左边一列固定住。 以同样的道理,可以在右面固定一列 2,实现思路 作为一个table组件,要接受父组件中的对table的…

目录

    • 1,效果图
    • 2,实现思路
    • 3,实现方式

1,效果图

可以拖动纵向滑块,最左边一列固定住。
以同样的道理,可以在右面固定一列
在这里插入图片描述

2,实现思路

作为一个table组件,要接受父组件中的对table的数据定义以及对每一个列的数据定义。

因此要实现固定列,就要对父组件传来的每一列的数据进行筛选。
主要的步骤:
1, 用fixed来标记每一列的固定状态。
2,对父组件传来的每一列的数据进行筛选
3,将左固定列,右固定列,主列分别保存在数组里面。
4,将左固定列,右固定列,主列分别用 table标签包装起来,就相当于三个table放在一个div盒子里面。并用左固定列,主列,右固定列的顺序排布。
5,为了产生滚动条,在写主列table的时候外层需要用div去包裹起来,给这个div添加样式,让其可以在一定宽度下进行滚动。
6,并根据左固定列或者右固定列的类型去设置不同的样式,让其固定在左右两边。

3,实现方式

render: function (createElement) { 
// 用来设置左边右边列以及主列的数组var vm = this,mainCols = [],leftCols = [],rightCols = [],
// 对父组件传过来的的所有列插槽进行过滤,去分别左固定列,右固定列,主列。  
this.$slots.default.forEach((columnSlot) => {var opt = columnSlot.componentOptions;if (!opt || opt.tag !== "cvn-table-column") return;if (opt.propsData.type === "expand") {expandCol = columnSlot;return;}if (opt.propsData.fixed === "right") {return rightCols.push(columnSlot);} else if (opt.propsData.fixed !== undefined) {return leftCols.push(columnSlot);} else {return mainCols.push(columnSlot);}});// 将固定列使用fixed参数进行标记leftCols.forEach((col) => (col.componentOptions.propsData["position"] = "fixed"));rightCols.forEach((col) => (col.componentOptions.propsData["position"] = "fixed"));mainCols = leftCols.concat(mainCols, rightCols);
}
// 构造table表格的函数代码function parseTable(cols, fixed) {if (fixed === "right") mark = "right";return createElement("table",{class: {"cvn-table-inner": true,"cvn-table-simple": vm.theme === "simple","cvn-table-main": fixed === undefined,"cvn-table-fixed-left": fixed === "left","cvn-table-fixed-right": fixed === "right","cvn-table-oneline": vm.validOneline,},attrs: {"cvn-table-id": vm.tableID,name:fixed === "left"? "cvn-table-fixed-left": fixed === "right"? "cvn-table-fixed-right": "cvn-table-main",},},[createElement("thead",{class: {"cvn-table-row-container": true,"cvn-table-head-row": vm.height,},},[parseHeader(cols)]),createElement("tbody",{class: {"cvn-table-row-container": true,},attrs: {name: "cvn-table-body",},},},vm.validData.length === 0? [parseEmptyRow(cols.length, fixed === undefined ? true : false)]: expandCol? parseRowPairs(cols,fixed === undefined ? expandCol : null,vm.validData): vm.validData.map((rowData, index) =>parseRow(cols, rowData, index))),]);}

使用下面的方法将 整个table表格渲染出来,并给主列外面的div添加了滚动事件。通过leftCols.length的长度来判断是否要构造左固定列所对应的表格。右固定列同理。

function parseMainView() {return [leftCols.length > 0 ? parseTable(leftCols, "left") : undefined,rightCols.length > 0 ? parseTable(rightCols, "right") : undefined,createElement("div",{class: "cvn-table-view",on: {scroll: () => {vm.throttlenScrollWatch && vm.throttlenScrollWatch();},},attrs: {name: "cvn-table-view",},},[parseTable(mainCols)]),];}

相关css代码:

.cvn-table-new .cvn-table-inner.cvn-table-fixed-left,
.cvn-table-new .cvn-table-inner.cvn-table-fixed-right {position: absolute;z-index: 1;
}.cvn-table-new .cvn-table-inner.cvn-table-fixed-left {left: 0;top: 0;transition: box-shadow ease 0.2s;border-right: none !important;
}.cvn-table-new .cvn-table-inner.cvn-table-fixed-right {right: 0;top: 0;transition: box-shadow ease 0.2s;border-left: none !important;
}.cvn-table-new .cvn-table-inner.cvn-table-main .cvn-table-fixed-column {visibility: hidden;
}
http://www.ds6.com.cn/news/73013.html

相关文章:

  • 湖南网站开发公司seo快速排名工具
  • 网站的轮播图一般是做多大南京高端品牌网站建设
  • 成都网站关键词优化苏州网站排名推广
  • 做网站一定要认证吗百度竞价价格
  • 网站方案制作的培训竞价推广是做什么的
  • 电子商务网站建设完整详细流程图技能培训
  • java ee网站开发站长平台
  • 企业站seo哪家好营销推广网站
  • 电商代运营公司排名win优化大师有用吗
  • 低价网站建设新闻市场营销是做什么的
  • 景区网站建设策划案新泰网站seo
  • 一览英才网招聘信息网aso排名优化知识
  • 手机网站建设技术方案企业网站快速排名
  • 宁波网站推广多少钱一个免费发帖平台
  • 邢台123生活信息百度关键字优化
  • 网站开发公司前置审批招代理最好的推广方式
  • 如何网络推广优化保定百度seo公司
  • 手机做网站用什么怎么搜索网站
  • 阿土伯网站做产品推广咋样如何推广网站方法
  • 手机游戏开服表时间表网站怎样关键词排名优化
  • 建立网站的意义sem和seo的区别
  • 服务一流的做网站电脑培训班一般多少钱
  • 重庆网站建设排名营销手段有哪些方式
  • 网站建设服务平台b2b网站有哪些
  • 安徽平台网站建设设计灰色词快速上排名
  • wordpress轮播图设置手机优化软件哪个好用
  • 微信公众号个人可以做网站么杭州网站seo推广软件
  • 网站一般用什么做的网站开发培训
  • 做一电影网站怎么赚钱吗爱站数据
  • 深圳做商城网站推广怎么做