vue 点击加载更多

article/2025/9/18 2:35:44

然后按照需求一步步来,先写基本页面

如果不想看过程,直接去后面完整代码那就可以

<template><div><div><div class="Journalism" ref="div"><div v-for="item in todos" :key="item.id" ref="show"><span>{{item.title}}</span><span>{{item.time}}</span></div></div><div class="JournalismShow">显示更多<i class="el-icon-arrow-down"></i></div></div></div>
</template>
<script>
export default {data(){return{todos:[{id:"1",title:"31省区市新增本土确诊80例、无症状21例",time:'2021-08-06'},{id:"2",title:"江苏新增本土确诊病例61例 其中扬州58例",time:'2021-08-06'},{id:"3",title:"因为这件事 美国又打脸谭德塞!",time:'2021-08-06'},{id:"4",title:"恶劣!拜登签署一份干涉港备忘录",time:'2021-08-06'},{id:"5",title:"巴萨官宣梅西正式离队",time:'2021-08-06'},{id:"6",title:"深圳甩出“王炸” 学区房炒作能否彻底“熄火”?",time:'2021-08-06'},{id:"7",title:"伊朗新总统刚就职 美国就喊话了",time:'2021-08-06'},{id:"8",title:"“全省最差场地” 全红婵儿时就在这里训练",time:'2021-08-06'},{id:"9",title:"湖北新增6例本土确诊、12例本土无症状",time:'2021-08-06'},{id:"10",title:"河南新增1例本土确诊、8例本土无症状",time:'2021-08-06'}],}},
}
</script><style scoped lang="scss">
.Journalism{width: 500px;div{display: flex;justify-content: space-between;span{height: 50px;font-size: 18px;color: #666;line-height: 50px;}}
}.JournalismShow{position: absolute;width: 500px;text-align: center;cursor:pointer;
}
</style>

效果:

后面只贴变化的代码

 需求:默认显示5条其余点击显示更多后显示

<template><div><div><div class="Journalism" :class="{active:flag}" ref="div"><!-- 动态判断是否显示隐藏部分 --><div v-for="item in todos" :key="item.id" ref="show"><span>{{item.title}}</span><span>{{item.time}}</span></div></div><div class="JournalismShow" @click="showTag">显示更多<i :class="flag ? 'el-icon-arrow-down' :'el-icon-arrow-up'"></i></div><!-- 动态判断显示的图标 --></div></div>
</template>
<script>
export default {data(){return{flag:true}},methods:{//点击后切换状态showTag(){this.flag=!this.flag}}
}
</script><style scoped lang="scss">
//默认隐藏
.active{overflow: hidden;height: 250px;
}
</style>

 页面效果:

写到现在我们可以发现css中高度是写死的,上边代码中的div高度都是一样的。

还有一种就是超出宽度换行显示,这种情况写死高度就会出现有可能某一行高度显示不完整

解决:

<template><div><div><!-- scss使用js变量 --><div :style="{'--divHeight':divHeight,'--showHeight':showHeight}" class="Journalism" :class="{active:flag}" ref="div"></div></div></div>
</template>
<script>
export default {data(){return{divHeight:"",showHeight:"",}},methods:{// 获取高度getHeight(){this.divHeight=this.$refs['div'].clientHeight+"px"let numb=0let arr=this.$refs['show']arr.forEach((item,index)=>{if(index<5){numb+=item.clientHeight}})this.showHeight=numb+'px'},},mounted(){this.getHeight()}
}
</script><style scoped lang="scss">
//默认隐藏
.active{overflow: hidden;height: var(--showHeight);
}
</style>

到现在页面基本完成,再设置下css样式就可了。本来是想用过渡的,但是过渡效果需要伪类激活,所以我们选择css动画

<style scoped lang="scss">
.Journalism{width: 500px;overflow: hidden;animation-name: examp;animation-duration: 1s;div{display: flex;justify-content: space-between;span{height: 50px;font-size: 18px;color: #666;line-height: 50px;}}
}
//默认隐藏
.active{overflow: hidden;height: var(--showHeight);animation-name: example;animation-duration: 1s;
}@keyframes example {from {height: var(--divHeight);}to {height: var(--showHeight);}
}
@keyframes examp {from {height: var(--showHeight);}to {height: var(--divHeight);}
}
</style>

页面效果

 

页面写到这里本来以为结束了,但是实验的时候就又发现了问题,刷新页面或者从其他页面跳到此页面后就会先执行了一次的动画,并且页面会闪烁一下。

我想要的是点击后才出现动画,解决的方式也是简单粗暴到让人窒息

<template><div><div class="top"><div :style="{'--divHeight':divHeight,'--showHeight':showHeight}" class="Journalism" :class="flag==0 ?  '' : (flag==1 ?  'active2' : 'active')" ref="div"><!-- 使用三目运算判断是否执行或执行某一个 --><div v-for="item in todos" :key="item.id" ref="show"><span>{{item.title}}</span><span>{{item.time}}</span></div></div><div class="JournalismShow" @click="showTag">显示更多<i :class="flag==1 ?  'el-icon-arrow-up' : 'el-icon-arrow-down'"></i></div><!-- 使用三目运算判断图标的方向 --></div></div>
</template>
<script>
export default {data(){return{// 开始的默认值flag:0,}},methods:{showTag(){// 使用if判断flag的值if(this.flag==0){this.flag=1}else if(this.flag==1){this.flag=2}else{this.flag=1}}}
}
</script><style scoped lang="scss">
.Journalism{width: 500px;overflow: hidden;height: var(--showHeight);div{display: flex;justify-content: space-between;span{height: 50px;font-size: 18px;color: #666;line-height: 50px;}}
}
.JournalismShow{position: absolute;width: 500px;text-align: center;cursor:pointer;
}
.active{overflow: hidden;height: var(--showHeight);animation-name: example;animation-duration: 1s;
}
.active2{height: var(--divHeight);animation-name: examp;animation-duration: 1s;
}@keyframes example {from {height: var(--divHeight);}to {height: var(--showHeight);}
}
@keyframes examp {from {height: var(--showHeight);}to {height: var(--divHeight);}
}
</style>

 完整代码:

<template><div><div class="top"><div :style="{'--divHeight':divHeight,'--showHeight':showHeight}" class="Journalism" :class="flag==0 ?  '' : (flag==1 ?  'active2' : 'active')" ref="div"><div v-for="item in todos" :key="item.id" ref="show"><span>{{item.title}}</span><span>{{item.time}}</span></div></div><div class="JournalismShow" @click="showTag">显示更多<i :class="flag==1 ?  'el-icon-arrow-up' : 'el-icon-arrow-down'"></i></div></div></div>
</template>
<script>
export default {data(){return{todos:[{id:"1",title:"31省区市新增本土确诊80例、无症状21例",time:'2021-08-06'},{id:"2",title:"江苏新增本土确诊病例61例 其中扬州58例",time:'2021-08-06'},{id:"3",title:"因为这件事 美国又打脸谭德塞!",time:'2021-08-06'},{id:"4",title:"恶劣!拜登签署一份干涉港备忘录",time:'2021-08-06'},{id:"5",title:"巴萨官宣梅西正式离队",time:'2021-08-06'},{id:"6",title:"深圳甩出“王炸” 学区房炒作能否彻底“熄火”?",time:'2021-08-06'},{id:"7",title:"伊朗新总统刚就职 美国就喊话了",time:'2021-08-06'},{id:"8",title:"“全省最差场地” 全红婵儿时就在这里训练",time:'2021-08-06'},{id:"9",title:"湖北新增6例本土确诊、12例本土无症状",time:'2021-08-06'},{id:"10",title:"河南新增1例本土确诊、8例本土无症状",time:'2021-08-06'}],divHeight:'',showHeight:"250",flag:0,}},methods:{showTag(){if(this.flag==0){this.flag=1}else if(this.flag==1){this.flag=2}else{this.flag=1}},getHeight(){this.divHeight=this.$refs['div'].clientHeight+"px"let numb=0let arr=this.$refs['show']arr.forEach((item,index)=>{if(index<5){numb+=item.clientHeight}})this.showHeight=numb+'px'},},mounted(){this.getHeight()},
}
</script><style scoped lang="scss">
.Journalism{width: 500px;overflow: hidden;height: var(--showHeight);div{display: flex;justify-content: space-between;span{height: 50px;font-size: 18px;color: #666;line-height: 50px;}}
}
.JournalismShow{position: absolute;width: 500px;text-align: center;cursor:pointer;
}
.active{overflow: hidden;height: var(--showHeight);animation-name: example;animation-duration: 1s;
}
.active2{height: var(--divHeight);animation-name: examp;animation-duration: 1s;
}@keyframes example {from {height: var(--divHeight);}to {height: var(--showHeight);}
}
@keyframes examp {from {height: var(--showHeight);}to {height: var(--divHeight);}
}
</style>

如果大家有更好的方法,欢迎告知!!!


http://chatgpt.dhexx.cn/article/loOxLXSA.shtml

相关文章

uniapp实现点击加载更多

使用场景 举个栗子&#xff1a;外卖app当订单商品数量比较多时&#xff0c;不方便一次性展示出来。通常会展示一部分&#xff0c;并在页面给出一个查看更多功能。点击后即可自定义展示剩余内容&#xff0c;比如可以每次点击多展示N个内容&#xff0c;或展示所有。 实现效果 实…

RecyclerView系列之加载更多

一、背景 很久很久以前简单封装过一次RecyclerView&#xff0c;后来一直开发TV端&#xff0c;列表的需求花样不是很多&#xff0c;主要是解决TV端各种兼容问题&#xff0c;也没怎么琢磨这个美丽的控件了&#xff0c;现在打算重新整理一下&#xff0c;其实网上已经有很多优秀的开…

js页面中实现加载更多功能

分页-如何实现加载更多功能&#xff0c;目前的在很多网站上使用的加载更多功能中&#xff0c;使用最多的是iscroll.js实现的上拉加载更多、下拉刷新功能。但是iscroll.js本身并没有集成加载更多的功能&#xff0c;需要进行自行扩展。 最简单的就是给一个加载更多的按钮&#xf…

微信小程序之加载更多(分页加载)实例

1.业务需求&#xff1a;列表滚动到底部时&#xff0c;继续往上拉&#xff0c;加载更多内容 2.必传参数&#xff1a; &#xff08;1&#xff09;page: 1 //第几次加载 &#xff08;2&#xff09;limit: 5//每次加载的显示数据条数 &#xff08;3&#xff09;total: null //需要返…

自己收藏整理的一些操作系统资源

在CSDN混迹这么多年 感觉在技术宽度和广度都深不可测的C站 Windows方面的技术相对较少一些 今天&#xff0c;借着寻找C站宝藏的活动 介绍一些C站宝藏的 Windows相关资源技术专栏 附带一下猎奇操作系统的资源~~~ 【操作系统资源&#xff1a;吐血整理&#xff0c;建议收藏&a…

写代码爬取了某 Hub 资源,只为撸这个鉴黄平台!

黄色已经是我们所不容然而却防不胜防的&#xff0c;尤其是对于做内容的工具和平台&#xff0c;所以花了30分钟搭建了一个鉴黄平台&#xff0c;分享给大家。 &#xfeff; 数据准备 &#xfeff; 找了 N 多资源都不能解决问题&#xff0c;于是怒爬某 Bub资料&#xff0c;备用…

QGC(QGroundControl)地面站手把手教你改——高德地图的添加和瓦片地图在线资源

如何添加高德地图和瓦片地图在线资源 1. 演示效果2. 代码添加3. 瓦片地图在线资源3.1 高德地图3.2 天地图3.3 其它地图源相关链接 所有的热爱都要不遗余力&#xff0c;真正喜欢它便给它更高的优先级&#xff0c;和更多的时间吧&#xff01; 关于QGC地面站其它文章请点击这里: …

系统硬件资源测算

上一篇写到了架构在规划时&#xff0c;应该做哪些&#xff1f;当项目启动后&#xff0c;资源的需求就会提上议程&#xff0c;包括人力资源、项目所需的软件资源、硬件资源以及其他资源。而今天想探讨的是很少被触及的硬件资源。因为硬件资源的规划往往都是经验值的积累&#xf…

在线学习Java的资源网站

CodeGym&#xff08;https://codegym.cc/&#xff09;&#xff1a;一个在线Java编程课程&#xff0c;80%的内容是练习&#xff0c;适合一窍不通的入门者。 CodeAcademy&#xff08;https://www.codecademy.com/&#xff09;&#xff1a;该课程注重的是在找工作时非常有用的技术…

RTSP在线视频流资源地址

在线视频流地址&#xff1a; rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov 真机显示界面: 模拟器显示界面: 学好一门语言&#xff0c;动手去练&#xff0c;半天上手&#xff0c;一星期炉火纯青。—— 专攻无人车的学长

在线地图资源

一、ARCGIS在线地图资源 1&#xff0c;全球服务地址目录&#xff1a; http://services.arcgisonline.com/arcgis/rest/services 影像&#xff1a; http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer?fjsapi 电子地图&#xff1a; ht…

【ArcGIS微课1000例】0025:ArcGIS Online当前未连接到在线资源终极解决办法

ArcGIS Online在线资源列表: World Imagery: 底图服务: 中国地图彩色版: 打开ArcGIS时,系统托盘提示“ArcGIS Online当前未连接到在线资源”,如下图所示,如果无法连接到ArcGIS Online,则就无法添加在线资源,如World Imagery等。 关于该问题,网上有多种解决办法,然而…

赶紧收藏3个免费在线资源齐全的网站

非搜 是一个综合搜索网站&#xff0c;能同时获得多个网站上的搜索结果展示&#xff0c;在APP上用户也能自己添加网站&#xff0c;除了看所有影视&#xff0c;还有小说&#xff0c;漫画&#xff0c;招聘&#xff0c;搜索&#xff0c;等搜索类型。 优点&#xff1a;不光包含影视…

arcgis当前未连接到在线资源

显示 arcgis当前未连接到在线资源时图标会打叉&#xff0c;一般按步骤破解的都没问题&#xff0c;这种情况应该是突然出现的&#xff0c;具体原因应该是你下了什么病毒软件或者操作损坏了你的网卡配置&#xff0c;这种缺陷不至于来连不了网&#xff0c;但访问界面可能有异常&am…

8个压箱底的资源网站,一个顶十个,再也不用到处找资源了

分享8个压箱底的资源网站&#xff0c;个个都让人相见恨晚&#xff0c;免费且资源丰富&#xff0c;一个顶几十个&#xff0c;有了它们就有了用不完的资源&#xff01; 1、电子书资源&#xff1a;Libgen 一个超好用的电子书搜索下载网站&#xff0c;里面的资源非常丰富&#xf…

微信排行榜主域和子域的操作

在排行榜列表UI加一个 2D精灵&#xff08;最下方&#xff09;初始化子域舞台 在初始化微信平台的时候调用 3.设置子域属性&#xff08;childCanvas 是第一步创建的2D精灵&#xff09; 在当前类的构造或者初始化调用 打开或者关闭排行榜 向子域发送消息 数据上报的key要和 子域获…

原创谷歌站站群泛目录程序

原创谷歌站群系统&#xff0c;市面仅此一家&#xff0c;请尊重知识产权&#xff0c;盗版者&#xff0c;二次盗卖者必将追究 1、系统采用静态缓冲的形式&#xff0c;亲和搜索引擎&#xff0c;无需数据库&#xff0c;无后台 2、自定义关键词、自定义文章内容&#xff0c;无需采…

discuz 二级域名设置

Discuz! X1.5 提供了对 门户、广场&#xff08;论坛&#xff09;、群组、家园的二级域名绑定功能&#xff01;但是如何正确的设置和正确的绑定二级域名呢&#xff1f;下面我就给大家带来这方面的详细 解释和设置过程&#xff01; 我的设置方法不用通过 FTP 编辑 config_g…

域内环境搭建

前言&#xff1a; 分享学习心得&#xff0c;实操笔记记录 搭建条件&#xff1a; 一台windows server 2012 的机器 任意多台不限版本windows机器 当前条件&#xff1a; windows server 2012 windows10 x64 windows 7 x64 win 2012扮演域控&#xff0c;其他两台扮演域内机器…

公域 vs 私域:哪个更优?

公域与私域是当下互联网营销中的热门话题&#xff0c;两者在营销手段和市场开发中各有优劣。公域指的是社交媒体平台、搜索引擎、电商平台等公共平台&#xff0c;而私域则是指企业自己拥有的客户资源、社群和应用等。下面我们将深入探讨公域与私域的区别和优劣。 一、公域的优…