• 基于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{300%;}
    .inner > div{float:left;33.33%;}*/
    
    /*方法二:弹性布局方法。此方法也是是不错的选择。但经测试,如果页面中弹性布局运用的很多,在UC等浏览器上,非常卡。说明弹性布局非常耗性能。*/
    /*.inner{display:-webkit-box;-webkit-box-orient:horizontal;}
    .inner{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/
    【声明】:所有博文标题后加(share)的表示收集的他人优秀文章,其余的则为原创。欢迎转载,但请在显要位置显示本文链接,并保留本段声明,否则追究法律责任,谢谢!
  • 相关阅读:
    Spring security中的BCryptPasswordEncoder方法对密码进行加密与密码匹配
    Eclipse导入SpringBoot项目pom.xml第一行报错Unknown error
    分库分表理论概述
    什么是乐观锁,什么是悲观锁
    oracle中的索引查看
    手动实现tail
    KNN理论
    矩阵以及向量
    numpy常用的几个小函数
    线性回归
  • 原文地址:https://www.cnblogs.com/duanhuajian/p/2748896.html
Copyright © 2020-2023  润新知