用vue实现,鼠标悬停放大图片,根据鼠标位置倾斜图片网页源码
大家好,今天给大家介绍一款,用vue实现的,鼠标悬停放大图片,并根据鼠标位置倾斜图片前端网页源码(图1)。送给大家哦,获取方式在本文末尾。
图1
鼠标悬停放大图片,鼠标移动图片就会进行相应角度的倾斜,有3D的效果(图2)
图2
源码完整,部分代码预览:
-
Vue.component("photo-card", {
-
template: `<a class="card"
-
:href="https://blog.csdn.net/mazai5080/article/details/link"
-
target="_blank"
-
ref="card"
-
@mousemove="move"
-
@mouseleave="leave"
-
@mouSEO((Search Engine Optimization))ver="over">
-
<div class="reflection" ref="refl"></div>
-
<img :src="https://blog.csdn.net/mazai5080/article/details/img"/>
-
</a>`,
-
props: ["img", "link"],
-
mounted() {},
-
data: () => ({
-
debounce: null }),
-
-
methods: {
-
over() {
-
const refl = this.$refs.refl;
-
refl.style.opacity = 1;
-
},
-
leave() {
-
const card = this.$refs.card;
-
const refl = this.$refs.refl;
-
card.style.transform = `perspective(500px) scale(1)`;
-
refl.style.opacity = 0;
-
},
-
-
move() {
-
const card = this.$refs.card;
-
const refl = this.$refs.refl;
-
-
const relX = (event.offsetX 1) / card.offsetWidth;
-
const relY = (event.offsetY 1) / card.offsetHeight;
-
const rotY = `rotateY(${(relX - 0.5) * 60}deg)`;
-
const rotX = `rotateX(${(relY - 0.5) * -60}deg)`;
-
card.style.transform = `perspective(500px) scale(2) ${rotY} ${rotX}`;
-
-
const lightX = this.scale(relX, 0, 1, 150, -50);
-
const lightY = this.scale(relY, 0, 1, 30, -100);
-
const lightConstrain = Math.min(Math.max(relY, 0.3), 0.7);
-
const lightOpacity = this.scale(lightConstrain, 0.3, 1, 1, 0) * 255;
-
const lightShade = `rgba(${lightOpacity}, ${lightOpacity}, ${lightOpacity}, 1)`;
-
const lightShadeBlack = `rgba(0, 0, 0, 1)`;
-
refl.style.backgroundImage = `radial-gradient(circle at ${lightX}% ${lightY}%, ${lightShade} 20%, ${lightShadeBlack})`;
-
},
-
scale: (val, inMin, inMax, outMin, outMax) =>
-
outMin (val - inMin) * (outMax - outMin) / (inMax - inMin) } });
-
-
-
-
const app = new Vue({
-
el: "#grid" });
本模板编码:10130,需要的朋友,关注下面微信公众号后,搜索10130,即可获取。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgeieia
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01