jquery - 如何根据页面滚动位置为对象设置动画

标签 jquery html

我目前正在使用以下代码根据当前滚动位置显示/隐藏内容:

$(window).scroll(function () {
    if ($(window).scrollTop() >= 409) {
        $('.cliocont').fadeTo('slow', 1.0);
    } else if ($(window).scrollTop() <= 409) {
        $('.cliocont').fadeTo('slow', 0.5);
    }
});

这段代码似乎不起作用有什么原因吗?无论何时 else if 语句代码都有效,但无论何时添加它,内容都不会出现或隐藏。

谢谢, 内森·尼亚梅尔

最佳答案

添加了 .stop() 以防止动画淡入淡出错误
和一个 bool 标志 var io 以防止不必要的动画:

jsBin demo

var $cc = $('.cliocont'),
    io  = false; // flag // compare booleans

$(window).scroll(function () {
  
   var is409 = $(window).scrollTop() >= 409; // boolean
   if (io != is409){
      io = is409;
      $cc.stop().fadeTo(800, is409?1.0:0.5);
   }
 
}); 

是 409 吗? 1.0 : 0.5Conditional Operator和 它是 if 语句的简写;
bool 值?如果为真 : 否则 ;

关于jquery - 如何根据页面滚动位置为对象设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11528713/

相关文章:

javascript - jQuery 验证成功

html - 如何根据宽度更改文本字段的占位符?

html - 复合组件和 CSS

javascript - 显示在复选框树中选择的选项

javascript - 如何通过JQuery选择其中没有html的<select>元素

javascript - 无焦点输入拖放jquery

javascript - 如何在简单的 jquery 幻灯片代码中添加上一个和下一个按钮

javascript - Modernizr 调用后 $(window).load()...不工作

jquery - 禁止元素被选中 - Jquery 和 CSS

JavaScript - Try & Catch - 无法捕获 Window.postMessage() 错误