基于elementUI滚动条el-scrollbar内容滚动

vue结合element ui实现文字消息上下无缝滚动切换 最近项目里需要个消息翻滚一条条出现的效果,如下图: 正在用原生js操作的时候,突然想起element ui有个走马灯(Carousel),这个走马灯可以实现前端比较常用的轮播效果,那肯定也能实现这个功能消息无缝翻滚出现的功能。 话不多说,下面放代码: html部分: <!--我这个需求是有消息时才会让这个功能显示,所以使用了v-if--> <div class="bs-sysMsg" v-if="systemMsg.length > 0"> <i class=" 阅读详情

需求:表单填写信息过长,提交按钮在顶部需要一直在可视区,公司信息也固定显示在底部不被遮盖,于是要求只要中间内容部分,填写信息滚动条滚动内容

实现效果:

组件:

<template>
  <div class="scrollbar-container">
    <el-scrollbar class="scroll" id="scrollContent" :style="{ height: height ,width:width}">
      <slot></slot>
    </el-scrollbar>
  </div>
</template>

<script>
import { calculateHeight } from "@/utils/calcHeight";
export default {
  props: {
    //要减去高度的div的class  el-scrollbar下面的div
    cutClassNames:{
      type:Array,
      default:()=>[]
    }
  },
  components: {},
  data() {
    return {
      height: "100%",
      width:"100%",
    };
  },
  created() {},
  mounted() {
    window.addEventListener("resize", this.handleResize);
  },
  beforeDestroy(){
     window.removeEventListener("resize",this.handleResize);
  },
  watch: {
    cutClassNames: {
      handler(val) {
         this.handleResize();
        
      },
      immediate:true
    },
  },

  methods: {
   handleResize(){
    this.$nextTick(()=>{
       this.height=calculateHeight(this.cutClassNames,50)+"px";
    })
   },
  },
};
</script>
<style lang="scss" scoped>

</style>

 计算滚动区域高度:calcHeight.js


export const caculateOtherHeight=function(cutClassNames=[]) {
    let total = 0;
    if( cutClassNames&& cutClassNames.length>0){
       cutClassNames.forEach((className) => {
        const h =document.getElementsByClassName(className)[0].offsetHeight || 0;
        total = total + h;
      });
    }
   return total;
  }
  //计算减后的实际高度
  export const calculateHeight=function(cutClassNames=[],cutHeight=0) {
    let otherHeight=caculateOtherHeight(cutClassNames);
    const windowHeight = window.innerHeight; // 窗口高度
    const top = document.getElementById("scrollContent").getBoundingClientRect().top;//滚动区域到顶部距离
    const pageContent = document.getElementById("pageContent");
    let bottomPx = window.getComputedStyle(pageContent).paddingBottom||0;
    let bottomPxM=window.getComputedStyle(pageContent).marginBottom||0;
    const bottom = Number(bottomPx.replace("px", "") || 0);
    const bottomM=Number(bottomPxM.replace("px", "") || 0);
    const total = top + bottom+bottomM + otherHeight;
    const height = windowHeight - total-cutHeight;
   
    return  height;
  }
  export const handleWindowOnresize=function(){
    window.onresize = () => {
        return (() => {
        
          calculateHeight();
        })();
      };
  }

注:主内容区域加id="pageContent" 参考   基于ElementUI的el-table滚动条处理_Holly31的博客-CSDN博客

 页面使用:

 <blScrollContent >
    <el-form>
    滚动内容
    </el-form>
</blScrollContent>

全局样式修改滚动条样式:

 不写这个,横向滚动条显示会有问题

  .el-scrollbar__wrap{
    overflow-x: auto;
    padding-bottom: 20px;
    height: calc(100% + 20px); 
  }

vue中滚动文字公告(1)-elementUI走马灯 思路: 把每条公告内容看成是走马灯的一个item,去掉左右箭头,去掉指示器,上下滚动用vertical,水平滚动用horizontal 优势:实现简单 劣势:效果单一 html部分 <el-card class="notice"> <el-carousel indicator-position="none" arrow="never" direction="vertical" :interval="5000"> <el-carousel-item 阅读详情

相关推荐

Element UI——滚动条组件(ElScrollBar)修改.el-scrollbar__wrap和el-scrollbar__view的CSS属性

基本概念 el-scrollbarElement UI隐藏组件。 注意事项: 1.el-scrollbar的父层要有固定高度 2.el-scrollbar的高度要设成100% 3.如果出现横滚动条,添加overflow-x:hidden; 源代码 // reference https://github.com/noeldelgado/gemini-scrollbar/blob...

无限迭代中...... 1万+

在vue3 中,使用element-plus中的el-scrollbar,让内容元素自动滚动

在vue3 中,使用element-plus中的el-scrollbar,让内容元素自动滚动

H_jrqn的博客 6391

Vue的el-scrollbar实现自定义滚动

为什么要用el-scrollbar? 最近在写一个内部平台系统,相信大家都知道,其中会有很多自定义的滚动区域,就比如说现在有一个列表需要滚动,第一个念头就是用 overflow: scroll; 啊!嗯嗯,又不是不能用!如果我不曾见过太阳,我本可以忍受黑暗。 大家总会见过不少滚动条比较优雅的实现,不可否认,美是让人愉悦的。所以这些年行走江湖我满怀愧疚,让大家见丑了。 为什么要用el-scrollbar,大家都知道,模拟一个滚动不难,而且市面上有很多这样的库。我考虑的,首先项目用的框架是Vue,然后用的组件库是ElementElement官网也有很多滚动,而且像是Select组件的下拉框也是

三个标签优雅实现el-scrollbar滚动翻页

<div style="height: 178px;"> <el-scrollbar style="height: 100%;"> <div style="background-color: #FFFFFF;padding: 0 20px 0 20px;" v-infinite-scroll="chatSearch02"...

weixin_39990025的博客 1656

element ui使用滚动条组件el-scrollbar(官方没有)解决对话框el-dialog的滚动条问题

今天写vue+element ui写项目时有个需求是要在对话框中进行操作,但是当对话框内容过多时却不会出现滚动条,通过修改样式后虽然出现滚动条,但是滚动条的样式不是很理想,通过查找发现了element ui官方没有的隐藏组件el-scrollbar(滚动条组件) <el-scrollbar style="height:300px;">//我在这里设置高度未300px ...... &...

濮家大少 9452

elementUI导航栏增加导航条 el-scrollbar

elementUI导航栏增加滚动条

weixin_54352784的博客 2178

ElementUI——<el-scrollbar

ElementUI中有一个组件,但官方文档并没有显示出来,那就是el-scrollbar组件 el-scrollbar组件是一个滚动条,对一个溢出元素的内容做一个滚动条,使其内容不再溢出元素。 说白了就是:将一个元素内的东西给一个滚动条。 小编使用脚手架搭建了Vue,所以就显示部分代码 <template> <div class="main">//边框是 黑色 <h1>使用滚动条组件</h1> <div cla.

qq_44849271的博客 499

elementui滚动条组件

elementui 2X版本的官网中是没有滚动条组件的 element-plus官网中有el-scrollbar组件 用法:及其简单,套在原本比较丑的盒子的外层就行了

qq_68155756的博客 558

Element UI Dialog 对话框改成固定高度,超出部分滚动条滚动

Element UI Dialog 对话框改成固定高度,超出部分滚动条滚动

蓝胖子的博客 1万+

解决使用element-ui表格,不显示滚动条方法

解决使用element-ui表格,不显示滚动条方法

weixin_60196946的博客 2781

一、el-table的滚动条加粗并解决遮挡内容问题

近期接到产品提的需求,反馈用户说table里面的滚动条过小,不方便拖动,希望加粗,然后我就研究了下如何加粗,发现加粗后会导致遮挡内容的问题,并予以解决。先说理论,原先想着能加padding往下撑,发现内容就会更加遮挡,放弃该方法。以上就是如何使el-table的滚动条加粗,并解决遮挡问题的方法,其中。实现后的项目中样式,我的条数是200行,滚动条加粗并显示在内容底部。从F12不难看出,它是自己写的横向和纵向滚动条。那么改变这个节点的样式,还有纵向滚动条样式。,如果有其他的问题,也可以发私信交流。

张先森的博客 2069

elementui表格下拉_elementui 表格合计行随着滚动条向下隐藏 解决办法

Element-UI动态表格合并导致触发Vue视图更新,从而无限循环问题Element-UI动态表格合并导致触发Vue视图更新,从而无限循环问题 1.前言 在做一个项目的时候,遇到一个需求,需要根据后台返回的数据,动态的进行表格合并,比如下面这种。 这个Element官网示例是每两列合并一行,或者没两行合并一列的规则。(当然会有一些限Excel表格里将一列向量转换成矩阵的方法Excel表格里将一列...

weixin_33525298的博客 857

element的隐藏组件滚动条el-scrollbar使用 亲测有用~

前言 刚好项目里面一直在使用的都是element,因为原生的滚动条太丑了,发现elementui中有个隐藏的组件,优化滚动条样式。亲测可用,鼠标经过的时候才会显示,简单美观。 正文 首先全局引入element,import ElementUI from 'element-ui'; 简单使用–只是用竖的滚动条 只是用竖的滚动条,外层box设置宽高,内层的内容充满,设置el-scrollbar的高度...

JCat的博客 5万+

ElementUIel-scrollbar 滚动条样式组件的使用

ElementUIel-scrollbar 滚动条样式组件的使用 在使用 ElementUI 时 不难发现, 滚动条的样式和浏览器本地的不同 通过 检查元素发现存在一个el-scrollbar 类名 使用<el-scrollbar class="SideBar-scrollbar"> <p>欢迎访问</p> <el-menu :colla...

小火车况且况且况且的博客 2735

vue + elementUI中的滚动条el-scrollbar使用总结

由于需要使用滚动条,原生滚动条长的太丑,查到了elementUI中的滚动条 el-scrollbar,使用简洁方便,样式如下: 使用方法如下: 外部的div必须给固定高度才行 <!-- 外部div --> <div style="height: 650px; display: flex" class="cab" > <el-scrollbar style="height:100%"> <!-- 内部div --> &l

是日前端 1万+

element el-scrollbar 横向滚动条问题解决以及随后引发的下拉框问题修复

在使用vue时,就会有使用到elementUI,之后就是不断的在入坑和天坑之间徘徊。 elementUI中有个隐藏的组件,就是滚动条-----<el-scrollbar></el-scrollbar> 可以参考elementUI的官网代码 这里用F12可以查看到 添加之后会有出现横向滚...

h18820956011的博客 1万+

elementUIel-scrollbar

概念 el-scrollbar(滚动条组件):是Element UI隐藏组件 注意事项: 1.el-scrollbar的父层要有固定高度 2.el-scrollbar的高度要设成100% 3.如果出现横滚动条,添加overflow-x:hidden; 属性 el-scrollbar组件暴露了 native, wrapStyle, wrapClass, viewClass, viewStyle, noresize, tag 这7个 props属性 props: { native: Boolean,

wxl1390的博客 1985
上一篇: 基于ElementUI的el-table滚动条处理
下一篇: 百度地图离线地图实现绘制多边形及回显多边形区域
Holly31
博客等级 码龄10年 2365粉丝 · 43原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值