javascript - 滚动事件的 JS/CSS 解决方案,兼容移动 Safari

标签 javascript jquery html css

在许多网络应用程序中,我经常需要 JS 和/或 CSS 解决方案,以便当用户在页面上向下/向上滚动时可以(增量)更改对象上的 CSS 值。

http://codepen.io/bsley/pen/gGyhm

function EasyPeasyParallax() {
  var scrollPos = $(document).scrollTop();
    $('.header').css({ 'opacity': 1-(Math.min(scrollPos/70,1)) });
};

$(document).ready(function() {
    $('body').bind('mousewheel', EasyPeasyParallax);
});

上述代码存在两个问题。

  1. 它只允许我根据 PX 变量控制数学,而不是相对于屏幕高度或宽度的任何百分比。这对于不同的屏幕尺寸很重要。

  2. 它与 Mobile Safari 根本不兼容。

关于如何实现相同目标但满足上述两点的任何帮助?

最佳答案

要解决您的移动 Safari 问题,请绑定(bind)到 scroll 事件,而不是 mousewheel

$(document).ready(function() {
  $('window').bind('scroll', EasyPeasyParallax);
});

就百分比而言,您必须使用其他一些值自行计算。

function EasyPeasyParallax() {
  var scrollPos = $(document).scrollTop(),
      bodyHeight = $('body').height(),
      viewportHeight = $('window').height(),
      scrollPercentage = (scrollPos / bodyHeight) * 100;
  $('.header').css({ 'opacity': 1-(Math.min(scrollPos/70,1)) });
};

关于javascript - 滚动事件的 JS/CSS 解决方案,兼容移动 Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24024947/

相关文章:

javascript - JQuery 附加到动态 div 元素 - 异步脚本

javascript - scrillTop js 脚本无法正常工作

javascript - 如何用鼠标拖放?

jQuery,如何按名称获取 div 的子输入

javascript - 无法在asp.net中使用Json将数据保存到数据库中

javascript - jQuery 工具提示添加换行符

javascript - 如何一次只显示一个 Accordion

javascript - 使用 Chrome 的 datetime-local 自动填充 Date() UTC

javascript - jquery href 与 handlebars 链接冲突

javascript - 使用 javascript 在 html 中制作一个重定向按钮