【问题标题】:Adding another CSS id to jQuery Function向 jQuery 函数添加另一个 CSS id
【发布时间】:2017-08-29 21:46:29
【问题描述】:

我成功地使用此代码在滚动过程中淡入/淡出我的菜单 ID #shiftnav-toggle-main。我希望合并另一个 ID,例如#side-toggle 我的函数,但我不确定是否有更好的方法来执行此操作,而无需为新 ID 复制我的所有代码。

var menu = jQuery("#shiftnav-toggle-main");
var opacity = menu.css("opacity");
var scrollStopped;
var fadeInCallback = function () {
    if (typeof scrollStopped != 'undefined') {
        clearInterval(scrollStopped);
    }
    scrollStopped = setTimeout(function () {
        menu.animate({ opacity: 1 }, "slow");
    }, 500);
};
jQuery(window).scroll(function() {
     if (!menu.is(":animated") && opacity == 1) {
     menu.animate({ opacity: 0 }, "slow", fadeInCallback);
     } else {
         fadeInCallback.call(this);
     }
});

【问题讨论】:

  • 你可以试试jQuery("#shiftnav-toggle-main,#side-toggle");
  • Sletheren,我无法添加类 bcs 我引用的外部插件.. Chirag,我已经尝试过了,但没有用..

标签: jquery css scroll


【解决方案1】:

您可以创建一个处理机制的函数:

let scrollStopped;

let fadeInCallback = function() {
  if (typeof scrollStopped != 'undefined') {
    clearInterval(scrollStopped);
  }
  scrollStopped = setTimeout(function() {
    menu.animate({
      opacity: 1
    }, "slow");
  }, 500);
};

let handleScrollFade = function(id) {
  let menu = $(id);
  let opacity = menu.css("opacity");

  $(window).scroll(function() {
    if (!menu.is(":animated") && opacity == 1) {
      menu.animate({
        opacity: 0
      }, "slow", fadeInCallback);
    } else {
      fadeInCallback.call(this);
    }
  });

}

handleScrollFade('#shiftnav-toggle-main');
handleScrollFade('#side-toggle');

【讨论】:

  • 如果#side-toggle 作为 iframe 加载,Ivan 会这样做吗?
  • @JoannaMikalai 不确定,但我认为它应该可以工作。你希望 iframe 在滚动时消失吗?
  • 是的,这就是我要找的东西。我需要将你的函数修改为严格模式,然后我会测试它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 1970-01-01
  • 2018-01-07
  • 2021-10-20
  • 1970-01-01
相关资源
最近更新 更多