下面提供详细的 JS 实现背景图片感应鼠标变化的方法的攻略:
下面提供详细的 JS 实现背景图片感应鼠标变化的方法的攻略:
一、实现原理
利用鼠标的移动事件,将鼠标的位置转换成图片的坐标,然后将图片的位置与鼠标位置相对应,从而实现背景图片随鼠标移动。
二、实现步骤
-
首先需要确定使用的背景图片。
-
在 HTML 中定义一个容器,用于放置要实现背景图片响应鼠标变化的元素。
-
在 JavaScript 中获取容器元素,并为其添加鼠标移动事件监听器。
javascript
const container = document.querySelector('.container');
container.addEventListener('mousemove', function(event) {
// TODO:将鼠标位置转换成图片坐标,并更新背景图片位置
});
- 在鼠标移动事件处理程序中,获取鼠标位置 (event.clientX 和 event.clientY),计算出图片在容器中的位置,并更新背景图片位置。
javascript
const container = document.querySelector('.container');
container.addEventListener('mousemove', function(event) {
const mouseX = event.clientX;
const mouseY = event.clientY;
const bgX = -mouseX * 0.02; // 根据需求重新计算图片坐标
const bgY = -mouseY * 0.02;
container.style.backgroundPosition = `${bgX}px ${bgY}px`;
});
- 最后,在 CSS 中设置容器的背景为获取到的图片,并添加样式。
三、示例代码
示例1:CSS样式实现
HTML:
<div class="container">
<h1>Example 1</h1>
</div>
CSS:
.container {
background-image: url('background-image.jpg');
background-position: center center;
background-size: cover;
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
}
JavaScript:
const container = document.querySelector('.container');
container.addEventListener('mousemove', function(event) {
const mouseX = event.clientX;
const mouseY = event.clientY;
const bgX = -mouseX * 0.02; // 根据需求重新计算图片坐标
const bgY = -mouseY * 0.02;
container.style.backgroundPosition = `${bgX}px ${bgY}px`;
});
示例2:jQuery实现
HTML:
<div class="container">
<h1>Example 2</h1>
</div>
CSS:
.container {
background-image: url('background-image.jpg');
background-position: center center;
background-size: cover;
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
}
JavaScript:
$(document).ready(function() {
$('.container').mousemove(function(event) {
const mouseX = event.clientX;
const mouseY = event.clientY;
const bgX = -mouseX * 0.02; // 根据需求重新计算图片坐标
const bgY = -mouseY * 0.02;
$(this).css('background-position', `${bgX}px ${bgY}px`);
});
});
以上两个示例分别使用了纯 CSS 和 jQuery 来实现背景图片响应鼠标变化,其中示例2使用了 jQuery 中的 mousemove()
方法,与示例1的原生 JavaScript 代码不同。经过实际测试,这两个示例均可以正常工作。
本文标题为:js实现背景图片感应鼠标变化的方法
基础教程推荐
- Ajax传输中文乱码问题的解决办法 2023-01-20
- css清除浮动clearfix:after的用法详解(附完整代码) 2023-12-21
- 详细谈谈JS中的内存与变量存储 2023-12-03
- 前端(HTML)+后端(Django)+数据库(MySQL):用户注册及登录演示 2023-10-26
- Python脚本Selenium及页面Web元素定位详解 2023-12-20
- javascript实现阻止iOS APP中的链接打开Safari浏览器 2024-01-07
- vue 中 get / delete 传递数组参数方法 2023-10-08
- 整理CSS中遇到的一些常见问题(Hack标识/固定容器/图片垂直居中) 2023-12-22
- 活到老学到老学习AJAX跨域(三) 2022-12-15
- 前端面试题 - HTML 中的长度单位 2023-10-28