方法一,使用iscroll.js 插件:
<script type="text/javascript" src="../script/iscroll-probe.min.js"></script>
HTML部分:
<div id="wrapper" class="wrapper">
<div id="iscroll" class="iscroll">
<div class="con">
<ul id="other-hot-box">
<li>
<div>
<img/>
<p></p>
</div>
</li>
<li>
<img/>
</li>
<li>
你好,世界!
</li>
</ul>
</div>
</div>
</div>
在以上代码中,iscroll 为整个滑动容器。容器必须设置宽高,否则会被hidden隐藏。
每个 li 都是一个次级容器,其中可以放文字、图片、或者包含多种元素内容的div。
CSS:
#iscroll {
width: 100%;
height: 14rem;
overflow: hidden;
position: relative;
}
.con {
white-space: nowrap;
position: absolute;
}
.con ul li {
width: 10.2rem;
display: inline-block;
margin-right: 6px;
vertical-align: top;
}
js:
function loaded() {
myScroll = new IScroll('#iscroll', {
scrollX: true,
click: true
});
}
将 id 填入以上代码后调用该函数即可。
iScroll插件的更多用法:概要及各种效果的实现
方法二,纯css (此方法在ios和安卓上都可用,但在安卓上拉倒最侧边没有多拉回弹效果):
HTML:
<div class="classify border-b" id="classify">
<div class="scrollbar">
<ul>
<li>全部</li>
<li>asdddd</li>
<li>demo-list</li>
<li>啊啊啊</li>
<li>demo-list</li>
<li>demo-list</li>
<li>demo-list</li>
<li>demo-list</li>
<li>demo-list</li>
<li>demo-list</li>
<li>demo-list</li>
</ul>
</div>
</div>
CSS:
以下部分属性值在注释后依然可以在安卓上正常使用,在ios上尚未尝试。
.classify {
/*position: relative;*/
/*width: 100%;*/
height: 4.2rem;
overflow: hidden;
}
.classify .scrollbar{
/*width: 100%;*/
height: calc(100% + 18px);
/*overflow-y: hidden;*/
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.classify .scrollbar ul {
white-space: nowrap;
/*font-size: 0;*/
/*height: 4.2rem;*/
padding: 0 5px;
}
.classify .scrollbar ul li {
display: inline-block;
height: 2.8rem;
line-height: 2.8rem;
border-radius: 2px;
background: #f5f5f5;
font-size: 1.3rem;
margin: 0.6rem 5px 0;
padding: 0 10px;
color: #999;
}
若是 ul 外部有三层 div,
最外层 div 设置 overflow: hidden;
第二层 div 设置 overflow-x: auto; position: relative; height: 4.2rem;
最里层 div 设置 white-space: nowrap; position: absolute;
ul 设置 line-height: 4.2rem; height: 4.2rem; display: -webkit-flex;
li 设置 display: inline-block; margin: 0 19px; font-size: 1.4rem; text-align: center; line-height: 4.2rem;