我有一个外部 div 和几个内部 div 水平并排排列。内部 div 代表外部的不同部分(左、左中、右中和右)。覆盖外部 div 的是一个“视口”或框架,在最终产品中,它会将可见内容限制为框架内的内容。实际上,这个视口实际上是前面提到的“外部 div”的父 div,但我已经将它绝对定位,从而将其从页面元素流中移除。
我创建了一个 JQuery 脚本,根据单击的链接将外部 div 向左或向右滑动(中间左侧 div 中的链接会将 div 向右滑动,将左侧的“隐藏”内容暴露出来,反之亦然,用于中间左侧 div 中的链接)。
我想要的是中间 div 的内容以视口为界,这样当外部 div 向左滑动时,中间左侧 div 的内容滑动不超过视口的右边缘,而当外部 div向左滑动,中间右侧 div 的内容不超过视口的左边缘。像这样的东西:
____________________________________________________________
| l || ml | mr || r |
| || | || |
| || | || |
| || | || |
| || | || |
| || | || |
|__________________||_________|________||__________________|
____________________________________________________________
|| l ml || mr r |
|| || |
|| || |
|| || |
|| || |
|| || |
||__________________||_____________________________________|
这是我到目前为止所拥有的一个 jsfiddle:http: //jsfiddle.net/xkjzx/2/ 我唯一没有弄清楚的是如何绑定中间 div 的内容。有人可以向我解释如何做到这一点吗?
编辑:我想保留我的小提琴完成的基础知识。但是,当视口的溢出被隐藏时,我希望它看起来像 #left div 的内容正在滑动到视图中,而 #mid_left div 的内容正在滑动以为其腾出空间(而不是完全滑动像现在一样离开屏幕),反之亦然。
编辑:几乎解决了!这是新的小提琴。我的#left 和#midleft div 运行良好:我向click 事件添加了第二个动画,它改变了中间div 的左边距以适应滑动。然而,同样的技术必须适用于右侧:我必须在#mid_right click 事件中添加第三个动画来更改右侧 div 的边距,因为由于 div 的浮动特性,#mid_right div可以这么说,将#right div 推离屏幕并使其在下一个“行”上呈现。不幸的是,这产生了将我的#mid_right div 渲染到后面的副作用#right div,这样我就不能再点击链接了(我给了#left 和#right div 一个更暗的背景,这样你就可以很容易地看到发生了什么)。我尝试弄乱两个 div 的 z-index,但我认为因为它们是浮动的,所以 z-index 将没有效果。关于如何在右侧反映左侧效果的任何想法?