实现鼠标悬停卡片3D视差效果及恢复初始位置

实现鼠标悬停卡片3d视差效果及恢复初始位置

本文将指导你如何使用JavaScript和CSS创建一个具有3D视差效果的卡片,并在鼠标移出卡片时使其平滑地恢复到初始位置。我们将详细讲解实现步骤,并提供完整的代码示例,帮助你轻松掌握该效果的实现方法。

实现步骤

要实现鼠标悬停卡片3D视差效果,并使其在鼠标移出后恢复到初始位置,需要以下步骤:

HTML结构: 创建包含卡片内容的HTML结构。CSS样式: 设置卡片的初始样式,例如宽度。JavaScript交互: 使用JavaScript监听鼠标移动事件和鼠标移出事件,并根据鼠标位置动态改变卡片的旋转角度。

详细实现

1. HTML结构

首先,创建一个包含卡片内容的HTML结构。这里使用一个 div 元素作为卡片容器,并在其中包含一个 img 元素作为卡片内容。

@@##@@

2. CSS样式

为了使卡片能够正确显示,并且能够自适应内容宽度,我们需要设置一些CSS样式。 关键是设置 width: fit-content。

.card-active {  width: fit-content;}

3. JavaScript交互

接下来,使用JavaScript来实现鼠标悬停时的3D视差效果,并在鼠标移出时恢复到初始位置。

let cardParallx = document.querySelector('.card-active');cardParallx.addEventListener('mousemove',(e)=>{    let x =(window.innerWidth/2 - e.pageX)/30;    let y =(window.innerHeight/2 - e.pageY)/30;    cardParallx.style.transform =`rotateX(${-y}deg) rotateY(${-x}deg)`;});cardParallx.addEventListener('mouseout', (e) => {    let x =(window.innerWidth/2 - e.pageX)/30;    let y =(window.innerHeight/2 - e.pageY)/30;    cardParallx.style.transform =`rotateX(0) rotateY(0)`;});

这段代码首先获取了卡片元素。然后,它监听了 mousemove 事件,当鼠标在卡片上移动时,根据鼠标的位置计算出旋转角度,并使用 transform 属性来旋转卡片。

为了实现鼠标移出后恢复到初始位置,我们监听了 mouseout 事件,当鼠标移出卡片时,将旋转角度设置为 rotateX(0) rotateY(0),从而使卡片恢复到初始状态。

完整代码示例

以下是完整的HTML、CSS和JavaScript代码示例:

  3D Parallax Card      .card-active {      width: fit-content;    }    
@@##@@
let cardParallx = document.querySelector('.card-active'); cardParallx.addEventListener('mousemove',(e)=>{ let x =(window.innerWidth/2 - e.pageX)/30; let y =(window.innerHeight/2 - e.pageY)/30; cardParallx.style.transform =`rotateX(${-y}deg) rotateY(${-x}deg)`; }); cardParallx.addEventListener('mouseout', (e) => { let x =(window.innerWidth/2 - e.pageX)/30; let y =(window.innerHeight/2 - e.pageY)/30; cardParallx.style.transform =`rotateX(0) rotateY(0)`; });

注意事项

可以调整 mousemove 事件中的除数(例如,30),来控制视差效果的强度。 数值越小,视差效果越明显。可以添加CSS过渡效果,使卡片旋转和恢复过程更加平滑。 例如,在 .card-active 类中添加 transition: transform 0.3s ease;。如果卡片内容比较复杂,可能会影响性能。 可以考虑使用 requestAnimationFrame 来优化动画效果。

总结

通过本文的教程,你学会了如何使用JavaScript和CSS创建一个具有3D视差效果的卡片,并在鼠标移出时使其恢复到初始位置。这个效果可以为你的网页增加一些交互性和视觉吸引力。 记住,理解代码背后的逻辑是关键,这样你才能根据自己的需求进行修改和扩展。

实现鼠标悬停卡片3D视差效果及恢复初始位置实现鼠标悬停卡片3D视差效果及恢复初始位置

以上就是实现鼠标悬停卡片3D视差效果及恢复初始位置的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1573166.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月22日 15:13:38
下一篇 2025年12月22日 15:13:53

相关推荐

  • 使用 JavaScript 和 CSS 实现图片悬停时动态改变文本内容

    本文将介绍如何使用 JavaScript 和 CSS 实现当鼠标悬停在不同图片上时,动态改变下方文本内容的效果。通过监听鼠标事件并结合 CSS 样式控制,可以实现简单而直观的交互体验,适用于产品展示、信息提示等多种场景。本文提供详细的代码示例和步骤说明,帮助开发者快速实现该功能。 要实现图片悬停时改…

    2025年12月22日 好文分享
    000
  • 使用 JavaScript 和 CSS 实现图片悬停时动态改变下方文本内容

    本文将详细介绍如何使用 JavaScript 和 CSS 技术,实现当鼠标悬停在不同图片上时,动态改变下方文本内容的效果。我们将通过示例代码,逐步讲解实现过程,并提供注意事项,帮助开发者快速掌握该技巧,提升用户交互体验。 实现原理 该效果的核心在于监听图片的 mouseover(鼠标悬停)和 mou…

    2025年12月22日 好文分享
    000
  • 图像悬停联动文本切换:JavaScript 实现指南

    本文档详细介绍了如何使用 JavaScript 实现当鼠标悬停在不同图像上时,动态改变下方文本内容的效果。通过监听鼠标事件,并结合 CSS 控制文本的显示与隐藏,提供了一种简单有效的解决方案,适用于需要在图像交互时展示不同信息的场景。 在网页设计中,经常会遇到需要根据用户的交互行为来动态改变页面内容…

    2025年12月22日 好文分享
    000
  • PHP 文件上传错误处理:在输入字段旁显示错误信息

    本文旨在提供一种在 PHP 文件上传过程中,当发生错误时,将错误信息直接显示在对应文件上传输入字段旁边的方法。通过改进错误处理机制,使用数组存储错误信息,并将其与相应的输入字段关联,从而提升用户体验,使得用户能够快速定位并解决上传问题。 在处理文件上传时,清晰地向用户展示错误信息至关重要。以下是一个…

    2025年12月22日
    000
  • 使用 PHP 处理文件上传错误并在表单中显示

    这段代码演示了如何在 PHP 文件上传过程中捕获错误,并将这些错误信息清晰地显示在对应的文件上传输入框旁边。通过使用数组来存储错误信息,并结合 HTML 结构,可以有效地向用户反馈上传失败的原因,从而提升用户体验。 错误处理与显示 在处理文件上传时,及时有效地向用户反馈错误信息至关重要。PHP 的 …

    2025年12月22日
    000
  • 自定义浏览器自动填充与搜索建议样式:CSS与JavaScript实践

    本文深入探讨如何在不禁用%ignore_a_1%原生功能的前提下,自定义搜索框下自动弹出的历史搜索词或自动填充建议的样式。针对浏览器提供的自动填充和建议框,我们将介绍如何利用特定的CSS伪类(如-webkit-autofill)来调整其输入框本身的样式。文章将明确指出浏览器原生建议下拉框的样式限制,…

    2025年12月22日
    000
  • 如何使用CSS自定义浏览器自动填充建议的样式

    浏览器提供的自动填充功能极大地提升了用户的搜索效率,但其默认样式往往与自定义的搜索框风格不符。本文将介绍如何使用CSS来定制这些自动填充建议框的样式,使其与自定义搜索框风格保持一致,从而提升用户体验。 使用 :-webkit-autofill 伪类选择器 :-webkit-autofill 是一个 …

    2025年12月22日
    000
  • 控制输入框自动填充样式的CSS技巧

    本文深入探讨了如何利用CSS对浏览器原生自动填充(Autofill)的输入框进行样式定制。我们将重点介绍:-webkit-autofill等伪类选择器,它们允许开发者在输入框被浏览器自动填充后,修改其背景、文本颜色等视觉属性。文章还将澄清浏览器自动填充建议下拉框与输入框本身样式之间的区别,并提供实用…

    2025年12月22日
    000
  • 实现鼠标悬停卡片3D视差效果并在鼠标移开后恢复初始状态

    本文将指导你如何使用JavaScript和CSS创建一个具有3D视差效果的卡片,并在鼠标移出卡片区域后,使其平滑地恢复到初始状态。通过监听mousemove和mouseout事件,并动态修改卡片的transform属性,实现这一效果。本文提供完整的代码示例,助你轻松掌握该技巧。 创建卡片HTML结构…

    2025年12月22日
    000
  • 实现鼠标悬停时的 3D 视差效果并在鼠标移开后恢复初始位置

    本文将指导你如何使用 JavaScript 和 CSS 创建一个简单的 3D 视差效果,该效果会在鼠标悬停在元素上时产生,并在鼠标移开后使元素恢复到其原始位置。我们将提供完整的代码示例和详细的步骤说明,帮助你轻松实现这一效果。 实现步骤 HTML 结构 首先,我们需要一个 HTML 结构来展示我们的…

    2025年12月22日
    000
  • 使用JavaScript和CSS实现图片悬停时改变下方文本内容

    本文将介绍如何使用JavaScript和CSS,在鼠标悬停在不同图片上时,动态改变下方文本框中显示的内容。核心思路是利用JavaScript监听图片的mouseover和mouseout事件,并根据当前悬停的图片,显示对应的文本内容,隐藏其他文本。本文提供完整的HTML、CSS和JavaScript…

    2025年12月22日 好文分享
    000
  • Angular 方法调用理解与实践

    本文旨在帮助开发者理解 Angular 组件中方法如何在 HTML 模板中正确调用。通过分析一个实际的 HTML 模板和对应的 Angular 代码示例,我们将深入探讨方法调用的参数传递问题,并提供正确的实践指导,确保 Angular 应用的正常运行。 在 Angular 应用开发中,正确地将组件中…

    2025年12月22日
    000
  • 在 Safari 中实现文本拖放到 Textarea 的简易方法

    在 Safari 浏览器中实现文本拖放到 Textarea,相对于 Chrome 和 Firefox 存在一些差异。本文将介绍一种简单有效的解决方案,使得在 Safari 中也能获得类似 Firefox 的拖放体验,即无需选中全部文本即可进行拖放。 解决方案 该方案的核心在于利用 Safari 特有…

    2025年12月22日
    000
  • HTML图片无法显示?常见原因及解决方案

    第一段引用上面的摘要:本文旨在帮助开发者解决HTML网页中图片无法正常显示的问题。我们将探讨常见的原因,包括图片URL错误、文件路径问题、以及代码中的潜在错误,并提供详细的解决方案和示例代码,确保你的图片能够正确加载并显示在网页上。 图片URL错误 最常见的原因是标签的src属性中指定的图片URL不…

    2025年12月22日 好文分享
    000
  • 使用HTML在网页中正确显示图片:常见问题与解决方案

    本文旨在解决在使用HTML向网页添加图片时遇到的常见问题,重点讲解如何正确使用标签,以及如何获取可用的图片URL。同时,也会简单提及一些可能导致图片无法显示的CSS问题,并提供修正后的HTML示例代码,帮助开发者快速解决图片显示问题。 理解 标签 在 HTML 中, 标签用于在网页中嵌入图片。它是一…

    2025年12月22日 好文分享
    000
  • 解决CSS Grid布局中grid-gap无效的问题

    本文旨在解决CSS Grid布局中grid-gap属性无法创建元素间隙的问题。通过分析grid-gap的作用范围,解释了其为何在特定情况下失效,并提供了一种将多个Grid容器放入一个更大的Grid容器中,从而实现元素间隙的解决方案。本文通过示例代码和清晰的解释,帮助开发者理解和正确使用grid-ga…

    2025年12月22日
    000
  • 实现 Safari 浏览器中文本拖放功能的简易方法

    实现 Safari 浏览器中文本拖放功能的简易方法 在现代 Web 应用中,拖放(Drag and Drop)功能已经变得越来越常见。然而,不同浏览器对拖放功能的支持程度和实现方式存在差异。本文将重点介绍如何在 Safari 浏览器中实现文本拖放功能,使其行为与 Firefox 浏览器类似,即用户只…

    2025年12月22日
    000
  • CSS Grid 布局中 grid-gap 无效的常见原因及解决方案

    grid-gap 属性用于在 CSS Grid 布局中创建网格项目之间的间距,但如果使用不当,可能会导致间距失效。本文将分析 grid-gap 的作用范围,并通过实际示例演示如何正确使用它来控制网格项目之间的间距。 理解 grid-gap 的作用范围 grid-gap 属性定义的是网格内部的间距,而…

    2025年12月22日 好文分享
    000
  • CSS Grid 布局中 grid-gap 属性失效的原因及解决方案

    在 CSS Grid 布局中,grid-gap 属性用于设置网格轨道之间的间距。然而,开发者有时会发现设置了 grid-gap 属性,但网格项之间并没有出现预期的间距。本文将深入探讨这个问题,解释 grid-gap 的正确用法,并提供有效的解决方案。 理解 grid-gap 的作用范围 首先,需要明…

    2025年12月22日
    000
  • 实现侧边导航单选激活效果:JavaScript与CSS实践

    本教程旨在解决侧边导航菜单中多项同时激活显示边框的问题。通过JavaScript动态管理CSS类,确保在点击任一菜单项时,仅当前被选中的菜单项显示红色激活边框,而其他所有菜单项的激活状态被清除,从而实现单一选中效果,提升用户体验。 侧边导航基础结构 在构建交互式侧边导航时,我们通常会使用html来定…

    2025年12月22日
    000

发表回复

登录后才能评论
关注微信