jquery实现背景墙聚光灯效果示例分享


当然,我可以为你提供一个简单的 jQuery 示例,用于实现背景墙的聚光灯效果。这个效果通常是通过遮罩层(mask)和动态改变其透明度或位置来实现的。以下是一个基本的实现思路,它使用了 jQuery 来动态改变一个圆形遮罩的位置和透明度,从而模拟聚光灯效果。

首先,你需要在 HTML 中添加一个容器作为背景墙,并添加一个遮罩层:


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>聚光灯效果</title>
<style>
  #background {
    width: 100%;
    height: 500px;
    background-image: url('your-background-image.jpg'); /* 替换为你的背景图片 */
    background-size: cover;
    position: relative;
  }
  #spotlight {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.5); /* 初始透明度 */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: transform 0.5s ease, background-color 0.5s ease;
  }
</style>
</head>
<body>

<div id="background">
  <div id="spotlight"></div>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
  $(document).ready(function() {
    // 示例:每隔2秒移动聚光灯
    setInterval(function() {
      var newTop = Math.random() * ($('#background').height() - $('#spotlight').height());
      var newLeft = Math.random() * ($('#background').width() - $('#spotlight').width());
      $('#spotlight').css({
        top: newTop,
        left: newLeft,
        transform: 'translate(-' + (newLeft + $('#spotlight').width() / 2) + 'px, -' + (newTop + $('#spotlight').height() / 2) + 'px)',
        // 可以添加透明度变化来增强效果
        'background-color': 'rgba(255, 255, 255, ' + (Math.random() * 0.5 + 0.2) + ')'
      });
    }, 2000);
  });
</script>

</body>
</html>

这个示例中,我使用了 CSS 来定义背景墙和聚光灯的样式,包括背景图的设置、遮罩层的大小、形状和初始位置。在 jQuery 脚本中,我设置了一个定时器,每隔2秒随机改变聚光灯的位置和透明度。注意,由于聚光灯是通过绝对定位来放置的,我们还需要通过 `transform` 属性来调整其实际位置,以确保它在移动时保持居中。

请确保替换 `your-background-image.jpg` 为你自己的背景图片 URL。此外,这个示例中的聚光灯大小、移动速度和透明度变化范围都是可调的,你可以根据需要自行调整。