如何在滚动上只运行一次jQuery动画?
How can I run a jQuery animation only once on scroll?
我试图使用Javascript来检测用户何时向下滚动超过我网站上的某个高度,然后我的"社交"图标一旦达到滚动断点就会褪色。
我想弄清楚的是我怎么能只运行fadeTo一旦alpha点击1并锁定它?所以当用户再次上下滚动时淡出不会反复发生除非他们重新加载页面那会重置一切。
//SCROLL
$(window).on("scroll", function () {
//SOCIAL ICONS
if ($(this).scrollTop() > 1750) {
$(".img-social .gith").stop(true).fadeTo(250, 1);
$(".img-social .inst").stop(true).fadeTo(450, 1);
$(".img-social .twit").stop(true).fadeTo(650, 1);
$(".img-social .drib").stop(true).fadeTo(850, 1);
$(".img-social .link").stop(true).fadeTo(1050, 1);
} else {
$(".img-social .gith").stop(true).fadeTo(10, 0);
$(".img-social .inst").stop(true).fadeTo(10, 0);
$(".img-social .twit").stop(true).fadeTo(10, 0);
$(".img-social .drib").stop(true).fadeTo(10, 0);
$(".img-social .link").stop(true).fadeTo(10, 0);
}
});
谢谢
使用布尔值记录是否发生:
// SET BOOLEAN
var scrolled = false;
//SCROLL
$(window).on("scroll", function () {
//SOCIAL ICONS
if ($(this).scrollTop() > 1750 && !scrolled) {
$(".img-social .gith").stop(true).fadeTo(250, 1);
$(".img-social .inst").stop(true).fadeTo(450, 1);
$(".img-social .twit").stop(true).fadeTo(650, 1);
$(".img-social .drib").stop(true).fadeTo(850, 1);
$(".img-social .link").stop(true).fadeTo(1050, 1);
scrolled = true;
} else {
$(".img-social .gith").stop(true).fadeTo(10, 0);
$(".img-social .inst").stop(true).fadeTo(10, 0);
$(".img-social .twit").stop(true).fadeTo(10, 0);
$(".img-social .drib").stop(true).fadeTo(10, 0);
$(".img-social .link").stop(true).fadeTo(10, 0);
scrolled = false;
}
});
只需将以下代码放入您的第一个if
条件到off
scroll
事件中,一旦您运行代码:
$(window).on("scroll.socialIcon", function () {
if ( $(this).scrollTop() > 1750 ) {
// ...
$(window).off("scroll.socialIcon"); // last line
} else {
//...
}
});
因此scroll.socialIcon
(命名空间)事件将不再响应
相关文章:
- 每次鼠标悬停触发一次 jquery 效果
- 只执行一次jquery animate
- 调用一次jQuery函数
- 如何在上一次 JQuery 调用后访问 DOM
- 为什么我的Javascript全局变量只更新一次?jQuery最后一个子选择器错误
- 如何从Angular指令运行一次jQuery插件
- 如何在一个页面、每个会话中只触发一次jquery函数
- 鼠标悬停只工作一次?JQuery
- 每15秒运行一次jquery函数
- PHP重定向破坏ajax,所以强制一次Jquery页面刷新
- 我们如何只加载一次jquery函数
- 每x秒调用一次jQuery函数(对象文字模式)
- 每次调用只切换一次jQuery动画
- 如何只执行一次Jquery代码?
- 检查iFrame是否加载.一次.Jquery
- 点击里面的点击功能导致警告信息显示不止一次- Jquery/Javascript
- 如何在滚动上只运行一次jQuery动画?
- 如何每n秒运行一次jQuery load()请求
- 每隔5秒在一个元素上重复运行一次jQuery.click事件
- 如何只执行一次Jquery代码