最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vuejs數(shù)據(jù)超出單行顯示更多,點(diǎn)擊展開剩余數(shù)據(jù)實(shí)例

 更新時(shí)間:2019年05月05日 10:56:58   作者:ygy211715  
這篇文章主要介紹了vuejs數(shù)據(jù)超出單行顯示更多,點(diǎn)擊展開剩余數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

說下我在工作中遇到的這個(gè)需求

1:頁面上的菜單選項(xiàng),選項(xiàng)內(nèi)容是后臺(tái)接口返回的數(shù)據(jù),現(xiàn)在的需求是當(dāng)選項(xiàng)的內(nèi)容超出一行,在這行的右面顯示更多,點(diǎn)擊更多,顯示剩下的選項(xiàng)的內(nèi)容

看下效果圖

這是展開的效果圖

 

下面先看下我的html部分代碼

<div :class="bussinessType?'show':'hidde'">
					<dl>
						<dt>業(yè)務(wù)類型:</dt>
						<dd ref="bussinessTypeRef">
							<a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" name="" 
							@click="getchildMenu($event)" class="active">全部</a>
							<a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" :name="item.code" v-for="item in projectType" 
							@click="getchildMenu($event)">{{item.name}}</a>
						</dd>
						<i class="unfold" @click="bussinessType = !bussinessType" 
						v-show="bussinessHeight>40">
			            {{ bussinessType ? '收起' : '更多'}}
			            <Icon :type="bussinessType?'chevron-down':'chevron-up'" ></Icon>
	          </i>
					</dl>
				</div>

說下原理show就是展開的時(shí)候使用的樣式名稱,hide是顯示一行是使用的樣式(主要就是控制容器高度)

.show{
        height: auto;
        border-bottom: 1px solid #ebebeb;
    }
    .hidde{
        height: 40px;
        overflow: hidden;
        border-bottom: 1px solid #ebebeb;
    }

這是我展示的菜單的部分,主要的思路是看這部分的高度是不是超出一行的高度,如果是超出一行的高度,則讓dl外的div默認(rèn)使用hide的樣式

那么問題來了,怎么知道展示菜單的dd部分的高度超出一行了呢?

這就需要使用vuejs的watch來實(shí)現(xiàn)了

首先,watch監(jiān)聽ref是bussinessTypeRef的組件的高度(內(nèi)容多的話自然dd容易會(huì)被撐高),這時(shí)候與一行的高度(我這里設(shè)置的是40)作比較,如果超出,就讓更多的文字按鈕顯示出來。下面是監(jiān)聽dd內(nèi)容高度的watch方法

 projectType: function () {
	      this.$nextTick(function(){
	        let cur = this.$refs['bussinessTypeRef'];
	        if(cur){
	        	this.bussinessHeight = cur.clientHeight;
	        }
	      });
	    },

這時(shí)候更多文字按鈕顯示,我們就控制dl外層的div容器,讓該容器使用hide的樣式,點(diǎn)擊更多的時(shí)候,讓控制顯示更多的變量變?yōu)橄喾吹闹?,這樣讓收起顯示出來,更多消失,同時(shí)讓外層的div容器使用show的樣式。這樣一來就實(shí)現(xiàn)了文字超出一行顯示更多,點(diǎn)擊收起的交互效果。

下面附上完整的代碼供參考

<div :class="bussinessType?'show':'hidde'">
					<dl>
						<dt>業(yè)務(wù)類型:</dt>
						<dd ref="bussinessTypeRef">
							<a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" name="" 
							@click="getchildMenu($event)" class="active">全部</a>
							<a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" :name="item.code" v-for="item in projectType" 
							@click="getchildMenu($event)">{{item.name}}</a>
						</dd>
						<i class="unfold" @click="bussinessType = !bussinessType" 
						v-show="bussinessHeight>40">
			            {{ bussinessType ? '收起' : '更多'}}
			            <Icon :type="bussinessType?'chevron-down':'chevron-up'" ></Icon>
	          </i>
					</dl>
				</div>
 
 
  // 行業(yè)
    businessType: function () {
      this.$nextTick(function(){
        let cur = this.$refs['industryRef'];
        if(cur){
        	this.industryHeight = cur.clientHeight;
        }
      });
    },
.show{
		height: auto;
		border-bottom: 1px solid #ebebeb;
	}
	.hidde{
		height: 40px;
		overflow: hidden;
		border-bottom: 1px solid #ebebeb;
	}
	.list-filter {
		position: relative;
		margin-bottom: 20px;
		font-size: 14px;
	}
	
	.list-filter dl {
		overflow: hidden;
	}
	
	.list-filter dt {
		float: left;
		font-weight: 400;
		height: 40px;
		line-height: 40px;
	}
	
	.list-filter dd {
		margin-left: 30px;
		float: left;
		width: 85%;
		line-height: 40px;
		
	}
	.unfold{
		font-size: 14px;
  color: #00A971;
  cursor: pointer;
  font-style: normal;
  vertical-align: middle;
  display: inline-block;
  height: 40px;
  line-height: 40px;
	}
	.list-filter a {
		color: #333;
		display: inline-block;
		margin-right: 20px;
		padding: 0 5px;
		text-decoration: none;
		line-height: 2em;
		z-index: 0;
	}

以上所述是小編給大家介紹的vuejs數(shù)據(jù)超出單行顯示更多,點(diǎn)擊展開剩余數(shù)據(jù)詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 詳解vue-cli項(xiàng)目中怎么使用mock數(shù)據(jù)

    詳解vue-cli項(xiàng)目中怎么使用mock數(shù)據(jù)

    這篇文章主要介紹了vue-cli項(xiàng)目中怎么使用mock數(shù)據(jù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • vue中this.$createElement方法的使用

    vue中this.$createElement方法的使用

    這篇文章主要介紹了vue中this.$createElement方法的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 利用vueJs實(shí)現(xiàn)圖片輪播實(shí)例代碼

    利用vueJs實(shí)現(xiàn)圖片輪播實(shí)例代碼

    本篇文章主要介紹了利用vueJs實(shí)現(xiàn)圖片輪播實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • vue+element-ui+axios多文件上傳的實(shí)現(xiàn)并顯示整體進(jìn)度

    vue+element-ui+axios多文件上傳的實(shí)現(xiàn)并顯示整體進(jìn)度

    這篇文章主要介紹了vue+element-ui+axios多文件上傳的實(shí)現(xiàn)并顯示整體進(jìn)度,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vuejs開發(fā)環(huán)境搭建及熱更新【推薦】

    Vuejs開發(fā)環(huán)境搭建及熱更新【推薦】

    Vue.js是目前很火的一個(gè)前端框架,采用MVVM模式設(shè)計(jì),它是以數(shù)據(jù)驅(qū)動(dòng)和組件化的思想構(gòu)建的。本文重點(diǎn)給大家介紹Vuejs開發(fā)環(huán)境搭建及熱更新的相關(guān)知識(shí),需要的朋友參考下吧
    2018-09-09
  • Vue中$on和$emit的實(shí)現(xiàn)原理分析

    Vue中$on和$emit的實(shí)現(xiàn)原理分析

    這篇文章主要介紹了Vue中$on和$emit的實(shí)現(xiàn)原理分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Vuejs實(shí)現(xiàn)購物車功能

    Vuejs實(shí)現(xiàn)購物車功能

    這篇文章主要為大家詳細(xì)介紹了Vuejs實(shí)現(xiàn)購物車功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • vue.config.js配置proxy代理產(chǎn)生404錯(cuò)誤的原因及解決

    vue.config.js配置proxy代理產(chǎn)生404錯(cuò)誤的原因及解決

    這篇文章主要介紹了vue.config.js配置proxy代理產(chǎn)生404錯(cuò)誤的原因及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • vue3中實(shí)現(xiàn)拖拽排序代碼示例(vue-draggable-next的使用)

    vue3中實(shí)現(xiàn)拖拽排序代碼示例(vue-draggable-next的使用)

    在Vue3中使用拖拽功能時(shí)應(yīng)選用vue-draggable-next插件,傳統(tǒng)的draggable插件不兼容Vue3,可能導(dǎo)致TypeError錯(cuò)誤,安裝后,需在項(xiàng)目中引入并使用,具體步驟包括安裝插件、引入使用、查看效果和相關(guān)說明,需要的朋友可以參考下
    2024-09-09
  • vue啟動(dòng)報(bào)錯(cuò)‘vue-cli-service serve‘問題及解決

    vue啟動(dòng)報(bào)錯(cuò)‘vue-cli-service serve‘問題及解決

    這篇文章主要介紹了vue啟動(dòng)報(bào)錯(cuò)‘vue-cli-service serve‘問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評(píng)論

莱州市| 东平县| 休宁县| 双柏县| 蒙阴县| 常熟市| 武城县| 缙云县| 筠连县| 德阳市| 延寿县| 崇义县| 土默特左旗| 延长县| 喀喇沁旗| 博客| 耿马| 密山市| 札达县| 徐汇区| 定兴县| 石屏县| 始兴县| 永登县| 鄂尔多斯市| 拜城县| 榆林市| 阳曲县| 嵊州市| 玉环县| 兴义市| 新巴尔虎左旗| 始兴县| 青川县| 五指山市| 公主岭市| 霍城县| 应用必备| 张家界市| 西安市| 徐水县|