javascript - 滚动时触发 setTimeout

标签 javascript jquery html css web

我正在尝试延迟超时效果,目前效果在页面加载时开始,我希望它在我滚动到某个 div 时开始 Here is how it currently is

我做了一些搜索,发现了一个名为 waypoint 的库,它允许使用下面的代码基于路点触发事件,但没有成功。我还尝试将显示设置为无,并在触发 css 动画后更改它,但当它出现时在页面上,进度条已经就位。

 var waypoint = new Waypoint({
  element: document.getElementById('waypoint'),
  handler: function(direction) {
    console.log('Scrolled to waypoint!')
  }
})

最佳答案

所以,这是我可以想出的 JSFiddle。 https://jsfiddle.net/md0m60cb/6/

看看 CSS,我在那里将一些 ID 更改为类。这样,我在 Javascript 中执行了以下操作:

            $(document).ready(function () {
            $('#startAnimation').waypoint(function () {
                setTimeout(function () {
                    $('#progress-html').addClass('progress-html-class');
                }, 2800);

                setTimeout(function () {
                    $('#progress-css').addClass('progress-css-class');
                }, 3500);

                setTimeout(function () {
                    $('#progress-javascript').addClass('progress-javascript-class');
                }, 4200);

                setTimeout(function () {
                    $('#progress-php').addClass('progress-php-class');
                }, 4900);

                setTimeout(function () {
                    $('#progress-angular').addClass('progress-angular-class');
                }, 5600);
            });
        });

那么,它有什么作用呢?使用 JQuery,我为保存动画的行分配了一个路径点(id 为 #startAnimation)。一旦它到达那个路点,我就设置了不同延迟的超时,添加了必要的 css 类,这反过来又触发了动画。

我希望我能澄清我在这里所做的事情。如果您有问题,请回复。

关于javascript - 滚动时触发 setTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37629080/

相关文章:

javascript - 如何使用Web sql数据库对两个表进行递归查询?

javascript - ajax调用后如何保留toggleClass事件状态?

javascript - jQuery for 循环问题的 setInterval

javascript - 使用 JavaScript 访问时,DOM 元素的样式属性为空字符串

html - index.html 文件的宽度和高度与其他页面不同[但它应该]

javascript - 如何解码这个加密代码?

javascript - 如何确定我的 JavaScript 是否在 Nodejs 中运行

javascript - 将 ajax 请求绑定(bind)到特定元素 Rails 3.1

javascript - 如何改进我的 "random words cloud"函数?

html - 如何使用 angular renderer2 将 mat-icon 动态添加到 div?