vue右键自定义样式

在这里插入图片描述

<!-- eslint-disable vue/no-dupe-keys -->
<template><div><div class="search-box"><div class="search"><el-input placeholder="搜索" prefix-icon="el-icon-search" v-model="input2"></el-input></div></div><div @contextmenu.prevent="showMenu" class="card-box"><el-card class="card" v-for="(item, index) in DataMergin" :key="index"><img :src="item.image" class="image" /><div class="card-txt"><span>{{ item.title }}</span><div class="bottom clearfix"><span>更新时间:{{ item.time }}</span></div></div></el-card></div><div class="fixed-box" :style="{ 'left': menuLeft + 'px', 'top': menuTop + 'px' }" ref="fixedBoxRef" @blur="handle"v-show="isShowMenu"><div :class="index == currentItmeIndex ? 'current-color' : ''" @mouseenter="handleMouseEnter(item, index)"class="menu-item" v-for="(item, index) in menusItme"><i class="icon-position" :class="index == currentItmeIndex ? 'el-icon-check' : ''"></i>{{ item }}</div></div></div>
</template>
<script>
export default {data() {return {input2: "",isShowMenu: false,menuLeft: '',menuTop: '',iconShow: false,fixedBoxRef: '',menusItme: ['模型详情', '重命名', '分享', '移动到', '更新', '简略图', '模型对比', '删除', '插入', '切换'],currentItmeIndex: '',DataMergin: [{title: "Revit",image: require("../../assets/DataMerging_img/Revit.png"),time: "2021.01.31",},{title: "Navisworks",image: require("../../assets/DataMerging_img/Navisworks.png"),time: "2021.01.31",},{title: "MicroStation",image: require("../../assets/DataMerging_img/MicroStation.png"),time: "2021.01.31",},{title: "PDMS",image: require("../../assets/DataMerging_img/PDMS.png"),time: "2021.01.31",},{title: "Sketchup",image: require("../../assets/DataMerging_img/Sketchup.png"),time: "2021.01.31",},{title: "Inventor",image: require("../../assets/DataMerging_img/Inventor.png"),time: "2021.01.31",},{title: "3Ds MAX",image: require("../../assets/DataMerging_img/3Ds MAX.png"),time: "2021.01.31",},{title: "AUTOCAD",image: require("../../assets/DataMerging_img/AUTOCAD.png"),time: "2021.01.31",},],};},mounted() {//失去焦点时关闭右击菜单document.addEventListener("click", (e) => {if (!this.$refs.fixedBoxRef.contains(e.target)) { this.isShowMenu = false; }});},methods: {handleMouseEnter(item, index) {// console.log('鼠标移入', item, index);this.currentItmeIndex = index;if (this.currentItmeIndex === index) {// console.log("相同");this.iconShow = true};},showMenu(e) {// console.log('ssssssssssssssss', e);e.preventDefault()this.isShowMenu = truethis.menuLeft = e.pageXthis.menuTop = e.pageY},handle() {// console.log("失去焦点");}}
};
</script>
<style lang="scss" scope>
.search-box {padding: 15px 55px 50px 0px;background-color: #fff;box-shadow: 0 3px 10px rgba(202, 196, 196, 0.3);
}.search {width: 15%;float: right;
}.card-box {margin: 20px;display: flex;justify-content: flex-start;flex-wrap: wrap;
}.bottom {margin-top: 13px;line-height: 12px;color: #c1c1c1;font-size: 14px;
}.image {width: 100%;height: 250px;display: block;
}.clearfix:before,
.clearfix:after {display: table;content: "";
}.clearfix:after {clear: both;
}.card {text-align: center;width: 23.5%;height: 350px;margin: 0.7%;
}.card-txt {padding: 14px;text-align: center;font-size: 20px;
}.fixed-box {background-color: red;// position: absolute;position: fixed;z-index: 1004;background-color: #dadada;border-radius: 5px;width: 100px;padding-bottom: 8px;// height: 200px;
}.menu-item {// position: absolute;// display: flex;// justify-content: center;// align-items: center;padding-left: 30%;cursor: pointer;margin-top: 8px;position: relative;
}.current-color {background-color: grey;
}.icon-position {position: absolute;left: 5px;top: 2px
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/537715.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读——BLIP

BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation &#xff08;1&#xff09;单模态编码器&#xff0c;它分别对图像和文本进行编码。图像编码器用ViT&#xff0c;并使用附加的 [CLS] 标记来表示全局图像特征。文本…

基础---nginx 启动不了,跟 Apache2 服务冲突

文章目录 查看 nginx 服务状态nginx 启动后 访问页面 127.0.0.1停止 nginx 服务&#xff0c;访问不了页面停止/启动 Apache2 服务&#xff0c;启动 Apache2 页面访问显示正确nginx 莫名启动不了卸载 Apache2 服务器 启动 nginx &#xff0c;但是总是不能实现反向代理&#xff0…

【C++ 学习】内存管理

1. new / delete 和 malloc / free 的区别? malloc / free 和 new / delete 的共同点&#xff1a;都是从堆上申请空间&#xff0c;并且需要用户手动释放。不同的地方是&#xff1a; malloc 和 free 是函数&#xff0c;new 和 delete 是操作符&#xff1b; malloc 申请的空间不…

如何使用vue定义组件之——父组件调用子组件

首先&#xff0c;我们需要创建两个组件模板template&#xff1a; <template id"father"><div><h3>我是父组件</h3><h3>访问自己的数据:</h3><h3>{{ msg }}</h3></div></template><template id"…

数据结构和算法:栈与队列

栈 栈 &#xff08;stack&#xff09;是一种遵循先入后出逻辑的线性数据结构 把堆叠元素的顶部称为“栈顶”&#xff0c;底部称为“栈底”。 将把元素添加到栈顶的操作叫作“入栈”&#xff0c;删除栈顶元素的操作叫作“出栈”。 栈的常用操作 /* 初始化栈 */ stack<int&g…

HelpLook AI 升级!一键生成SEO设置关键要素

| 现代SEO营销为何选择与AI同行 众多企业面临SEO优化日趋复杂的挑战&#xff0c;投入的时间和资源不断攀升。然而&#xff0c;HelpLook利用AI技术&#xff0c;一键完成SEO关键词和描述的生成&#xff0c;无需额外付费或繁琐操作&#xff0c;轻松提升网站曝光和点击率&#xff…

单目测距的基本介绍和实现原理

单目测距的基本介绍和实现原理 单目测距是一种常用的测量技术&#xff0c;它通过单个摄像头来测量物体与摄像头的距离。在现代科技的推动下&#xff0c;单目测距术正在不断发展和应用于各个领域。本文将分点阐述关于单目测距的重要性、原理和方法、应用领域以及潜在的挑战和发展…

openGauss Call for Meetup 计划正式上线

开源数据库openGauss社区&#xff0c;希望通过开源开放&#xff0c;汇聚更多力量&#xff0c;不断探索科技创新的边界。社区正式推出“openGauss Call for Meetup”计划。 资源面向openGauss社区所有成员开放&#xff0c;无论是企业、SIG 组、用户组、科研院所或其他组织&…

基于Java+SpringBoot+vue+element实现校园闲置物品交易网站

基于JavaSpringBootvueelement实现校园闲置物品交易网站 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 ** 作者主页 央顺技术团队** 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文章目录 基于…

算法思想总结:二分查找算法

创作不易&#xff0c;感谢三连&#xff01;&#xff01; 一、二分查找算法思路总结 大家先看总结&#xff0c;然后再根据后面的题型去慢慢领悟 二、二分查找&#xff08;easy&#xff09; . - 力扣&#xff08;LeetCode&#xff09;二分查找 思路&#xff1a;&#xff08;模…

猫头虎博主的技术解码:金三银四特辑——面试官问你为什么离职,HR都认可的离职原因,你学会了吗?

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

深信服技术认证“SCCA-C”划重点:信服云托管云

为帮助大家更加系统化地学习云计算知识&#xff0c;高效通过云计算工程师认证&#xff0c;深信服特推出“SCCA-C认证备考秘笈”&#xff0c;共十期内容。“考试重点”内容框架&#xff0c;帮助大家快速get重点知识。 划重点来啦 *点击图片放大展示 深信服云计算认证&#xff08…