javascript - 像 Pinterest 一样接管浏览器滚动条的模态窗口

标签 javascript jquery css backbone.js

我有一个模态窗口,它显示的内容比浏览器的窗口高度长,所以我需要创建一个模态窗口来接管浏览器的滚动条,就像我们在 Pinterest 上看到的那样。此外,单击图像将使该图像转换到模态窗口中的位置。

注意打开模式如何改变滚动条

enter image description here

问题:如何创建相同的模态窗口(接管滚动条)和图像动画?我知道当模态窗口出现时,浏览器地址栏中的 URL 会发生变化,但您会注意到页面并没有真正发生变化。我可以使用 backbone.js 做到这一点,所以不用担心。

HTML 代码

<div id="showModal">Click me!</div>

<div class="modal">
    <div class="modal_item">
        <div class="modal_photo_container">
            <img src="img/posts/original/1019_bb8f985db872dc7a1a25fddeb3a6fc3c43981c80.jpg" class="modal_photo">
        </div>
    </div>
</div>

JS代码

$('#showModal').click(function() {
    $('.modal').show();
});

最佳答案

首先,我会为您的模式建议一个类似于此的 html 结构:

    <div class="modal-container">
        <div class="modal">
        </div>
    </div>

然后,在“点击”时,将 overflow:hidden 添加到 body,然后以某种方式将 display:block 添加到.模态容器.modal-container 会有相应的 css:

.modal-container {
   display: none;
   overflow-y: scroll;
   position: fixed;
   top: 0; right: 0;
   height: 100%; width: 100%; 
}

http://jsfiddle.net/joplomacedo/WzA4y/ 查看一个工作示例

关于javascript - 像 Pinterest 一样接管浏览器滚动条的模态窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11405238/

相关文章:

javascript - 如何在 jQuery 中调整滚动速度

javascript - chop 具有多个字符的字符串而不 chop 单词

javascript - 显示父 UL 并为根父节点显示 UL 和 LI 节点

javascript - 将用 jQuery 编码的图像 slider 转换为纯 JS

CSS 帮助 - 导航对齐

javascript - 为什么在 JS 中隐式转换比显式转换快得多?隐式类型转换是一种好习惯吗?

javascript - 获取带有延迟对象的异步请求的请求参数

jquery - 带有 JQuery 动画的纯 CSS 可折叠树导航

css - 重写 material-ui 样式

html - 使页脚在调整大小时被内容推离页面,而不是悬停在上面