如图,我想实现底部固定不动,其他内容上下滑动的效果。图片有点难看,第一次将mp4转gif,将就看下就好哈。
<div>
标签在native中是不可以滑动的,即使设置了告诉也不能滑动- weex中提供了一个滚动器
<scroller>
标签,只要子组件的总告诉高于<scroller>
标签,那么所有的子组件都可以滑动。
看到这里我的实现思路是:将除底部元素块以外的其他所有元素都用一个<scroller>
标签包起来,这时候你会发现,依然不能滑动。因为没有给<scroller>
加高度,子组件的高度与<scroller>
的高度一致。
这时候又想,可我并不知道scroller的高度应该定义为多少才准确。试过用标准的1334px-260px(底部固定元素块的总高度),但是在真机上跑高度不准确。导致下面的内容滑不上去看不到。
这样的话就意味着我需要知道设备的高度,然后再减去底部固定元素的高度,动态改变<scroller>
的高度了。WXEnvironment
变量可以换取设备的屏幕或环境信息。用获取到的设备高度-底部固定元素高度,理论上就应该是<scroller>
的高度了。
然而事实是,依然不准确。
本来想截图上来的,但是编辑这篇文章的时候网卡,开不了服务,后面我再补哈哈哈
最后的解决方案:
给<scroller>
标签增加以下样式:
background-color: rgb(238, 238, 238);
position: fixed;
top: 0px;
bottom: 260px; //底部元素块的总高度
left: 0px;
right: 0px;复制代码
完美,搞定。
这里还有两个问题:
<scroller>
标签的最外层标签,如果加了background-color
样式是不会有效果的。<div style="background-color:#f00"> <scroller> <div></div></scroller> <div> //底部固定元素块 </div> </div> //这样背景颜色是无效的,必须将背景颜色样式加载<scroller>标签上。因为<scroller>脱离文档流了复制代码
- <scroller>标签中的子代元素必须加上宽度
<div> <scroller> <div style='width:750px;'> <div> //这个可不加 </div> </div> <div style='width:750px;'></div> </scroller> <div> //底部固定元素块 </div> </div> 复制代码