JS+CSS实现炫酷光感效果

下面我将详细讲解“JS+CSS实现炫酷光感效果”的完整攻略。

准备工作

在开始实现炫酷光感效果之前,我们需要先准备好以下内容:

  1. 一个包含至少一个元素的 HTML 页面
  2. 具有光感特性的图片或其他媒体资源
  3. 一些基本的 CSS 和 JavaScript 知识

实现方法

接下来,我们将通过以下步骤实现炫酷光感效果:

步骤一:在 HTML 文件中添加所需元素

首先,在 HTML 文件中添加一个元素作为光感效果的容器。例如:

<div id="my-container">
  <img src="my-image.jpg" alt="My Image" />
</div>

这个容器中包含了一个图片,可以根据实际需要进行修改。

步骤二:使用 CSS 设置基本样式

接下来,为容器设置一些基本样式,以便光感效果能够被正确地应用:

#my-container {
  position: relative;
}

#my-container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

以上 CSS 代码中,我们为光感容器设置了相对定位,并使用伪类元素 ::before 创建一个与容器大小和位置相同的空元素,为后面的光感效果提供了一个可操作的基础。

步骤三:使用 JavaScript 实现光感效果

最后,使用 JavaScript 实现光感效果。下面是一个示例代码:

var container = document.getElementById("my-container");
container.addEventListener("mousemove", function (e) {
  var x = e.clientX / window.innerWidth;
  var y = e.clientY / window.innerHeight;
  container.style.setProperty("--mouse-x", x);
  container.style.setProperty("--mouse-y", y);
});

这段代码首先获取了光感容器的 HTML 元素,然后监听鼠标移动事件,并将当前鼠标的位置的横纵坐标除以窗口的宽高,得到一个 0 到 1 之间的值,并将其分别存储为 xy。最后,通过 setProperty 方法将 xy 存储为 CSS 变量。

步骤四:使用 CSS 设置光感效果

最后,在 CSS 文件中设置光感效果:

#my-container::before {
  background: radial-gradient(
    circle at var(--mouse-x, 0) var(--mouse-y, 0),
    transparent 10%,
    rgba(255, 255, 255, 0.4) 20%,
    rgba(255, 255, 255, 0.1) 40%,
    transparent 60%
  );
}

以上 CSS 代码中,我们使用 radial-gradient 创建了一个径向渐变的背景效果。其中,渐变的圆心位置的横纵坐标分别使用了 var(--mouse-x, 0)var(--mouse-y, 0),这些变量的值在 JavaScript 代码中进行了设置。

示例

下面是使用代码环境 CodePen 所编写的两个示例(请将以下代码复制到 CodePen 中):

示例一:光感效果图片

<div id="my-container">
  <img src="https://picsum.photos/id/100/500/300" alt="My Image" />
</div>

<style>
  #my-container {
    position: relative;
  }

  #my-container::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(
      circle at var(--mouse-x, 0) var(--mouse-y, 0),
      transparent 10%,
      rgba(255, 255, 255, 0.4) 20%,
      rgba(255, 255, 255, 0.1) 40%,
      transparent 60%
    );
  }

  #my-container img {
    display: block;
    width: 100%;
    height: auto;
  }
</style>

<script>
  var container = document.getElementById("my-container");
  container.addEventListener("mousemove", function (e) {
    var x = e.clientX / window.innerWidth;
    var y = e.clientY / window.innerHeight;
    container.style.setProperty("--mouse-x", x);
    container.style.setProperty("--mouse-y", y);
  });
</script>

示例二:光感效果文字

<div id="my-container">
  <h1>Awesome Title</h1>
  <p>Some amazing description here!</p>
</div>

<style>
  #my-container {
    position: relative;
    text-align: center;
    padding: 50px;
    background: linear-gradient(to bottom, #0e71dd, #0d589d);
    color: #fff;
  }

  #my-container::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(
      circle at var(--mouse-x, 0) var(--mouse-y, 0),
      rgba(0, 0, 0, 0.5) 5%,
      rgba(0, 0, 0, 0.2) 10%,
      transparent 50%
    );
    pointer-events: none;
  }

  #my-container h1 {
    font-size: 60px;
    margin: 0;
    letter-spacing: 4px;
  }

  #my-container p {
    font-size: 24px;
    margin-top: 20px;
  }
</style>

<script>
  var container = document.getElementById("my-container");
  container.addEventListener("mousemove", function (e) {
    var x = e.clientX / window.innerWidth;
    var y = e.clientY / window.innerHeight;
    container.style.setProperty("--mouse-x", x);
    container.style.setProperty("--mouse-y", y);
  });
</script>

以上就是“JS+CSS实现炫酷光感效果”的完整攻略,希望对你有帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS+CSS实现炫酷光感效果 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JavaScript中apply方法的应用技巧小结

    我们先来介绍一下apply方法的基本用法。apply方法是JavaScript中的一种函数方法,在调用函数时,可以指定函数内部this关键字指向的对象,并且可以传入一个类数组对象作为函数的参数。apply方法的语法如下: // functionName为需要调用的函数名 // obj为函数内this关键字指向的对象 // argArray为传入函数的参数数组…

    JavaScript 2023年6月11日
    00
  • JS编程小常识很有用

    JS编程小常识是指在JavaScript编程中,常用到的一些小技巧和注意事项。这些小常识可以帮助开发者以更高效、安全、健壮的方式编写JavaScript代码。下面是一个完整的攻略,包括示例说明 1. 变量声明 使用const和let来声明变量,而不是使用var。 使用const对于不会被重新赋值的变量,使用let对于可能被重新赋值的变量。 不要使用全局变量,…

    JavaScript 2023年6月10日
    00
  • 详解addEventListener的三个参数之useCapture

    addEventListener是DOM元素对象常用的事件绑定方法,其常用的用法如下: element.addEventListener(event, function [, options]); 其中,第三个参数options可以是一个布尔值,也可以是一个对象。当其是一个布尔值时,表示useCapture,即事件是否在捕获阶段(capturing phas…

    JavaScript 2023年6月11日
    00
  • 学node 之前你要知道这些

    初识nodejs   19年年底一个偶然的机会接到年会任务,有微信扫码登录、投票、弹幕等功能,于是决定用node 来写几个服务,结果也比较顺利。   当时用看了下koa2的官方文档,知道怎么连接数据库、怎么映射表实体,怎么处理http,怎么处理异常等,就可以直接写起来了。从应用层面上来说 nodejs 入门还是挺简单的,前几天在整理语雀时发现前几年整理的no…

    JavaScript 2023年5月9日
    00
  • 浅谈js中对象的使用

    浅谈JS中对象的使用 Javascript是一门面向对象的语言,因此对象是其核心之一。对象是JS编程中的重要特性之一,也是数据在JS中的主要形式。本篇文章将介绍JS中对象的基础概念、使用方法及常用技巧。 什么是对象 在JavaScript中,对象是一个值(value),这个值可以被当作一个容器,存储一组属性/方法(properties/methods)。每个…

    JavaScript 2023年5月27日
    00
  • JavaScript实现表单验证案例

    下面我将详细讲解JavaScript实现表单验证的完整攻略。这个攻略将分为以下几个部分: 规划表单验证的流程和步骤 编写JavaScript代码实现表单验证 示例说明1:验证用户名和密码 示例说明2:验证邮箱地址格式 规划表单验证的流程和步骤 在开始编写JavaScript代码之前,我们需要先规划表单验证的流程和步骤。一般情况下,表单验证的流程如下: 获取表…

    JavaScript 2023年6月10日
    00
  • JSON序列化与解析原生JS方法且IE6和chrome测试通过

    JSON序列化与解析原生JS方法且IE6和chrome测试通过 简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,因此在服务端和客户端的数据交换中被广泛应用。 在 JavaScript 中,我们可以通过 JSON.stringify() 方法将 JavaScript 对…

    JavaScript 2023年6月11日
    00
  • 实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码

    让我来详细讲解一下 “实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码”的完整攻略。 1. 简介 本文将教您如何使用 HTML5 Canvas 绘制炫酷的烟花绽放动画。烟花中的每个小点都是由一颗小小的圆组成,我们将使用 Canvas 绘制这些小圆,然后使用动画效果让它们绽放。在本文中,我们将使用 JavaScript 和 Canvas API …

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部