基于flipsnap框架,滑动页面的布局

简介:

基于上篇介绍的flipsnap框架,当滑动页面数为基数时页面该怎么布局呢?假如滑动页面数为3个,布局设计如下图所示1、2、3三个页面,向左拖动,页面2、页面3出现。

  此时页面可分三种设计方法:

    方法一:浮动方法。如果子元素为奇数,则子元素的宽度不精确,且子元素不能设置border,如果设置border,宽度就更不精确了。

    方法二:弹性布局方法。此方法也是是不错的选择。但经测试,如果页面中弹性布局运用的很多,在UC等浏览器上,非常卡。说明弹性布局非常耗性能。

    方法三:定位方法。此方法可解决方法一、二的缺点。注意:inner部分需设置高度,不然子元素会被隐藏,因为outer设置了overflow:hidden。

因此,此时采用方法三进行布局。代码如下:

复制代码
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>滑动页面数为3个时</title>
<meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no;" />
<meta name="Keywords" content="">
<meta name="Description" content="">
<style type="text/css">
/*重置{*/
body,div{ padding:0;margin:0;} 
/*}重置*/
.html.body{width:100%;height:100%;}
.outer{width:100%;height:100%;overflow:hidden;margin-top: 40px;}        /*超出窗口部分隐藏*/
.inner > div:nth-child(1){background:#ff0;height:200px;}
.inner > div:nth-child(2){background:#0ff;height:200px;}
.inner > div:nth-child(3){background:#0f0;height:200px;}

/*方法一:浮动方法。如果子元素为奇数,则子元素的宽度不精确,且子元素不能设置border,如果设置border,宽度就更不精确了。*/
/*.inner{width:300%;}
.inner > div{float:left;width:33.33%;}*/

/*方法二:弹性布局方法。此方法也是是不错的选择。但经测试,如果页面中弹性布局运用的很多,在UC等浏览器上,非常卡。说明弹性布局非常耗性能。*/
/*.inner{display:-webkit-box;-webkit-box-orient:horizontal;}
.inner{width:300%;}
.inner > div{-webkit-box-flex: 1;}*/

/*方法三:定位方法。此方法可解决方法一、二的缺点。注意:inner部分需设置高度,不然子元素会被隐藏,因为outer设置了overflow:hidden;*/
.inner{width:100%;height:200px;position:relative;text-align: center;line-height: 200px;font-size: 80px;}
.inner > div:nth-child(1){position:absolute;left:0;right:0;}
.inner > div:nth-child(2){position:absolute;left:100%;right:-100%;}
.inner > div:nth-child(3){position:absolute;left:200%;right:-200%;}
</style> </head>
<body> <div class="outer"> <div class="inner"> <div>1</div> <div>2</div> <div>3</div> </div> </div> <script src="flipsnap.js"></script>  <script type="text/javascript"> var flipsnap=Flipsnap('.inner') ; /*当横竖屏切换时,宽高度自适应屏幕*/ window.addEventListener("resize",function () { var fliwidth=document.querySelector('body').offsetWidth; flipsnap.distance=fliwidth; flipsnap.refresh(); },false); </script> </body> </html>
复制代码

 本文转自挨踢前端博客园博客,原文链接http://www.cnblogs.com/duanhuajian/archive/2012/10/31/2748896.html如需转载请自行联系原作者


@挨踢前端

相关文章
|
关系型数据库 测试技术 数据库
使用Docker搭建测试用例管理平台TestLink:简易指南
使用Docker搭建TestLink测试管理软件的步骤如下:首先,拉取`bitnami/mariadb`和`bitnami/testlink-archived`镜像。然后,启动MariaDB容器,创建数据库。接着,启动TestLink容器并连接到MariaDB。检查容器状态确保它们已启动。最后,访问`localhost:8099`以使用TestLink,默认用户名为`user`,密码为`bitnami`。这样,你就能在本地便捷地进行测试管理了。
|
缓存 运维 负载均衡
Nginx专题(2):Nginx的负载均衡策略及其配置
本文介绍了Nginx的负载均衡策略,一致性hash分配原理,及常用的故障节点的摘除与恢复配置。
|
SpringCloudAlibaba 负载均衡 算法
SpringCloudAliBaba篇之Ribbon负载均衡器:让你的应用从容应对高并发
SpringCloudAliBaba篇之Ribbon负载均衡器:让你的应用从容应对高并发
639 0
|
Docker 容器
docker镜像的备份恢复迁移
docker镜像的备份恢复迁移
226 0
|
存储 缓存 运维
Redis的缓存穿透、缓存击穿和缓存雪崩定义、原因及其解决方案
在高并发场景下,Redis可以很好的解决因短时间内的大访问量而导致的服务崩溃问题。但是引入redis又有可能出现缓存穿透,缓存击穿,缓存雪崩等问题。本文就对这三种问题进行较深入剖析。
1385 0
Redis的缓存穿透、缓存击穿和缓存雪崩定义、原因及其解决方案
|
3月前
|
人工智能 安全 机器人
快手封号人工解封?是真吗
一、平台封禁机制的技术原理 快手采用"AI识别+人工复核"的双层审核体系:
|
6月前
|
存储 双11 数据中心
数据中心网络关键技术,技术发明一等奖!
近日,阿里云联合清华大学与中国移动申报的“性能可预期的大规模数据中心网络关键技术与应用”项目荣获中国电子学会技术发明一等奖。该项目通过端网融合架构,实现数据中心网络性能的可预期性,在带宽保障、时延控制和故障恢复速度上取得重大突破,显著提升服务质量。成果已应用于阿里云多项产品及重大社会活动中,如巴黎奥运会直播、“双十一”购物节等,展现出国际领先水平。
|
4月前
|
Linux 编译器 vr&ar
Linux的动态库与静态库
静态库在编译时直接嵌入到最终的可执行文件中。
120 0
|
数据采集 人工智能 Serverless
AI 克隆声音,只需 3 分钟(附最全教程)
文章介绍了GPT-Sovits,一个开源的生成式语音模型,因其在声音克隆上的高质量和简易性而受到关注。阿里云函数计算(Function Compute)提供了一个快速托管GPT-Sovits的方法,让用户无需管理服务器即可体验和部署该模型。通过函数计算,用户可以便捷地搭建基于GPT-Sovits的文本到语音服务,并享受到按需付费和弹性扩展的云服务优势。此外,文章还列举了GPT-Sovits在教育、游戏、新能源等多个领域的应用场景,并提供了详细的步骤指导,帮助用户在阿里云上部署和体验GPT-Sovits模型。
36528 8
|
SQL 关系型数据库 MySQL
毕业设计So Easy:JSP+layui+MySQL实现Web端图书管理系统
很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了...... 针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望可以帮助大家,也祝愿各位学子,顺利毕业!