当前位置: 首页 > news >正文

图片调色盘

图片预览

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

配置安装

Color-Thief 安装包使用文档

yarn add colorthief -S // npm install colorthief --save

代码

<template><div class="img-thief"><div class="container"><div class="thief-item" v-for="(item, index) in imgList" :key="item"><img draggable="false" :src="item" alt="" @contextmenu.prevent @mouseenter="handleMouseEnter($event.target, index)" @mouseleave="handleMouseLeave($event.target, index)" :style="{ opacity: index === hoverIndex ? 1 : hoverIndex === -1 ? 1 : 0.2 }" /></div></div></div>
</template>
<script>
import ColorThief from 'ColorThief';
const colorThief = new ColorThief();
export default {data() {return {imgList: [require('@/assets/thief/1.jpg'), require('@/assets/thief/2.jpg'), require('@/assets/thief/3.jpg'), require('@/assets/thief/4.jpg')],hoverIndex: -1,};},methods: {handleMouseEnter(item, index) {let html = document.documentElement;this.hoverIndex = index;const thiefColors = colorThief.getPalette(item, 3);const mapThiefColors = thiefColors.map((color) => `rgb(${color[0]},${color[1]},${color[2]})`);html.style.setProperty('--thief-bg-color1', mapThiefColors[0]);html.style.setProperty('--thief-bg-color2', mapThiefColors[1]);html.style.setProperty('--thief-bg-color3', mapThiefColors[2]);},handleMouseLeave() {let html = document.documentElement;this.hoverIndex = -1;html.style.setProperty('--thief-bg-color1', '#fff');html.style.setProperty('--thief-bg-color2', '#fff');html.style.setProperty('--thief-bg-color3', '#fff');},},
};
</script><style lang="scss" scoped>
.img-thief {width: 100%;height: 100%;display: grid;place-items: center;background: linear-gradient(to top, var(--thief-bg-color1), var(--thief-bg-color2), var(--thief-bg-color3));
}
.container {width: 800px;height: 800px;
}
.thief-item {width: 370px;height: 370px;margin-left: 20px;margin-top: 20px;float: left;box-sizing: border-box;border: 4px solid transparent;&:hover {border: 4px solid #fff;cursor: pointer;transform: translateZ(10px) scale(1.02);transition: all 0.8s;}img {width: 100%;height: 100%;user-select: none;display: block;}
}
</style>

variable.scss 定义全局变量

html {--thief-bg-color1: #fff;--thief-bg-color2: #fff;--thief-bg-color3: #fff;
}
http://www.lryc.cn/news/186320.html

相关文章:

  • 一文读懂Base64
  • CCF CSP认证 历年题目自练 Day20
  • 【Overload游戏引擎分析】从视图投影矩阵提取视锥体及overload对视锥体的封装
  • vue全局事件总线是什么?有什么用?解决了什么问题,与pinia有什么区别?
  • 【debian 12】:debian系统切换中文界面
  • es官方为我们提供的堆内存保护机制-熔断器( breaker )
  • 靶场通关记录
  • 全网最新最全的软件测试面试题
  • 如何列出 Ubuntu 和 Debian 上已安装的软件包
  • 图论---最小生成树问题
  • elementplus 时间范围选择器限制选择时间范围
  • 【网络】抓包工具Wireshark下载安装和基本使用教程
  • Metasequoia 4 水杉3D建模工具 附序列号
  • 股票杠杆交易平台排名:淘配网推荐的十大平台
  • CoreData + CloudKit 在初始化 Schema 时报错 A Core Data error occurred 的解决
  • 修炼k8s+flink+hdfs+dlink(三:安装dlink)
  • Linux 系统性能瓶颈分析(超详细)
  • kafka与zookeeper的集群
  • sqlalchemy 连接池
  • 用Blender制作YOLO目标检测器训练数据
  • c++视觉处理---均值滤波
  • QT基础入门——Qt事件(五)
  • 自学黑客方法-----(网络安全)
  • Dockerfile自定义容器
  • (5)SpringMVC处理携带JSON格式(“key“:value)请求数据的Ajax请求
  • 【iOS】——仿写计算器
  • 公安机关警务vr综合实战模拟训练提高团队合作能力
  • MySQL-1(12000字详解)
  • voc数据集格式与yolo数据集格式的区别及相互转化
  • 超详细!Android Termux上如何安装MySQL,内网穿透实现公网远程访问