javascript - 浏览器滚动动画

标签 javascript jquery jquery-ui jquery-plugins

我使用了 jQuery,如下面的代码行

  $(window).load(function() {
  $(".shuffle").each(function() {
  $(this).circulate({
        speed: Math.floor(Math.random()*300) + 100,
        height: Math.floor(Math.random()*100) - 70,
        width: Math.floor(Math.random()*100) - 70
         });
      });
   });

圆形动画在页面加载时效果很好。

html就像

  <div id="target">
  <div class="shuffle"></div>
  <div class="shuffle"></div>
  <div class="shuffle"></div>
  <div class="shuffle"></div>
  </div>

现在我希望当用户向下滚动浏览器时,当他到达带有 id 目标部分的 div 时,动画应该开始......

请帮忙!!!

最佳答案

var isElementInViewport = function ($element) {
    //element has to be a jQuery element with length > 0
    var domElement = $element[0];
    var height = $element.outerHeight();
    var rect = domElement.getBoundingClientRect();
    return (
        rect.top >= 0 - height &&
        rect.bottom <= $(window).height() + height
    );
};

var shuffle = function($element) {
 //only shuffle elements within the target
 $(".shuffle", $element).each(function() {
    $(this).circulate({
      speed: Math.floor(Math.random()*300) + 100,
      height: Math.floor(Math.random()*100) - 70,
      width: Math.floor(Math.random()*100) - 70
     });
  });
}

var flag = false;
var $target = $('#target');
$(document).on('scroll', function(){
  if(isElementInViewport($target)){
    if (!flag) {
      flag = true;
      shuffle($target);
    }
  }
});

关于javascript - 浏览器滚动动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37807534/

相关文章:

javascript - 如何使用 Jquery 选择动态添加的元素

jquery - 减小表格中的字体大小,使表格适合 div 内

javascript - css jquery ui slider 自定义

javascript - 使用 addEventListener 将 javascript 添加到表单时出现问题

Javascript 和 for 循环不起作用

javascript - 使用 chart.js 创建动态图表

jQuery UI 选项卡转到选项卡中的特定 div

javascript - 当光标位于内部 svg 元素上时,d3-zoom 中断

javascript - jQuery:无法获取单选按钮值

javascript - Jqueryui图像引用没有错误但图像不显示