vue 判断元素内容是否超过宽度的方式

我就废话不多说了,大家还是直接看代码吧~

        let isOverflow = this.$refs.isOverflow;
        for (let i in isOverflow) {
          let cWidth = isOverflow[i].clientWidth;
          let sWidth = isOverflow[i].scrollWidth;
          if (sWidth > cWidth) { //超过
            this.$set(this.isEllipsis, i, true);
          } else {
            this.$set(this.isEllipsis, i, false);
          }
        }

补充知识:Vue h5 里面如何动态设置返回时候meta 里面的title属性

Vue h5 里面如何动态设置返回时候meta 里面的title属性

百度了很多博客,有两种方法,

方法1 :

通过设置router.js 里面,路由切换时候 修改 meta 属性 但是感觉没必要这样

{
   path: '/teachers',
   name: 'TDetail',
   component: TDetail,
   meta: {
    title:"教师详情",
    content: 'disable'
   }
  },
  {
   path: '/article',
   name: 'Article',
   component: Article,
   meta: {
    title: "文章详情",
    content: 'disable-no'
   }
  },
 //main.js里面的代码
 router.beforeEach((to, from, next) => {
 /* 路由发生变化修改页面meta */
 if(to.meta.content){
  let head = document.getElementsByTagName('head');
  let meta = document.createElement('meta');
  meta.content = to.meta.content;
  head[0].appendChild(meta)
 }
 /* 路由发生变化修改页面title */
 if (to.meta.title) {
  document.title = to.meta.title;
 }
 next()
});

方法2 :

可以直接通过

document.title = '想要设置的title';

但是需要注意的是,这种写法需要注意Vue 里面的生命周期,需要在beforeRouteEnter 里面设置,下面是代码

 beforeRouteEnter (to, from, next) {
  next(vm => {
   document.title = '律师大数据'
  })
 },

但是开发里面遇到了坑,有时候这种写法根本不起效果,然后尝试在 beforeCreate里面也设置了下,最终总结出来的规律是,如果 只在 beforeRouteEnter 修改 document.title = '想要设置的title';不起效果的话,那就同时也把 beforeCreate写进来,这样肯定是能改变 页面的 meta 属性的,下面是代码

 beforeCreate () {
  document.title = '111律师大数据'
 },
 beforeRouteEnter (to, from, next) {
  next(vm => {
   document.title = '律师大数据'
  })
 },

但是 ,经过打印,实际起效果的是,beforeRouteEnter里面设置的 document.title = '律师大数据'

以上这篇vue 判断元素内容是否超过宽度的方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Vue中常用rules校验规则(实例代码)

    在 vue开发中,难免遇到各种表单校验,这里整理了网络上和自己平时高频率用到的一些校验方法.如果错误欢迎指出,后期不断补充更新. 1.是否合法IP地址 export function validateIP(rule, value,callback) { if(value==''||value==undefined||value==null){ callback(); }else { const reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|

  • vue获取DOM元素并设置属性的两种实现方法

    这里我想到了2个方法: 方法一: 直接给相应的元素加id,然后再document.getElementById("id");获取,然后设置相应属性或样式 方法二: 使用ref,给相应的元素加ref="name" 然后再this.$refs.name获取到该元素 注意:在获取相应元素之前,必须在mount钩子进行挂载,否则获取到的值为空, 如果是给子组件加id并修改自定义属性,则直接会加载改子组件对应的外层div上,并不会改变该子组件原本的自定义属性的值 如果给子组件

  • 对vue中v-if的常见使用方法详解

    使用过Vue的小伙伴一定使用过v-if 这个属性,但是这个属性主要是来干什么的呢,他得用途是那些? 这里我总结了一下,v-if使用一般有两个场景: 1- 多个元素 通过条件判断展示或者隐藏某个元素.或者多个元素 2- 进行两个视图之间的切换 下面我写了两个例子,是Vue官方的简单实例. 第一个实例实现了 type等于不同值,A,B,C 三个元素的展示情况. 第二个例子实现了,点击按钮实现两个视图的切换. <!DOCTYPE html> <html lang="en"&

  • vue 判断元素内容是否超过宽度的方式

    我就废话不多说了,大家还是直接看代码吧~ let isOverflow = this.$refs.isOverflow; for (let i in isOverflow) { let cWidth = isOverflow[i].clientWidth; let sWidth = isOverflow[i].scrollWidth; if (sWidth > cWidth) { //超过 this.$set(this.isEllipsis, i, true); } else { this.$s

  • jquery判断元素内容是否为空的方法 原创

    用jquery获取元素内容需要分两个情况: input 用val(); var value = $('#test').val(); 是否为空的判断方法: if(value.length == 0){} 如果value为空执行的操作 if(value!=''){} 如果value不为空执行的操作 jQuery验证文本框内容不为空 通过$.fn 扩展jQuery方法 /** * 校验文本是否为空 * tips:提示信息 * 使用方法:$("#id").validate("提示文本

  • vue 实现左右拖拽元素并且不超过他的父元素的宽度

    话不多说,先上需求图 需求:这是一个音频播放的组件,隐藏audio样式,用js调用脚本方法实现,目前功能基本实现,但是有个问题,图中共有一根绿色的begin线和红色的end线,使用这两根线切割音频,意思就是拖拽获取拖拽后的刻度传给后端,为此,去学习了一下拖拽, 上代码: html部分 <!--红绿线--> <div class="begin-end-line"> <img :src="lineGreen" alt=""

  • Vue判断字符串(或数组)中是否包含某个元素的多种方法

    目录 方法一:includes方法(数组,字符串都可以) 方法二:indexOf方法(数组,字符串都可以) 方法三 :search方法 方法四:match方法 方法五:text方法 方法六:exec方法(数组可以,字符串未测) 方法七:some() 方法 总结 Vue判断字符串中是否包含某个字符串,方法有好多种,这里暂时先说我知道的两种,以后知道了别的,会继续更新! 方法一:includes方法(数组,字符串都可以) var str = "Hello World!"; if(str.i

  • vue判断input输入内容全是空格的方法

    比如input中的数据和data中的msg双向绑定. 那么我们可以  判断先把msg以空格拆分成数组,然后拼接起来,判断字符串的长度,如果长度为0,证明输入的就全是空格了,如下: msg.split(" ").join("").length = 0 以上这篇vue判断input输入内容全是空格的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: vue获取input输入值的问题解决办法 详解.vue文件中监听in

  • Vue 中文本内容超出规定行数后展开收起的处理的实现方法

    文字比较难解释,直接看图应该就懂是要做什么了. 需求 工作中遇到的,需求就是超过四行得有个展开按钮,点击展开显示所有内容,不超过四行的话就不需要这个按钮并显示所有内容. 思路首先得判断文本自否超过四行,因为这些一般都是是前端异步请求然后后端发送过来,在组长的指导下,使用了 Vue 中的 nextTick 来监听 DOM 中是数据变化.接下来主要是 css 上的思路,其实上图可以分为两部分,如下图,标号1的部分展示前面三行,标号为2的部分会根据1的行数判断缩进的大小,然后展示第四行.最后通过背景色

  • vue tab切换,解决echartst图表宽度只有100px的问题

    解决思路:直接将图表的宽高写死,根据实际代码进行改写,提供一个思路 1.将图表放进一个div里面 <div class="echarts"> <div id="myChart" :style="{width: '100%', height: '150px'}"></div> </div> 2.定义一个方法,并在mounted视图更新的时候执行 <script> export defaul

  • 使用vue控制元素显示隐藏方式

    目录 vue控制元素显示隐藏 解释 注意点 控制元素显示隐藏 v-show与v-if,以及v-if-else v-show与v-if作用 vue控制元素显示隐藏 HTML代码:  <div title="意向价格"   v-if="showPrise"></div>   <div title="意向租金"   v-show="showRentPrise"></div> JS代码:

  • jQuery判断元素是否显示 是否隐藏的简单实现代码

    jQuery判断元素是否显示 是否隐藏的简单实现代码 var node=$('#id'); 第一种写法 if(node.is(':hidden')){ //如果node是隐藏的则显示node元素,否则隐藏 node.show(); }else{ node.hide(); } 第二种写法 if(!node.is(':visible')){ //如果node是隐藏的则显示node元素,否则隐藏 node.show(); }else{ node.hide(); } if(node.is(':visib

  • javascript判断元素存在和判断元素存在于实时的dom中的方法

    今天(周六)下午我在公司加班时不知道要干什么,就打开公司的一个wordpress项目网站,想看下之前自己做的一个网页是否有问题. 打开网站首页,我习惯性的打开了chrome的调试工具,然后鼠标开始滚动页面,然后问题就出来了:页面无法向下滚动,调试工具的console里报了好多undefined的错误. 我马上意识到是我写的js代码错误的在首页被执行导致的问题,我的代码大致是这样: if ($('#a')) { // some code ... $('#b').doSomething; // so

随机推荐