更改滚动时的 div 不透明度

2024-05-11

我怎样才能做到当你向下滚动页面时,下一个 DIV 会在前一个 DIV 之上淡出?

我设置了这个小提琴来更好地说明它:http://jsfiddle.net/meEf4/176/ http://jsfiddle.net/meEf4/176/
例如,如果您位于页面的中间,则背景为蓝色。

编辑:这是 jsFiddle 的内容,以防它爆炸并且有人遇到类似的问题。

<style>
html, body, #red, #green, #blue { height: 100%}
#container { height: 300%}
#red, #green, #blue { 
    position: fixed; 
    top: 0; 
    width: 100%;
}
#red { background:red; z-index: 5}
#blue { background:blue; z-index: 4}
#green { background:green; z-index: 3}​    
</style>

<div id="container">
    <div id="red"></div>
    <div id="blue"></div>
    <div id="green"></div>
</div>​

你可以这样做:

var target = $('div.background');
var targetHeight = target.height();
var containerHeight = $('#container').outerHeight();

var maxScroll = containerHeight - targetHeight;
var scrollRange = maxScroll/(target.length-1);

$(document).scroll(function(e){
    var scrollY = $(window).scrollTop();
    var scrollPercent = (scrollRange - scrollY%scrollRange)/scrollRange;
    var divIndex = Math.floor(scrollY/scrollRange);

    target.has(':lt(' + divIndex + ')').css('opacity', 0);
    target.eq(divIndex).css('opacity', scrollPercent);
    target.has(':gt(' + divIndex + ')').css('opacity', 1);
});​

工作演示小提琴 http://jsfiddle.net/meEf4/222/

您可以使用以下命令将滚动值映射到需要定位的背景 divmaxScroll value除以the number of background divs - 1。这个数字是一个背景 div 必须覆盖的滚动范围。然后,您可以使用以下方法计算该 div 的滚动百分比scroll value模数the scroll range,这样您就可以为目标 div 获得一个介于 1 和 0 之间的值。

然后将目标 div 设置为计算值,下面的 div 的不透明度为 1,上面的 div 的不透明度为 0(因为它们之前经历过 1 到 0 的范围)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改滚动时的 div 不透明度 的相关文章

随机推荐

  • 参数声明 [] 和 *(数组)

    在函数定义中的形式参数之间 例如 void change int s s 0 42 还有另一个定义 void change int s s 0 42 我认为它们是相同的 因为 a 0 是相同的a 0 有理由选择其中一种而不是另一种吗 请注意
  • php字符串是值类型吗?

    为什么php的string是值类型 每次将参数传递给函数时 每次进行赋值时 每次连接都会导致字符串被复制时 它都会被复制到各处 我的 NET 经验告诉我 它似乎效率低下 迫使我几乎在任何地方都使用引用 考虑以下替代方案 替代方案1 This
  • magento 删除管理菜单项

    在magento中 是否可以删除管理中的菜单项 我有一个新模块 并将评论和评级拉到一个新部分 我不反对将它们也留在目录部分 但如果可能 并且干净 我想将其从那里删除 将下一行添加到扩展 config xml 文件
  • 如何在 Google Maps API 中指示语言?

    就像你访问一样maps google com tw or maps google co kr or maps google co jp 您可以看到每个国家 地区都显示自己的语言 我可以在 Google 地图 API 中使用任何属性来动态设置
  • 强制某些页面通过 HTTPS,而其他页面则通过 HTTP...这可能吗?

    我真的被这个困住了 基本上 我尝试使用 IIS 的 URLRewrite 附加组件始终通过 SSL 制作 2 个页面 但我还需要强制所有其他页面使用 HTTP 叹气 不要问 但如果我强制其他页面通过 HTTP 那么当您查看 SSL 页面时
  • Simon Ics 日期选择器对话框抛出 android.view.InflateException:二进制 XML 文件行 #20:错误膨胀类 net.simonvt.widget.DatePicker

    我正在使用 Simon 的 ICS 日期选择器库 https github com SimonVT https github com SimonVT 在我的 Android 应用程序中 我有一个日期按钮 如果单击该按钮 它将在对话框中显示
  • AWS DMS 无法截断 SQL 事务日志

    我们正在运行 AWS DMS 以 SQL 作为源 以 DynamoDB 作为目标 我们很难截断事务日志 我们看到每个 AWS DMS 有 2 个 SQL 任务 如下所示 begin transaction WVGLQ7HFWFWJCCPK4
  • 将游标中的数据合并为一个

    我有一个存储过程 它多次执行另一个存储过程 我需要联合并返回数据 这是在执行第二个过程后得到的 我可以以某种方式将多个游标中的数据合并到另一个游标中吗 没有临时表或类表数据类型是否可能 编辑 联合的游标计数实际上是 n 其中 n 是 1 2
  • 文档 Main.storyboard 需要 Xcode 8.0 或更高版本

    我下载了 Xcode beta 并打开了现有的项目 看看它如何与 Xcode 8 beta 一起使用 我从 Xcode 8 打开了 Storyboard 文件 现在 当我从 Xcode 7 3 打开项目时 我无法打开故事板文件 它给出了以下
  • Xcode 7.3 beta 1 与 Swift 中的 CommonCrypto

    我在 Swift 框架中使用 CommonCrypto 它已经运行良好一年多了 我使用了这里找到的解决方案 在 Swift 框架中导入 CommonCrypto https stackoverflow com questions 25248
  • Laravel 验证:对 null 的成员函数调用失败()

    这段代码几天前还可以工作 但我似乎做了一些事情导致它崩溃 我有这条路线 Route post admin routemanagement AdminController addRoute 看起来像这样 public function add
  • PHP 强制 Apache 错误

    感谢这个论坛 我了解到 PHP header 函数实际上并不将 header 发送到 Apache 服务器 而只发送到客户端 我想要做的是生成错误 500 并让 Apache 显示其相应的页面 有办法强制吗 提前致谢 还有 Allez le
  • android中类似的函数SwingUtilities.invokeLater?

    有时我觉得使用 AsyncTask 对于 该任务来说有点大材小用 我正在寻找类似的函数 比如 android 中的 SwingUtilities invokeLater 因为我只想执行一行代码 所以没有必要为此创建一个新类 也许您正在寻找
  • 使用 PHP 查询更改表,列名未显示在 phpMyAdmin 中

    这是我的第一篇文章 这里有一篇类似的文章 phpMyAdmin 不显示添加的列 代码日志 https stackoverflow com questions 12960302 phpmyadmin doesnt show added col
  • Qt 5.0.1:应用程序不会在 Qt 创建者之外执行

    我正在尝试运行程序 TransitTalker exe 这是我从 qt 编译的代码 如下图所示 https www dropbox com s ypgklrm4uschri5 filecontents png https www dropb
  • 订阅并在第一次操作后立即取消订阅

    我想订阅IObservable
  • NHibernate 忽略长度属性

    运行 SQL Profiler 后 我意识到 NHibernate 正在将字符串映射到nvarchar 4000 我通过指定修复了它type AnsiString and length 在 hbm 文件中 现在正在生成varchar 800
  • .gitlab-ci.yml yaml 内的数组变量

    我想在 gitlab ci cd yml 文件的变量中使用数组 如下所示 variables myarrray abc dcef script echo myarray 0 myarray 1 但 Lint 告诉我该文件不正确 variab
  • 如何使用 Angular4 进行 Codeigniter 视图?

    首先 我的 PHP Codeigniter 项目当前在服务器上运行 然后我在服务器上安装了最新的 Angular4 CLI Typescript 但我不知道如何与Codeigniter项目集成 如何像 AngularJS 一样在 Codei
  • 更改滚动时的 div 不透明度

    我怎样才能做到当你向下滚动页面时 下一个 DIV 会在前一个 DIV 之上淡出 我设置了这个小提琴来更好地说明它 http jsfiddle net meEf4 176 http jsfiddle net meEf4 176 例如 如果您位