首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FadeOut函数移动问题

FadeOut函数移动问题
EN

Stack Overflow用户
提问于 2017-06-16 23:11:13
回答 2查看 187关注 0票数 1

我使用jQuery的函数来隐藏我的头。

它可以像我喜欢的那样工作,但它在移动设备上有一个问题。

问题是: fadeOut没有缓慢地隐藏元素,而且函数正在移动整个页面20-30像素。

这是一项功能:

代码语言:javascript
复制
$(window).scroll(function() {
  if ($(this).scrollTop()>50) {
    $('.c-header').fadeOut();
  } else {
    $('.c-header').fadeIn();
  }
});

有什么办法解决吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-17 14:08:30

这就是解决办法。我只是把媒体查询放在脚本中

代码语言:javascript
复制
// media query event handler
if (matchMedia) {
  var mq = window.matchMedia("(min-width: 64em)");
  mq.addListener(WidthChange);
  WidthChange(mq);
}

// media query change     window width is at least 64em
function WidthChange(mq) {
  if (mq.matches) {
     $(window).scroll(function() {
    if ($(this).scrollTop()>50)     {
        $('.c-header').fadeOut();
     }   else     {
        $('.c-header').fadeIn();
    }
    });
  }
};
票数 0
EN

Stack Overflow用户

发布于 2017-06-16 23:35:40

您正在设置渐变转换与每一个滚动变化,即很多次每秒,而你正在滚动。只有在停止滚动后才允许淡出转换:

代码语言:javascript
复制
$(window).scroll(function () {
  var me = $(this);
  var header = $('.c-header');
  var height = 50; // Might as well be header.outerHeight()
  clearTimeout(window.headerScrollTimeoutId||0);
  window.headerScrollTimeoutId = setTimeout(function () {
    if (me.scrollTop() > height) {
      header.fadeOut();
    } else {
      header.fadeIn();
    }
  }, 1);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44599144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档