栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

Vue列表如何实现滚动到指定位置样式改变效果

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Vue列表如何实现滚动到指定位置样式改变效果

这个需求大概是这样子:

我做的一个聊天Demo,在搜索框搜索用户,可以滚动到指定的用户。然后成选中状态。

这是目前状态,我搜索南宫仆射 ,想要下面的用户列表直接滚动到南宫仆射并改变CSS样式。

查询之后是这个子:

嗯,我的思路:

在搜索框搜索到用户之后会返回一个用户对象,之后会调用列表的点击事件,改变CSS样式及做一些聊天的逻辑。然后需要获取到列表对应的id值,直接使用 document.getElementById(it).scrollIntoView();

具体实现:

列表:使用vue的v-for指令 ,这里的id值使用的是遍历的索引值,外层是一个自定义滚动条组件。样式也是使用vue指令,一个语法糖。


      
  • {{item.name}}

  • 搜索框:这里使用带提示的输入框,

    
          
         

    JS代码:请求为get请求的axios封装,hr为查询返回的对象,hrs为所有的列表对象。

    SearchCurrentSession() {
        this.getRequest("/chat/?name=" + this.SearchHr).then(resp => {
         if (resp) {
          this.hr = resp;
          this.SearchHr = '';
          this.changeCurrentSession(this.hr);
          let it = 0;
          this.hrs.forEach((item, index) => {
    if (item.name == this.hr.name) {
     it = index;
    }
          })
          document.getElementById(it).scrollIntoView();
          // document.getElementsByClassName("active")[0].scrollIntoView();
    
         }
        });
     changeCurrentSession(currentSession) {
        this.$store.commit('changeCurrentSession', currentSession)
       },

    页面全部代码:

    
    
    
    
    
    
    
     .my-scroll-bars {
      height: 610px;
     }
    
     
    
     
     .gm-scrollbar.-vertical {
      background-color: #f0f0f0
     }
    
     
     .gm-scrollbar.-horizontal {
      background-color: transparent;
     }
    
     
     .gm-scrollbar .thumb {
      background-color: rebeccapurple;
     }
    
     .gm-scroll-view {
      overflow-x: hidden;
     }
    
     .gm-scrollbar .thumb:hover {
      background-color: fuchsia;
     }
    
    
     input-with-select {
      margin-top: 50px;
      padding-top: 20px;
    
     }
    
     .el-scrollbar__wrap {
      width: 100%;
      height: 100%;
      overflow-x: hidden;
     }
    
     .el-menu-item is-active {
      padding-left: 10px;
    
     }
    
     .el-menu-vertical-demo {
      background-color: #2e3238;
      width: 80px;
      height: 100%;
      
    
     }
    
     .leftlist {
      background-color: transparent;
      width: 90px;
      height: 700px;
      overflow-x: hidden;
     }
    
     .avatar {
      width: 45px;
      height: 45px;
      
      border-radius: 5px;
      margin-top: 5px;
     }
    
     .el-scrollbar__wrap {
      background-color: #E4E7ED;
     }
    
     #el-scrollbar {
      background-color: #E4E7ED;
     }
    
     #list {
      background-color: #E4E7ED;
      width: 100%;
      overflow-x: hidden;
    
      li {
       padding: 7px 15px;
       border-bottom: 1px solid #E4E7ED;
       cursor: pointer;
       list-style: none;
       color: #505458;
    
       &:hover {
        background-color: rgba(0, 0, 0, 0.07);
       }
      }
    
      li.active {
       
       background-color: rgba(0, 0, 0, 0.1);
      }
    
      .avatar {
       border-radius: 2px;
       width: 30px;
       height: 30px;
       vertical-align: middle;
      }
    
      .name {
       display: inline-block;
       margin-left: 15px;
       margin-top: 0px;
       margin-bottom: 0px;
      }
     }
    

    总结

    到此这篇关于Vue列表实现滚动到指定位置样式改变的文章就介绍到这了,更多相关Vue列表实现滚动到指定位置样式改变内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/70447.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号