从零开始学习H5应用(1)——V1.0版,简单页面滑动切换效果

h5页面路由切换动画-左右横滑效果(v2) h5实现仿微信那种页面切换时左右横滑的动画效果,页面前进时新页面从右往左滑,页面后退时旧页面从左往右滑。 阅读详情

标签:

可曾看见过那些在微信上转疯了的H5神作?好生羡慕啊,那么从今天开始,我将从零开始学习制作H5应用,看看那么漂亮的页面是怎么样一步一步形成的。

准备

在学习制作H5应用之前,必须具备以下基础前提:

HTML,CSS,JS基本编写与制作能力

了解了H5中的各种新特性

有一定的逻辑思维能力,可以将复杂任务通过分析简化为若干原子事件来处理

看得懂汉语,以及教程中出现的前端术语。

任务

这是本系列的第一篇,任务非常简单,

制作一个具有3张页面,每次只显示其中一张页面,当手指向上滑动设备屏幕时当前页面消失下一张页面出现,并具有一定的过渡效果

分析

虽然任务非常简单,我们还是要把它拆分为几部来做,如下:

1、构建页面:具有三张页面,第一张显示,另外两张隐藏; 
2、使用JS监听手势向上滑动的事件,并动态改变三张页面的显示/隐藏样式; 
3、给页面显示和隐藏添加过渡的动画效果;

实现

第一步

首先,我们在html页面中构建页面结构:

index.html

    <div id="pages">

        <div class="page page1">页面一</div>
        <div class="page page2">页面二</div>
        <div class="page page3">页面三</div>

    </div>

这里,我们为了方便看效果,在每个页面中加入了相应文字来标示该页面

然后,使用CSS文件进行样式布局:

style.css

#pages {
  width: 100%;
  heigt: 100%;
}
.page {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  display: none;
  color: white;
}
.page1 {
  background: blue;
  display: block;
}
.page2 {
  background: red;
}
.page3 {
  background: yellow;
}

这里,设置了统一的样式.page 以便让三张页面都能全屏显示,并且设置绝对定位使他们完全重叠,给他们设置了不同背景色用于标识,并让第一页显示出来,其他两张隐藏。

给index.html引入样式:

<title>H5场景应用1.0——实现页面滑动效果</title>
    <link rel="stylesheet" href="style.css" type="text/css"/>

我们来看看效果:

技术分享

我们使用了Opera Mobile Emulator工具来在PC上模拟手机浏览器的显示和操作。

至此,第一步就很简单地完成了。

第二步

首先,我们要监听用户的手势,这个向上滑动的事件怎么来做呢?

这里,我们推荐使用zepto.js类库,因为它默认提供了对触屏的滑动事件的支持。

将zepto.js引入index.html,这里,为了提升加载速度,我们使用百度静态资源库文件,并且同时引入我们自己用来写自定义功能的js文件myfn.js,现在它还是空的。还有一个js文件touch.js 也是必须的,它是zepto的一个模块,用来支持触屏操作,而zepto.js默认是不包含该模块的

index.html

<script src="http://apps.bdimg.com/libs/zepto/1.1.4/zepto.min.js"></script>
<script src="touch.js"></script>
<script src="myfn.js"></script>

现在,在myfn.js里实现监听函数和页面隐藏,显示函数。

myfn.js

//测试对swipeUp(向上滑动)的监听是否有效
$(document).swipeUp(function(){
    alert("ok");
});

保存,看看效果:

技术分享

说明我们引入zepto后对触屏的向上滑动事件的监听是成功的,那么现在我们可以编写内部页面隐藏显示的切换效果了。

在编写代码之前,我们把这一步的逻辑流程再细化一下,看看流程图:

开始获取当前页面序号,隐藏当前页是否为最后一页?显示第一页结束显示下一页yesno

这里面,我们明确了整个程序的外部流程,然后再来深究一下每一步操作的思路:

获取当前页面序号:

很显然,当前页面就是当前显示的页面,可以有两种方法来获取: 
第一种是给当前页面添加class=”show”,然后获取时直接查找class=”show”的元素; 
第二种是设置一个全局变量curpage,页面初次载入时它的值肯定是1,然后每次向上滑动,它的值自增1,就是当前页面的序号; 
很明显,第二种实现起来比第一种要简单,而且效率和架构更优。

隐藏当前页

给当前页添加class=”hide”

判断是否为最后一页

在获取到当前页面序号后,就要判断是否为最后一页。那么如何判断呢?当然是先要知道总共有多少页,然后看当前页面序号是否与最大页数相等,相等,就是最后一页,不相等,则不是最后一页。而总页数就是#page下面的class为.page 的div的个数。

显示第一页

这个很简单,给序号为1的页面设置class=”show”,将其他所有页面隐藏

显示下一页

获取到当前页序号后,这一步也很简单,就是让序号加1,然后让class为.page+序号的页面增加一个class=”show”就可以了

好了,有了以上分析,我们就可以开始编码了,最终实现代码如下:

myfn.js

var curpage=1;
var totalpage,nextpage;

$(document).swipeUp(function(){

    //隐藏当前页面

    $(".page"+curpage).removeClass("show");
    $(".page"+curpage).addClass("hide");


    //判断当前页是否为最后一页

        //获取总页数
    totalpage = $(".page").length;
    //如果是最后一页,显示第一页,否则显示下一页
    if(curpage == totalpage){
        $(".page1").removeClass("hide");
        $(".page1").addClass("show");
        curpage =1;
    }else{
        nextpage = curpage+1;
        $(".page"+nextpage).removeClass("hide");
        $(".page"+nextpage).addClass("show");
        curpage = nextpage;
    }


});

然后在style.css里加入两个样式:

style.css


……
.page3 {
  background: yellow;
}
.hide {
  display: none;
}
.show {
  display: block;
}

再来看效果:

技术分享

页面刚载入是上图这样的

技术分享

第一次向上滑动后切换到了页面二

技术分享

第二次向上滑动后切换到了页面三

技术分享

第三次向上滑动后页面又切回页面一

至此,我们用不多的代码完成了我们的V1.0版的任务,这一次代码不多,但是中间要对整个程序的流程进行分析与设计,这种思路是这一次的重点。这种思路确定后,以后的版本中在这一版本的基础上进行功能的扩展就简单多了,期待V2.0版哦!

H5滑动实现翻页(vue) H5 滑动翻页 框架:Vue + element + JQ + vue-awesome-swiper 项目:H5绣红旗 转载:vue-awesome-swiper - 基于vue实现h5滑动翻页效果 已经打好vue-cli项目,安装vue-awesome-swiper npm i --s vue-awesome-swiper main.js import VueAwesomeSwiper... 阅读详情

相关推荐

HTML5页面,上下切换页面效果

HTML5页面,上下切换页面效果 模拟原生app,实现上下切换

H5页面,上下滑动翻页(整页翻书切换效果)

页面间的切换:整页翻书的切换效果。

羽筠的博客 7199

Windows系统的Mamba环境配置详细教程(状态空间模型)

causal_conv1d也是安装mamba的依赖必须库。安装完成后,通过pip list可以查看到安装的库。Triton是安装mamba的依赖,需要先安装。上述工作准备好后,按下面步骤安装。直接根据离线文件安装即可。是自己的虚拟环境名字。

2301_77831163的博客 3676

Web APIs 事件监听(绑定)

事件监听(绑定) 事件:事件是编程语言中的术语,它是用来描述程序的行为或状态的,一旦行为或状态发生改变,便立即调用一个函数。 例如:用户使用【鼠标点击】网页中的一个按钮、用户使用【鼠标拖拽】网页中的一张图片 事件监听:结合 DOM 使用事件时,需要为 DOM 对象添加事件监听,等待事件发生(触发)时,便立即调用一个函数。 语法:元素对象.addEventListener(‘事件类型’,要执行的函数) 事件监听三要素: 事件源: 那个dom元素被事件触发了,要获取dom元素事件类型:用什么方

m0_68331234的博客 395

A2B音频总线在智能座舱中的应用

车载A2B链路音频是智能座舱的核心功能,涵盖车载音响、语音识别、e-Call、消噪及回声消除等应用,随着汽车智能网联化的发展,对音频的开发要求也越来越高,需要加入更先进、功能丰富的信息娱乐功能以满足消费者的用户体验。但传统的模拟并行音频信号传输方式,难以在功能增加与整车轻量化(线缆的重量及成本减少)之间取得均衡。这时候就需要A2B音频总线了。A2B音频总线用于连接车辆中的音频设备,如麦克风(MIC)、功放(AMP)、多媒体主机(Head Unit)和T-BOX等。通过一条低成本的非屏蔽双绞线UTP,进行跨距

怿星科技的博客 3934

基于ZYNQ7020芯片(黑金开发板AX7020)之AXI-FULL DDR的PL与PS交互操作。

在该工程中我们使用了PS端的串口接收功能,PS端串口接收和发送分别有一个64字节的FIFO,但是因为串口接收阈值设置为16,所以固定接收16个字节数据后才会发生中断。此测试工程得到以前知识的总结和各大网友的支持,只希望可以为学习的你更进一步,大家一起学习才是真的开心。加油,国产芯片之路。

landyjzlai的博客 3189

H5移动端实现左右滑屏切换页面

项目中需要实现的一个需求是顶部有一个tab选择框,点选某一个tab的时候切换页面,并且支持手势滑动,左滑右滑可以同点选tab一样切换页面。 根据项目中选用的ui组件cube-ui为基准查看了一下可实现的方案,比如可以直接用swipe或者是slide实现,但根据之前的实现方案来看,多少都会有些问题,尤其是在页面嵌套了很多层的垂直和水平滚动的情况下,会让滚动很不流畅。 于是选用了移动端的touch事件...

水冰月的小兔子的博客 1万+

python爬取《你好, 李焕英》豆瓣评论数据

# 导入工具包 import requests from bs4 import BeautifulSoup import time import pandas as pd import numpy as np # 请求头 headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36'} # =

python技巧分享 3456

丝滑页面切换动效之路由篇-vue3的H5项目从0到1工程化落地经验篇11

大家一定看过不同网站后有这样的感觉,感觉很丝滑,很流畅,一点不卡顿,有的网站就觉得一点都不丝滑,直愣愣的就出现了,这些都是细节。当然并不是一个细节决定的,今天我分享的是如何让页面切换时效果很丝滑。

王月Lydia的博客 1152

STM32cubeMX配置FreeRTOS软件定时器

文章目录前言1.软件定时器概述一.软件定时器特性二、使用cubeMX生成软件定时器总结 前言 本文主要带大家了解什么是软件定时器,并且带大家使用cubeMX配置软件定时器。 1.软件定时器概述 一.软件定时器特性 软件定时器就是一个闹钟当时间到了就执行相对应的任务或者代码。软件定时器是基于系统滴答中断的。在FreeRTOS中我们可以设置无数个软件定时器。 指定时间:启动定时器和运行回调函数,两者的间隔被称为定时器的周期 (period)。 指定类型定时器有两种类型: 1.一次性 这类定时器启动后,它的回调函

m0_49476241的博客 6949

固定效应模型-以stata为工具

固定效应模型(Fixed Effects Model)是一种面板数据分析方法,通过引入个体固定效应来控制个体间的异质性,并更准确地估计解释变量对因变量的影响。它在许多经济、社会科学和健康研究中被广泛应用。

侯小啾技术博客 2839

丝滑页面切换动效之Transition篇-vue3的H5项目从0到1工程化落地经验篇12

大家一定看过不同网站后有这样的感觉,感觉很丝滑,很流畅,一点不卡顿,有的网站就觉得一点都不丝滑,直愣愣的就出现了,这些都是细节。当然并不是一个细节决定的,今天我分享的是如何让页面切换时效果很丝滑。接上一篇。本篇是Transition设置

王月Lydia的博客 1139

python基础:工作会用到的95%的基础python代码都在这了(万字详解!)

本文是一份Python编程语言的快速参考备忘单,涵盖了Python基础语法和常用数据类型。主要内容包括:Python入门指南(打印、变量声明)、内置数据类型(字符串、数值、列表、元组、集合、字典等)、控制结构(判断、循环)、函数定义、文件处理操作以及字符串操作方法(切片、循环遍历等)。这个备忘单特别适合初学者快速查阅Python基础语法,同时也提供了数据类型转换、f-string格式化字符串等实用技巧。通过简洁的代码示例展示了Python的基本语法规则和典型用法。

数据知道的博客 8160

H5横向滑动菜单

H5横向滑动菜单 最近处理一个需求,产品需要做一个顶部横向的菜单栏,类似于今日头条首页的菜单栏 先来看看效果: 构思 首先说说我的思路吧 ,通过设置一个横向的导航栏,滑动到顶部后悬浮,然后滑下来后再继续随着页面滑动。 实现过程 1、设置导航栏,这里我们需要一个三层div嵌套的导航 导航栏核心代码 <div class="nav" ref="nav"> <div cla...

woyidingshijingcheng的博客 5357

MCAL中Dsadc的配置

DSADC模块作为一个专用的模块,主要应用在编码器软解码,功能强大而复杂,这里介绍了Dsadc的mcal配置和详细描述,让你全面学习和理解这个模块功能和应用。

dhyw12399999的博客 788

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

基于vue实现上下滑动翻页效果

项目简述 18年年底的时候,一直在做年度报告的H5页面,因为项目需要,需要实现上下滑动翻页,并且上滑的页面比正常页面的比例要缩小一定比例。 效果类似于http://www.17sucai.com/pins/demo-show?id=7834 这个链接是基于jquery实现的,我写的是和这个例子效果一样,只不过是用vue实现的。 代码地址:github.com/dreamITGirl… //dem...

weixin_34194551的博客 8656

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

从零开始制作H5应用(2)——V2.0版,多页单张图片滑动,透明过渡及交互指示

上一次,我们制作了我们第一个H5场景应用的V1.0版,这次我们趁热打铁,在上一版的基础上对层序进行修改和扩展。任务 1、页面数量由3张增加至9张; 2、每张页面中放入一张全屏自适应的图片; 3、修复页面过渡中的白场,并在过渡时加入页面的透明效果 4、给予用户“向上滑动“的交互提示; 分析老规矩,拿到任务需求后,我们还是要先具体分析每一步的实现思路:1.页面数量由3张增加至9张

林中路 3264

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

从零開始制作H5应用(4)——V4.0,增加文字并给文字加特效

之前,我们分三次完毕了我们第一个H5应用的三个迭代版本号: V1.0——简单页面滑动切换 V2.0——多页切换,透明过渡及交互指示 V3.0——加入loading,music及自己主动切换 这已经是一个具有基本表达能力的版本号了。可是,远远不够!由于,用户体验永远是第一位的,单纯的图片无法准确调动用户情绪,当然,除非是那些特别牛逼的照片,但那时不可多得的,所以...

aofan9566的博客 162

uni-app实现滑动切换效果

在对于uni-app框架了解之后,今天就实现一个滚动切换tab效果,这个很常见的一个效果,最后封装成一个组件,便于以后使用,写这个需要引入uni官方提供的uni.css样式,用到了写好的样式,就不需要自己写了 这种切换无论是在app端还是小程序或者H5页面都是很常见的功能。对于这种功能,为单独封装成功组件,方便每个页面都能用到, tab顶部导航栏 页面布局,使用u...

小周sri的码农 6335

vue 仿照抖音视频效果(滑动切换)

看个效果图,再决定学不学 ================ 好像还凑合吧 那就学起来吧~~~~~~~~~~~~~~~~~~~~~~~ <template> <div class="container_box" id="video_box"> <div class="van_swipe"> <!--vant van-swipe 滑动组件 --> <van-swipe :show-indica

qq_43477721的博客 9110

移动端h5使用elementui走马灯,手指左右滑动切换

环境: vue框架,h5端,elementUI组件。手指左右滑动可以切换轮播图。

我爱学习的博客 4055

vue实现上下滑动翻页_基于vue实现上下滑动翻页效果

18年年底的时候,一直在做年度报告的H5页面,因为项目需要,需要实现上下滑动翻页,并且上滑的页面比正常页面的比例要缩小一定比例。效果类似于http://www.17sucai.com/pins/demo-show?id=7834,这个链接是基于jquery实现的,我写的是和这个例子效果一样,只不过是用vue实现的。首先介绍一下,这个项目依赖的插件:上下滑动翻页使用了v-touch,是基于hamme...

weixin_39958366的博客 1432

从零开始制作H5应用(4)——V4.0,加入文字并给文字加特效

之前,我们分三次完成了我们第一个H5应用的三个迭代版本:V1.0——简单页面滑动切换V2.0——多页切换,透明过渡及交互指示V3.0——加入loading,music及自动切换这已经是一个具有基本表达能力的版本了,但是,远远不够!因为,用户体验永远是第一位的,单纯的图片无法准确调动用户情绪,当然,除非是那些特别牛逼的照片,但那时不可多得的,所以我们必须配以适当的文案来对图片内容进行说明或者升华。并且

林中路 4117

不用swipe插件,用<component>组件实现H5的swipe切换

不引入 swipe 插件,使用vue自带 component 组件实现 H5 滑动切换页面

weixin_44072916的博客 925
上一篇: 外企_IT代码民工四年的工作经验(实际可以算2年)
下一篇: 从零开始制作H5应用(2)——V2.0版,多页单张图片滑动,透明过渡及交互指示
普通网友
博客等级 码龄14年 46粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值