- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数字自动收报机。出于演示目的,这是 how the counter is meant to work .它计数然后停止。
现在,我试图让代码脚本在 #ticker
出现时执行。为此,我使用了 waypoints
。但是,我遇到了以下问题:
#ticker
出现,脚本就不会立即执行。事实上,我必须滚动过去,然后当我向上滚动时,它才开始计数。为什么会这样?
演示:
$(document).ready(function() {
$('#ticker').waypoint(function() {
$('.count').each(function() {
const initial = $(this).text()
const format = formatter(initial)
$(this).prop('Counter', 0).animate({
Counter: format.value
}, {
duration: 3000,
easing: 'swing',
step: function(now) {
$(this).text(format.revert(Math.ceil(now)));
}
});
});
});
})
function formatter(str) {
// const delimeter = '-'
const char = 'x'
const template = str.replace(/\d/g, char)
const value = str.replace(/\D/g, '')
function revert(val) {
// need better solution
const valStr = val.toString()
let result = ''
let index = 0
for (let i = 0; i < template.length; i++) {
const holder = template[i]
if (holder === char) {
result += valStr.slice(index, index + 1)
index++
} else {
result += holder
}
}
return result
}
return {
template: template,
value: value,
revert: revert
}
}
.gap{
background: lightgrey;
height: 600px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.min.js"></script>
<div class="gap"></div>
<div id="ticker">
<span class="count counter">16,000+</span>
</div>
<div class="gap"></div>
最佳答案
Waypoint 插件有一个选项offset
,它决定了应该在哪个位置触发处理程序,默认情况下是0
。这意味着您的处理程序只会在您的元素到达浏览器的顶部边缘时触发,并且每次您的元素到达浏览器的顶部边缘时都会触发。
这就是您的情况,您只需将偏移量传递给 Waypoint,它就会被修复。
$(document).ready(function() {
$('#ticker').waypoint({
handler: function() {
$('.count').each(function() {
const initial = $(this).text()
const format = formatter(initial)
$(this).prop('Counter', 0).animate({
Counter: format.value
}, {
duration: 3000,
easing: 'swing',
step: function(now) {
$(this).text(format.revert(Math.ceil(now)));
}
});
});
},
offset: '100%'
});
})
function formatter(str) {
// const delimeter = '-'
const char = 'x'
const template = str.replace(/\d/g, char)
const value = str.replace(/\D/g, '')
function revert(val) {
// need better solution
const valStr = val.toString()
let result = ''
let index = 0
for (let i = 0; i < template.length; i++) {
const holder = template[i]
if (holder === char) {
result += valStr.slice(index, index + 1)
index++
} else {
result += holder
}
}
return result
}
return {
template: template,
value: value,
revert: revert
}
}
.gap{
background: lightgrey;
height: 600px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.min.js"></script>
<div class="gap"></div>
<div id="ticker">
<span class="count counter">16,000+</span>
</div>
<div class="gap"></div>
关于javascript - Waypoints 计数器向上计数(然后向下计数)并且当 div 处于即时 View 时不执行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58265897/
我正在使用 jQuery 航路点插件。以下内容工作正常,除了在页面加载时控制台消息在我滚动之前被触发。如果我删除应用于图像的显示 block ,这将停止,但我的网站需要它才能工作。
我最近在我的项目中将 jquery-waypoints 从 2.x 升级到 3.x,发现我的很多代码都坏了。所有对 $(this) 的引用在我的处理程序中必须更改为 $(this.element)一旦
在尝试实现来自 http://imakewebthings.com/waypoints/shortcuts/infinite-scroll/ 的 Waypoints 无限滚动示例时遇到问题. 这是一个
我正在使用 waypoint 版本 3.1.1 和 jquery 版本,还使用粘性快捷方式并将其作为我的调用代码 $('.navWrap').waypoint('sticky', { direct
我正在使用 JQuery Waypoint 滚动左侧导航。如何在页脚之前停止滚动? var $jq = jQuery.noConflict(); $jq(document).ready(functi
我正在尝试使用 jquery-waypoint 插件在页脚进入/离开视口(viewport)时触发事件。 我在 jsfiddle 上创建了一个示例但该事件不会在页脚元素上触发。 有什么建议吗? 最佳答
我正在学习有关使用 jQuery 路径点创建带有粘性标题的单页网站的教程。 http://webdesign.tutsplus.com/tutorials/javascript-tutorials/c
我在使用 waypoint 插件时遇到问题,就像 http://webdesign.tutsplus.com/tutorials/javascript-tutorials/create-a-stick
如果有这样的代码 var waypoint = new Waypoint({ element:document.getElementsByClassName ('waypoint'), ha
我有一个很好的 Waypoint.js 滚动列表,当您向下滚动并从目标(窗口)点击一定百分比时,它会更改字体样式并向列表项添加一个箭头。 现在,它在向下的过程中为每个元素添加箭头,并在向上
我希望在 jquery waypoint 中有 2 个偏移量。目前只有一个,相同的,用于向上和向下滚动。 我使用的是 25% 的“向下”偏移,并且想要“75%”的“向上”偏移。因此,当 block 的
我正在尝试使用 Waypoints library . 我的用例是,我需要检测用户何时阅读页面的 20%、40% 等。 然而,该库的工作方式似乎有所不同,因为它会检测某个 DOM 元素何时进入 Vie
在我的代码中,我希望在滚动的每个部分上元素都可见,但这并没有发生。在第一部分中,它工作正常,但在第二部分中则不然,我实际上也在使用 fullpage.js。但除了第二部分的 waypoint.js 之
当用户滚动时,我在元素上使用 Waypoints 和 Animate.css。它看起来和工作都很好,但是我的 JS 文件看起来很困惑,因为我还必须使用 JS 添加类,因为它们不能出现在这个项目的标记中
我正在加载“jquery.waypoints.min.js”(当我使用网络分析工具查看时似乎加载正确),但这个简单的脚本没有任何反应: $(document).ready(function() {
我正在尝试实现 jQuery Waypoints 插件,以便在任何具有 .foo 类的元素进入视口(viewport)时将 .active 类添加到该元素: var inview = new Wa
我使用 jQuery Waypoints 插件和粘性附加组件来锁定窗口底部的表单提交部分,直到滚动到表单底部时自然显示该部分。 出于设计/风格的原因,我需要粘性版本具有跨越整个窗口的顶部边框,而当该部
我正在使用 waypoints.js在项目中每当列表元素可见时触发事件。唯一的问题是,似乎什么都没有发生 - waypoint.reached 事件似乎没有触发。 文件 (waypoints.js)
我正在尝试使用 JQuery Waypoints 来制作变色标题。我有一组对象显示单页网站的各个部分及其相关颜色(见下文): var colours = new Array( {section
标题基本上就是这么说的。我在 offset 参数中输入什么并不重要,它只会在元素到达窗口顶部时触发。 $('.waypoint').waypoint({ handler: funct
我是一名优秀的程序员,十分优秀!