我正在对网页的背景图像使用波纹效果。就目前而言,这种效果会出现在页面加载中,并在用户移动鼠标光标时在背景中产生波纹。我正在尝试找出在设定的时间(20秒)后停止效果的方法。

我尝试使用setInterval()clearInterval(),以及将它们组合/嵌套到setTimeout()中。我复习了类似的问题,但是尝试各种解决方案均无效。

我最近的尝试是:

var animateBackground = setInterval(function() {
    $('body').ripples({
     resolution: 1297,
     dropRadius: 10,
     perturbance: 0.04,
     });
   }, 1000);
  setTimeout(function(){
    clearInterval(animateBackground);
  }, 20000);


我是Web设计/编码的新手,非常感谢社区可以提供的任何帮助。

最佳答案

您具有停止setInterval的正确语法。

但是看起来您正在使用的ripples插件不需要设置时间间隔;它会连续运行,直到您调用$(selector).ripples('pause')$(selector).ripples('destroy')

https://github.com/sirxemic/jquery.ripples

所以你所需要的就是

$('body').ripples({
   resolution: 1297,
   dropRadius: 10,
   perturbance: 0.04,
});
setTimeout(function(){
  $('body').ripples('pause') // or 'destroy', or 'hide'
}, 20000);

09-25 21:36