DIV横排/竖排滚动(white-space/::-webkit-scrollbar的使用技巧以及display: inline-block的选择)支持手势
参考微信的京东客户端http://wqs.jd.com/,实现DIV的横排滚动,且支持手势,并且不会出现滚动跳,效果如下:

但是观察其div结构是没有使用任何JS去实现。
一、实现上DIV的横排
观察其结构发现,使用了white-space: nowrap;这个属性,叫做文本排列方向,参考:http://www.w3school.com.cn/cssref/pr_text_white-space.asp

如果我们要实现这样的方式,有如下方案:
1、最外层的DIV设置成固定的宽度,一定是比屏幕大很多,然后DIV内的字块,使用float:left进行向左横排。
2、使用JS插件,动态计算最外层要用多少DIV,然后进行第一种的操作。
二、实现横向滚动
也是观察其结构发现,只使用了overflow-x: auto;这个属性,就能进行横向滚动,包括手势。

但是奇怪的是,在京东的客户端上滚动的时候是没有滚动条了,而如果单独用上面的属性是会出现横向滚动跳的。
再次分析其css文件,发现使用了.home_seckill_content::-webkit-scrollbar{width:0;height:0;display:none;}的属性,::-webkit-scrollbar属于一个伪类,在webkit内核浏览器上特有。
参考:
https://zhidao.baidu.com/question/1670525736805449387.html
http://www.jb51.net/css/155135.html
http://www.xuanfengge.com/css3-webkit-scrollbar.html
那么如果我们要在常规的浏览器上实现既能滚动又隐藏滚动条的效果时,思路如下:
1、定两个DIV,大的DIV包小的DIV,然后小DIV的设置宽或高大于大的DIV,且小的div设置可以滚动overflow:auto,而大的DIV设置滚动条隐藏overflow:hidden。
参考:
http://blog.csdn.net/liusaint1992/article/details/51277751
以上是纯div+css去实现滚动条隐藏的效果,如果是以前的方案,即使使用第三方的JS插件去实现,在移动端再配合移动端事件来去实现。
然后再观察京东的滚动,发现还加入了-webkit-overflow-scrolling : touch;这样的一个事件。这个事件是为了达到在Safari快速滚动和回弹的效果。
参考:
http://blog.csdn.net/hursing/article/details/9186199
http://www.111cn.net/cssdiv/css/108397.htm
white-space:nowrap;与display: inline-block;的选择:
经过测试white-space:nowrap;是针对文本,比如a,span这些标签,用这个属性可以实现一行。而京东上面的html布局已经是a抱歉包裹这span标签,所以符合。
display: inline-block;这个主要是针对div去实现,而对于a,span这些标签无效。
float:left也是针对div去实现,对于a,span这些标签无效。
DIV横排/竖排滚动(white-space/::-webkit-scrollbar的使用技巧以及display: inline-block的选择)支持手势的更多相关文章
- js控制div滚动条,滚动滚动条使div中的元素可见并居中
1.html代码如下 <div id="panel"> <div id="div1"></div> <div id=& ...
- jquery鼠标移动div内容上下左右滚动
jquery鼠标移动div内容上下左右滚动 点击这里查看效果:http://keleyi.com/keleyi/phtml/jqtexiao/9.htm <!DOCTYPE html PUBLI ...
- 如何通过JQuery将DIV的滚动条滚动到指定的位置
这里有一个方法可以将DIV的滚动条滚动到其子元素所在的位置,方便自动定位. var container = $('div'), inner = $('#inner'); container.scrol ...
- All about Div内显示滚动桥
Div内显示滚动桥看似是一个简单的前端问题,然而实际会发现还是有挺多需要注意的, 本文尝试对div内显示滚动桥的各种主要实现及一些难题进行研究. 横向滚动桥 横向滚动桥比较简单,无需设置宽度,直接ov ...
- jquery控制div随滚动条滚动效果
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jquery div随滚动条 ...
- dom4j解析xml报错:Nested exception: org.xml.sax.SAXParseException: White space is required between the processing instruction target and data.
采用dom4j方式解析string类型的xml xml: String string="<?xmlversion=\"1.0\" encoding=\ ...
- 设置DIV随滚动条滚动而滚动
有段时间没有碰Web端了,最近做了个功能,需要做个DIV随滚动条滚动而滚动,mark一下: 源码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...
- div横排放置对齐问题;block,inline,inline-block区别
1.左右两个div都设置为float:left,如果右边div没有设置宽度,右边div的宽度会根据div里的内容自动调整. 缺点:不易控制 2.只有左侧div设置为float:left,右侧div设置 ...
- <div>里用display:block有用么?
对所有的块元素都没有意义,块元素的dispaly属性默认值为block,没必要再显式定义--除非你之前对块元素的display属性重新定义过. =========================== ...
随机推荐
- Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
概要 前一章,我们学习了HashMap.这一章,我们对Hashtable进行学习.我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable.第1部分 Ha ...
- 简易安装python统计包
PythonCharm简易安装python统计包及 本文介绍使用pythonCharm IDE 来安装Python统计包或一些packages的简单过程,基本无任何技术难度,顺便提一提笔者在安装过程中 ...
- 初中级Web开发人员的福音:《JavaScript启示录》上市了
经历过14个月的等待,本书终于上市了,完全口语化叙述,请参考右边的链接. 本书介绍 本书无关于JavaScript设计模式,也无关于JavaScript面向对象代码实现.本书的写作目的也不是鉴别Jav ...
- jboss上的soap web service开发示例
以下示例,由jboss quickstart示例代码得来: 一.创建一个常规的dynamic web项目,建议支持maven ,项目的关键属性参考下图: 二.定义服务接口及参数对象 HelloWorl ...
- MySql 中文乱码排查解决方案
MySQL会出现中文乱码的原因不外乎下列几点: server本身设定问题,例如还停留在latin1 table的语系设定问题(包含character与collation) 客户端程式(例如php)的连 ...
- Theano1.1-安装
之前一直想弄theano,可是python不是很懂,在学习了一段时间之后开始安装theano.当然官网上的安装资料是全,可是也太繁琐了.这里介绍的是最简单,最方面的安装theano的方法.官网首页:h ...
- 百度Android定位SDK获取位置
http://gis.sunxianlei.cn/2013/01/27/%E7%99%BE%E5%BA%A6android%E5%AE%9A%E4%BD%8Dsdk%E8%8E%B7%E5%8F%96 ...
- floyd原理以及求最小环
floyd这个东西学会了好久了,但是原理总是忘记,或者说没有真正的明白,这里在说一下. 我们要求的是任意的 i,j 之间的最短路径,用动态规划的思想来解决就是f[i,j,k]表示i到j中间节点不超过k ...
- 东大OJ-双塔问题
1212: VIJOS-P1037 时间限制: 0 Sec 内存限制: 128 MB 提交: 58 解决: 19 [提交][状态][讨论版] 题目描述 2001年9月11日,一场突 ...
- linux 系统下 android studio 获取SHA1
百度地图申请key的时候需要填写包名和SHA1 包名比较好找可以在 AndroidManifest.xml 文件中找到 SHA1的获取方式有两种可以在android studio 下面选择Termin ...