(vue)新闻列表与图片对应显示,体现选中、移入状态

news/2025/2/11 21:49:00/

(vue)新闻列表与图片对应显示,体现选中、移入状态


项目背景:郑州院XX项目首页-新闻展示模块,鼠标移入显示对应图片,且体现选中和移入状态


首次加载:
在这里插入图片描述

切换列表后:

在这里插入图片描述


html:

<el-row :gutter="20" class="process-content"><el-col :span="10"><div class="block"> //图片<el-image :src="picUrl" class="newImage" :fit="fit"><div slot="placeholder" class="image-slot">加载中<span class="dot">...</span></div></el-image></div></el-col><el-col :span="14"><div class="newsBody"><divv-for="(item, index) of newsList.slice(0, 4)"//截取收据前4个:key="index"class="news-list":class="{'active' : change === index}" //选中样式tabindex="1" //选中@mouseenter="handleMouseEnter(item)" //移入@mouseleave="handleMouseLeave(item)" //移出@click="newClick(item,index)" //点击><span class="newsTitle">{{ item.title }}</span><div class="newsDesc">{{ item.keywords }}</div></div></div></el-col>
</el-row>

js:

data() {return {      newsList: [{picUrl:'https://fuss...10.jpeg',title: '...技术',keywords: '通过改变...'},{picUrl:null,title: '加热...',keywords: '...'},...],picUrl: null,change: 0, //初始选中第一条新闻fits: 'fill' // 'fill', 'contain', 'cover', 'none', 'scale-down'}
},methods:{// 获取新闻getNews() {newsSelect().then((res) => { this.newsList = res.data.list;this.picUrl = this.newsList[0].picUrl; //初始显示第一条新闻的图片});},// 移入handleMouseEnter(item, index) {//若返回图片地址为空则给默认图片if (item.picUrl !== null) {this.picUrl = item.picUrl} else {this.picUrl = require('@/assets/images/dashboard/noData.png') }},// 移出handleMouseLeave() {//恢复被选中项的图片this.picUrl = this.newsList[this.change].picUrl !== null ? this.newsList[this.change].picUrl : require('@/assets/images/dashboard/noData.png')},// 点击newClick(item, index) {this.change = index //选中的项}}

css:

.process-content {height: 480px;margin-top: 20px;.block{width: 100%;height: 400px;display: flex;justify-content: center;align-items: center;.newImage{height: 400px;}}.newsBody {height: 400px;.news-list{height: 70px;border-bottom: 1px solid #d1cfcf;padding: 15px 30px;transition: all 0.3s;overflow: hidden;.newsTitle {font-size: 20px;font-weight: 600;}.newsDesc {color: #666;font-size: 14px;margin-top: 10px;}}//重点.news-list:hover,.news-list:focus{color: #fff;background-color: #065de0;.newsDesc {color: #fff;}}}
}
//重点
.active{color: #fff;background-color: #065de0;.newsDesc {color: #fff !important;}
}

http://www.ppmy.cn/news/1391495.html

相关文章

图解 LFU 缓存淘汰算法以及在 Redis 中的应用(附带个人完整代码实现)

文章目录 LFU 算法理论介绍算法实现数据结构查询操作插入/更新操作 Redis 缓存淘汰算法缓存污染难题Redis LFU缓存淘汰策略 本篇博客的主要内容&#xff1a; 以图解的方式&#xff0c;介绍 LFU 算法的一种实现&#xff1b;介绍 LFU 算法在 Redis 中的应用。 LFU 算法 理论介…

Java中最简单的添加日志链路的方式之一

Java项目中添加日志链路功能的设计与实现 文章目录 Java项目中添加日志链路功能的设计与实现前言一、日志链路的概念与作用二、添加日志链路的设计思路三、如何支持多线程下的日志打印也附加上日志链路id1. 示例1&#xff1a;实现Runnable接口&#xff0c;无返回值2. 示例2&…

【ubuntu20.04+tensorflow-gpu1.14配置】

ubuntu20.04tensorflow-gpu1.14配置 目录0. 版本注意事项说明1. 个人目录下载后配置系统环境变量2. anaconda配置所有环境&#xff08;过程简便&#xff0c;但容易出现不兼容问题&#xff09;3. 验证tensorflow-gpu4. 一些细节 目录 总结出两种方法 个人目录 下载cuda和cudnn…

【openCV】手写算式识别

OpenCV 机器学习库提供了一系列 SVM 函数和类来实现 SVM 模型的训练和预测&#xff0c;方便用户实现自己的 SVM 模型&#xff0c;并应用于分类问题。本文主要介绍使用 openCV 实现手写算式识别的工作原理与实现过程。 目录 1 SVM 模型 1.1 SVM 模型介绍 1.2 SVM 模型原理 2…

语言设置和 时间设置 wifi设置和ip设置 这些设置属于什么设置?

这些设置通常归类于不同的设置类别&#xff0c;具体如下&#xff1a; 语言设置&#xff08;Language Settings&#xff09;和时间设置&#xff08;Time Settings&#xff09;&#xff1a; 这些设置属于系统设置&#xff08;System Settings&#xff09;或设备设置&#xff08;D…

StarRocks学习笔记

介绍场景建表明细模型聚合模型更新模型主键模型 介绍 StarRocks是一款经过业界检验、现代化&#xff0c;面向多种数据分析场景的、兼容MySQL协议的、高性能分布式关系型分析数据库。 StarRocks充分吸收关系型 OLAP 数据库和分布式存储系统在大数据时代的优秀研究成果&#xff…

JAVA安全(偏基础)

SQL注入 SQLI(SQL Injection)&#xff0c; SQL注入是因为程序未能正确对用户的输入进行检查&#xff0c;将用户的输入以拼接的方式带入SQL语句&#xff0c;导致了SQL注入的产生。攻击者可通过SQL注入直接获取数据库信息&#xff0c;造成信息泄漏。 JDBC JDBC有两个方法获取s…

全国产飞腾+FPGA架构,支持B码+12网口+多串电力通讯管理机解决方案

行业痛点: 中国的电力网络已经成为当今世界覆盖范围最广、结构最为复杂的人造科技系统。随着国家和各部委颁布了一系列法律法规&#xff0c;如国家颁布的《中华人民共和国网络安全法》、工信部颁布的《工业控制系统信息安全防护指南》、发改委颁布的14号令《电力监控系统安全防…