初学移动专题

最近闲来,把眼睛从pc端向移动端转移了下,尝试着去写移动端的专题,屏幕适配的问题,真是把我虐了一遍又一遍。也意识到,自己在css还很弱。做专题前,我去学习了swiper插件,一款易学易用,功能强大的插件,同时学习了里面的Swiper Animate插件,是用来快速制作CSS3动画效果的,瞬间解决很多问题。swiper中文网里面有不少例子,我简单看了下api,觉得,好难记,于是,去下载了个例子,研究。下图就是我下载的例子了。

这个例子就是用swiper、swiper animate插件做的,首先,引入插件的js和css:

<link rel="stylesheet" href="css/swiper.min.css">
<link rel="stylesheet" href="css/animate.min.css">
<script src="js/swiper.min.js"></script>
<script src="js/swiper.animate.min.js"></script>

  然后初始化swiper实例,方法非常简单:

<div class="swiper-container"> //swiper-container是swiper容器,是最外层的,下面new Swiper的时候要引用这里的类名

<div class="swiper-wrapper">

<div class="swiper-slide">slider1</div> //seiper-slede这是固定的类名,里面放目标(想实现上下(左右)滚动的元素)

<div class="swiper-slide">slider2</div>

<div class="swiper-slide">slider3</div>

</div>

</div>

<script> var mySwiper = new Swiper(‘.swiper-container‘, { //创建实例,进行各种属性的赋值

loop:true,    //swiper-slide里的内容可以循环切换
direction : ‘horizontal‘,   //切换的方向为:垂直
mousewheelControl : true,    //是否开启鼠标控制Swiper切换:是

onInit: function(swiper){  //初始化完成后执行方法
          alert("finish");
},

}) </script>

   之前,我一直觉得专题上的动画很神奇,好奇,在众页面中某一页中的动画是如何做到,在我看到它的时候,刚好它开始执行动画,是如何监听该页面是否是当前我所看到的页面从而决定是否开始动画。可能我表达得有点绕,我看过一些别人做的页面,但是,看不懂别人是如何实现的。我发现,Swiper Animate插件的动画,就实现了这样的功能,还很容易学习,非常感谢那些写插件的人,能把方法封装得这么好,这么全面,目前的我只能膜拜下了。利用插件,一切变得很简单:

上面下载的例子,让我见识了插件的神奇,我动手做我自己想做的页面了。页面由3部分组成:

我不得不承认,菜鸟做出来的就是比较粗糙。。

第一页,直接把图片引入页面,可见,字体有些变形了,因此我被朋友骂了一顿,心情down到不行,第二页,在做适配屏幕上,我调啊调的,花了很多时间,在选项对齐方面也调了很久,第三页,内嵌一个swiper实例,让中间的图片像焦点图一样轮播,同时底下的小车跟着移动,也做得很丑,这3页,与页面边框在左边和上边都有一个白色的间隙,纳闷了一段时间,只能说自己技术太渣渣了。

同事也做了这个专题,于是,我好好地参考学习了下:

1、关于间隙问题,可以这样解决:

body{
        margin:0px auto;
}

2、关于字体变形,可以不定义这个div的高度,但是在我这种3页对应着3个slide,实现不了。

3、关于屏幕适配问题,我学到了如何去根据屏幕大小动态改变样式的方法:

js中写:

类mySlide中需定义内嵌样式,然后程序会根据屏幕大小来改变样式的值。

4、第二页中的姓名、购车时间等的对齐,一开始我用的是&nbsp,在电脑上看是如上图般整齐的,但是到了手机,却变成了右下角这样:

为什么不对齐呢,度娘说是因为在没有定义字体的情况下,&nbsp被当成英文,而不是汉字,我尝试着在body那加了宋体,但是没有起作用,还有用全角状态输入空格。。

后来我找到了一种替代方法,我改用: padding-left: 3em,放弃了&nbsp。

怎么改都会有问题,因为一开始,我就用错了方法,改良版来了:

不把网页分成3页,直接是插入左上角这样一张背景图片,然后加入input,图片等元素,一个文字没有变形的网页出来了,我发现,input等元素只要定义一个margin-top,margin-left,在不同的屏幕上,都能都很好地适应,省了很多功夫。在最后移动的小车上,可以加入动画,让小车不那么生硬地改变位置:

@-webkit-keyframes animate0{
    0%{-webkit-transform:translateX(0px)}
    100%{-webkit-transform:translateX(0px)}
  }
  @-webkit-keyframes animate1{
    0%{-webkit-transform:translateX(0px)}
    100%{-webkit-transform:translateX(110px)}
  }
  @-webkit-keyframes animate2{
    0%{-webkit-transform:translateX(110px)}
    100%{-webkit-transform:translateX(220px)}
  }
  @-webkit-keyframes animate3{
    0%{-webkit-transform:translateX(220px)}
    100%{-webkit-transform:translateX(330px)}
  }
  @-webkit-keyframes animate4{
    0%{-webkit-transform:translateX(330px)}
    100%{-webkit-transform:translateX(440px)}
  }

  .myMove0{
    -webkit-animation:animate0 1.5s;
    -webkit-animation-fill-mode:forwards;

  }
  .myMove1{
    -webkit-animation:animate1 1.5s;
    -webkit-animation-fill-mode:forwards;
  }
  .myMove2{
    -webkit-animation:animate2 1.5s;
    -webkit-animation-fill-mode:forwards;
  }
  .myMove3{
    -webkit-animation:animate3 1.5s;
    -webkit-animation-fill-mode:forwards;
  }
  .myMove4{
    -webkit-animation:animate4 1.5s;
    -webkit-animation-fill-mode:forwards;
  }

然后给div赋值不同的类名就可以达到动画的目的:

onSlideNextStart:function(mySwiper1){
                       $("#car").removeClass();
                      if(mySwiper1.activeIndex%5==1){
                             $("#car").addClass("myMove0");
                        }
                        if(mySwiper1.activeIndex%5==2){

                             $("#car").addClass("myMove1");
                        }
                        if(mySwiper1.activeIndex%5==3){
                             $("#car").addClass("myMove2");
                        }
                        if(mySwiper1.activeIndex%5==4){
                             $("#car").addClass("myMove3");
                        }
                        if(mySwiper1.activeIndex%5==0){
                              $("#car").addClass("myMove4");
                        }

                    }

我终于做好了,哈哈。任重而道远,要学的东西还有很多很多,干巴爹。

时间: 2024-08-30 04:37:05

初学移动专题的相关文章

动态分配内存专题

我讲解一下c语言中动态分配内存的函数,可能有些初学c语言的人不免要问了:我们为什么要通过函数来实现动态分配内存呢?系统难道不是会自动分配内存吗??既然有人会问这样的问题,那么我在这里好好的讲解一下吧!首先让我们熟悉一下计算机的内存吧!在计算机的系统中有四个内存区域:1)栈:在栈里面储存一些我们定义的局部变量以及形参(形式参数):2)字符常量区:主要是储存一些字符常量,比如:char *p_str="cgat";其中"cgat"就储存在字符常量区里面:3)全局区:在全

如果是初学C语言请看完 一些成功人士的心得

转自程先的专栏     今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了所有的数字化信息,不论是一段程序,一封email,一部电影都是用一连串的1和0进行编码的:是他们发现了我们可以利用一个预先编写好的程序控制机器,并使之完成我们期望它完成的动作.建议大家在心里默念三遍他们的名字,以示仰慕.当然,如果让你们带着现在的知识回到他们的那个时代,那么就没有什么图灵奖了. C语言程序设计是我们的专业基础课,但是C语言本身却是

点滴的积累---初学Javascript

在学习知识的路上,我们需要的不断的去接触新的知识,同时我们也不要不停地对自己旧的知识进行总结.最近通过<牛腩Javascript>和姜昊的<Javascript专题视频>对Javascript有了初步的理论了解. Javascript学习简介 由于Javascript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言.因此在学习Javascript时需要具备一定的对象对象基础,由于已经学习过C#和VB.NET因此在学习的过程中理解起来还是相对容易的. 同时JavaScript

·专题」 线段树

初学线段树(SegmentTree) 从HH大神那你学来的模板风格. 感觉确实相当飘逸. 现在做了4题..单点更新的, 想放上来,,以后慢慢整理!! ·单点更新」 ·刷题参考」 hdu1166 敌兵布阵 线段树第一题,单点更新第一题,可以作为线段树的模板, 思路:兵工厂作为数量n映射作为线段总长,更具输入进行单点的更新与查询,sub操作可以理解为add一个负数 Query操作:区间求和 update操作:单点的增减 1 #include<cstdio> 2 3 #define lson l,

[转载]如果是初学C语言请看完一些成功人士的心得

如果是初学C语言请看完一些成功人士的心得 转自程先的专栏     今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了所有的数字化信息,不论是一段程序,一封email,一部电影都是用一连串的1和0进行编码的:是他们发现了我们可以利用一个预先编写好的程序控制机器,并使之完成我们期望它完成的动作.建议大家在心里默念三遍他们的名字,以示仰慕.当然,如果让你们带着现在的知识回到他们的那个时代,那么就没有什么图灵奖了. C语言程序

【团购巨划算】韩立刚老师门徒级学习专题,只此一次的超大优惠福利

Q:韩立刚老师是谁? A:韩老师是51CTO金牌讲师(最高级别),也是微软最有价值专家MVP.微软企业护航专家.<计算机网络原理>一书作者 讲师主页:http://edu.51cto.com/lecturer/400469.html Q:门徒级学习专题是什么? A:韩立刚老师门徒级课程专题(Windows Server+网络安全+数据库) 韩老师从2013年至今,根据企业对IT运维人才的技术要求,录制视频教程49 门,时长达581小时50分钟.旨在从0起点培养企业高端IT人才,让你在企业IT部

c指针-专题

六---指针 内存和地址怎么理解呢? 机器中有一些位置,每一个位置被称为[字节]/byte,许多现代机器上,每个字节包含8个位.更大内存单位[字],通常包含2个或4个字节组成. 一个字包含4个字节,它的地址是什么? 他仍然只有一个地址,是最左边还是最右边的那个字节的位置,取决于机器. 机器事实-关于整型的起始位置: 在要求边界对齐(boundaryalignment)的机器上,整型存储的起始位置只能是某些特定的字节,通常是2或4的倍数. 变量名和地址关系? 所有高级语言的特性之一,就是通过名字而

无线安全专题_破解篇03--打造个人字典

上一篇讲解了如何通过Kali破解Pin码,今天继续无线安全专题破解篇的第三讲:打造个人字典.通过第一课,我们知道想要破解WPA加密,需要一个强大的字典.字典的强大直接决定了破解的可能性,废话不多说,咱们就学习一下怎么使用kali中的工具生打造个人字典.  一.crunsh工具介绍 今天主要说的是crunsh这款工具,专门用来生成字典. 命令参数: -b              #体积大小,比如-b 20mib 或者 -b 20kib -c              #密码个数(行数),比如80

最短路径算法专题1----弗洛伊德

由于最短路径算法我认为比较重要,所以分成几个专题来慢慢细化去磨它,不能一口气吃个胖子嘛. 首先在说算法之前,先说清楚什么叫做最短路径. 题目一般会给你一张图,然后告诉你很多地方,然后告诉你各个地方之间的路程有多远,要你求出,两点间的最短距离,注意,题目给出的两点间的距离未必是最短的,可能通过第三个点转换之后达到更短.实际其实也是这样的,有时候两个地方并没有直线的道路只有曲线的绕路. 算法的思路: 1.用二维数组列出所有的距离,达到不了的用最大距离表示,如9999999 2.循环数组上面的每一个点