vue 刚加载的菜单无法渲染选中效果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue 刚加载的菜单无法渲染选中效果相关的知识,希望对你有一定的参考价值。

参考技术A 具体原因及解决方法如下:
问题分析:测试页面发现原始页面有滚动条,到初始化页面后滚动条看不到了,头部的dom也看不到了。
通过缩放视口或者鼠标移动到滚动条处可以让隐藏的dom正常显示,猜想可能由于某些原因导致页面初始化渲染异常,解决方法尝试在数据加载之后手动改变元素宽高重新渲染页面。
问题解决:经尝试发现在控制台手动改变元素宽度或高度都可以导致页面重新渲染。

使用Vue.js实现列表选中效果

 实际项目中,我们会遇到很多类似的需求,一个列表,需要点击其中一条高亮显示。熟悉JQuery的同学说这个太简单了。可以给这个选中的element设置一个active的class。配合Css样式,让active有选中高亮效果。但是谁说一定要用到jQuery呢。

  最近在做的项目中,我尝试脱离JQuery,绕过JQuery,我所接触的大部分项目中好像不使用JQuery无法进行开发一样。它确实给开发者提供了太多便利。以至于大部分web网站都依赖它运行着。据w3Techs统计,JQuery的市场份额高达94.9%,是时候脱离JQuery的束缚了。使用Vue.js更简洁,快速地实现。

  选中效果实现的核心实现逻辑是拷贝一份当前状态作为快照。比对列表的快照和当前的唯一索引,如果相同则视为选中。

Demo


技术分享图片

使用Vue.js实现


javascript

new Vue({
  el: "#app",
  data: {
    gameNames: [‘魔兽世界‘, ‘暗黑破坏神Ⅲ‘, ‘星际争霸Ⅱ‘, ‘炉石传说‘, ‘风暴英雄‘,
      ‘守望先锋‘
    ],
    activeName: ‘‘
  },
  methods: {
    selected: function(gameName) {
      this.activeName = gameName
    }
  }
})

html

 
<div id="app">
  <div class="collection">
    <a href="#!" class="collection-item"
       v-for="gameName in gameNames"
       @click="selected(gameName)"
       :class="{active: activeName == gameName}">{{gameName}}</a>
  </div>
</div>

以上是关于vue 刚加载的菜单无法渲染选中效果的主要内容,如果未能解决你的问题,请参考以下文章

解决vue3.0新建项目无法选中Manually select features

VUE项目实战18左侧菜单格式美化

解决vue项目 点击相同菜单栏页面不刷新

js如何实现点击导航栏后相应导航栏实现选中效果的切换

Js效果:图片轮播;选项卡;侧面菜单下拉效果;进度条效果;滑动效果;好友列表选中效果;点击选中显示效果

鼠标事件和表单事件+好友列表选中效果+侧面菜单下拉效果