是否可以仅在光标区域下方(例如白色小圆圈)更改背景的不透明度?我在想它有点像基本的热图,但是热量并没有消失-它只是跟随着光标。

目前,我有以下内容

HTML:

html {
  background-color: #000;
  width: 100%;
  height: 100%;
}

JS:
$(document).mousemove(function(event){
    var i = event.pageX.toPrecision(1) / 1000;
    $("html").css('opacity', i)
});

抱歉,这可能是一个非常基本的起点。我需要使用 Canvas 吗?

最佳答案

您可以使用svg做到这一点

我做了什么 :-

当鼠标移动圆的位置时,我将两个具有相同坐标(高度和宽度)的相同图像放置在顶部,并给它们一个圆形的clip-path(具有完全的不透明度)。

$('svg').on('mousemove',function(e){
    $('.a').attr('cx',e.pageX).attr('cy',e.pageY)

})
.one{
    opacity:.5;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<svg width="500" height="500">
    <clippath id="clip" >
        <circle cx="50" cy="50" r="50" class="a"/>
    </clippath>

    <image xlink:href="https://images.unsplash.com/photo-1474575981580-1ec7944df3b2?dpr=1&auto=format&fit=crop&w=1500&h=934&q=80&cs=tinysrgb&crop=&bg=" width="500" height="500" x="0" y="0"   class="one"/>

   <image xlink:href="https://images.unsplash.com/photo-1474575981580-1ec7944df3b2?dpr=1&auto=format&fit=crop&w=1500&h=934&q=80&cs=tinysrgb&crop=&bg=" width="500" height="500" x="0" y="0" clip-path="url(#clip)"/>
  </svg>

09-16 11:58