具有扩展组件的动态滚动区域
Dynamic scroll area with expanding components
我有一个页面,在一个容器div内有三个div:
____________________
|------------------|
|| Expandable ||
|| ||
|------------------|
|------------------|
|| scroll area ||
|| ||
|------------------|
|------------------|
|| fixed ||
||----------------||
|__________________|
我遇到的问题是,当顶部div 被扩展(通过 javascript 组件(时,滚动区域被向下推,在容器div 之外,而我需要它来动态收缩。(固定div 当前处于绝对位置,滚动div 向下推到其下方(
它也不能使用固定高度(例如像素(,因为它需要动态调整以适应许多不同的屏幕尺寸。
问题视频:https://youtu.be/M-isVl1hs8Q
.css:
.scrollcontainer{
position:relative;
width:100%;
height:100%;
}
.floor{
width:100%;
height:100% - 60px;
display:flex;
flex-direction:column;
}
.item{
flex:1 1 auto;
}
.broom{
transition:1s linear all;
}
.dirt{
transition:1s linear all;
}
.rug{
display:block;
position:absolute;
bottom:0;
width:100%;
height:60px;
}
javaqscript/html:
<div className="scrollcontainer">
<div className="floor">
<div className="broom item">
<FoodItemList
foodItemList={[this.props.foodItem]}
user={this.props.user}
/>
</div>
<div className="dirt item">
<Scrollbars
autoHeight
>
<Comments comments={this.props.foodItem.comments} />
</Scrollbars>
</div>
</div>
<div className="rug">
<Paper style={styles.paper} zDepth={0}>
<div className="leftcolumn">
<TextField
style={{color: 'white'}}
hintText="You can leave a comment here"
onChange={this.handleComment}
value={this.state.commentText}
/>
</div>
<div className="rightcolumn">
<IconButton
iconStyle={styles.smallIcon}
style={styles.small}
onTouchTap={this.addComment}
>
<ContentSend color={lightGreenA200} />
</IconButton>
</div>
</Paper>
</div>
</div>
谢谢!
很高兴看到一个不起作用的例子。我认为最好让那些回答的人来决定他们的分析中哪些是有帮助的,哪些是省略的,而不是你自己。
这是我制作的一个快速代码笔,用于向您展示元素之间的交互性。它使用一个flexbox
进行空间/大小协商,一个absolute
position
的元素,以及一个"checkbox hack
"来模拟javascript组件。加入您想要的overflow
设置(不确定scroll
或任何爵士乐的方向,或者您是否想要wrapper
(,这将照顾布局。
以下是相关的flexbox
代码:
我抛出了一些名字来可视化每个对应物,以帮助传达示例的含义。
从某种意义上说,你有点像在地毯下面扫一些泥土!
.floor{
width:100%;
height:100%;
border:1px solid red;
display:flex;
flex-direction:column;
}
.item{
box-shadow: inset 0 0 16px -4px red;
flex:1 1 auto;
}
以及该 css 的相关标记:
<div class="container">
<div class="floor">
<div class="broom item">
</div>
<div class="dirt item">
</div>
</div>
<div class="rug">
</div>
</div>
不要忘记检查浏览器支持以了解此处使用的内容!
http://codepen.io/anon/pen/ZBOwdw?editors=1100
相关文章:
- 根据滚动位置动态更改href
- 在 Ionic 中动态更新滚动区域
- 无限滚动,动态数据按上次修改状态排序
- 滚动到底部后获取动态加载的HTML
- 单页,滚动网站与固定的动态页脚
- 在jquery中滚动动态列表视图
- 动态垂直表&水平滚动粘性标题和固定列
- 动态添加/创建的移动滚动条无法正常工作
- 动态更新地铁列表在水平滚动时查看 (JS/HTML)
- 如何使用 jquery 动态控制滚动条
- 具有固定滚动行和固定滚动列的大型动态大小 html 表
- 使用javascript和动态.js在画布中平滑滚动
- 在 Twitter Bootstrap 3.0 中动态设置弹出框值,并在滚动更新时使用 href
- 动态设置滚动坐标并从这些坐标以200px滚动容差更改DOM元素
- 使用 AJAX 进行动态滚动条划分
- 动态显示除法取决于另一个除法的滚动条位置
- 如果项目溢出,则动态滚动
- 如何使用javascript/jquery在图像上动态滚动文本
- iScroll:动态滚动容器/添加内容/添加更多容器
- 具有扩展组件的动态滚动区域