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

uniapp:实现中间大两边小的轮播图,幻灯片中间图片放大,两边缩小轮播效果,uniapp-swiper轮播图中间放大两边缩小示例源码替换图片(全平台兼容安卓苹果app、H5网页、微信小程序、nvue uni-app轮播图,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,轮播图-实现中间大两边小的轮播图,轮播图中间大两边小,中间大,两边小的轮播图,实现中间小,两侧大的轮播图,轮播图-实现中间大两边小的轮播图,uniapp如何实现中间大两头小的轮播效果,中间显示全部两边显示部分,uni-app实现中间放大两边缩小的轮播图_uniapp swiper 中间大,uniapp 实现3d轮播图,也就是中间的放大两边的缩小,显示中间大,两边小,展示图片或者内容,中间图片放 阅读详情

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


上一次,我们制作了我们第一个H5场景应用的V1.0版,这次我们趁热打铁,在上一版的基础上对层序进行修改和扩展。

任务

1、页面数量由3张增加至9张; 
2、每张页面中放入一张全屏自适应的图片; 
3、修复页面过渡中的白场,并在过渡时加入页面的透明效果 
4、给予用户“向上滑动“的交互提示;

分析

老规矩,拿到任务需求后,我们还是要先具体分析每一步的实现思路:

1.页面数量由3张增加至9张

这个太简单啦,就是再复制出来6个div,并给他们添加类名就可以啦:)

2、每张页面中放入一张全屏自适应的图片

这一项的关键在于自适应,可否知道 img {width:100%}的写法?

3、修复页面过渡中的白场并加入透明效果

白场问题是由于我们的切换方式是隐藏/显示,所以这一次我们改为让它移出屏幕主体,而不是隐藏,而透明效果则需要替换animation属性啦。

4、给予用户“向上滑动”的交互提示

这个问题只需要一张png图片并加一点循环的动画(animation)就可以啦!

实现

第一步,增加页面数量

index.html

<div id="pages">

        <div class="page page1">页面一</div>
        <div class="page page2">页面二</div>
        <div class="page page3">页面三</div>
        <div class="page page4">页面四</div>
        <div class="page page5">页面五</div>
        <div class="page page6">页面六</div>
        <div class="page page7">页面七</div>
        <div class="page page8">页面八</div>
        <div class="page page9">页面九</div>

    </div>

style.css

……
.page3 {
  background: yellow;
}
.page4 {
  background: #AA22FF;
}
.page5 {
  background: #ff050e;
}
.page6 {
  background: #999999;
}
.page7 {
  background: #444400;
}
.page8 {
  background: #267DB7;
}
.page9 {
  background: #ffcc80;
}
……

看看效果:

这里写图片描述

这一次,由于要调试自适应,所以我们使用了火狐浏览器自带firebug的自适应调试模式,并开启了手势操作模拟功能。

第二步:每页加入全屏自适应图片

我们在百度图片上下载了如下图片:

这里写图片描述

这些图片大多是640*900的分辨率,因为手机设备目前最大宽度是640px,至于高宽比,为了更好地自适应,越大越好。

然后添加到页面中并在css中加入自适应的样式:

index.html

 <div id="pages">

        <div class="page page1"><img src="imgs/001.jpg" alt=""/></div>
        <div class="page page2"><img src="imgs/002.jpg" alt=""/></div>
        <div class="page page3"><img src="imgs/003.jpg" alt=""/></div>
        <div class="page page4"><img src="imgs/004.jpg" alt=""/></div>
        <div class="page page5"><img src="imgs/005.jpg" alt=""/></div>
        <div class="page page6"><img src="imgs/006.jpg" alt=""/></div>
        <div class="page page7"><img src="imgs/007.jpg" alt=""/></div>
        <div class="page page8"><img src="imgs/008.jpg" alt=""/></div>
        <div class="page page9"><img src="imgs/009.jpg" alt=""/></div>

    </div>

style.css

……
.page img {
  width: 100%;
  height: 100%;
}
……

看看效果:

这里写图片描述

这里要特别注意的是,你的图片比例必须与主流设备分辨率的宽高比尽量接近,否则同时设置图片宽和高都为100%时,会有一定程度的变形。如果想避免这种情况出现,可以将图片设为外层DIV 的背景图片,并使用backgroud-size来设置图片自适应。

第三步:修复白场,加入透明效果

这里我们得重新设计一下,在初始状态下,所有的页面都是显示的,但由于所有页面都是重叠的,所以只要设置第一页的z-index为这些页面中的最大值,就可以保证第一页覆盖在所有页面之上,从而造成只显示第一页的效果。

改造后的CSS如下:

style.css


……
.page {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  color: white;
  z-index: 1;
}
……
.page1 {
  background: blue;
  display: block;
  z-index: 100;
}
……
.hide {
  z-index: 1;
}
.show {
  z-index: 100;
}

再看看切换效果:

这里写图片描述

我们发现,在下一页向上滑动出现的过程中,下一层总是显示最后一个页面,而且在第一轮切换结束后,第二轮的切换就没有了过渡动画,这是为什么呢?

我们发现,我们在页面切换时除了给下一页增加show类(z-index:100)的时候,给当前页增加了一个hide类(z-index:1),而我们发现,此时其他所有的页面也都是z-index:1,按照浏览器默认规则,z-index相同的元素,最后加载的在最上层

并且第一轮切换时给页面加的各种动画效果都没有及时清除,导致第二轮效果无法生效,所以会出现图中所示状况。

好了,知道了原因,我们再次对css和JS进行改造,并且让图片切换时显示一定的透明度渐变效果(通过改变从animation.css里调用的动画名来实现):

style.css


……
.hide {
  z-index:99;
}
……

myfn.js

var curpage=1;
var totalpage,nextpage,lastpage,nexttotalpage;

$(document).swipeUp(function(){

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

        //获取总页数,以及总页数的+1后的序号,供后面for循环使用
    totalpage = $(".page").length;
    nexttotalpage = totalpage+1;
    //如果是最后一页,显示第一页,并移除所有page上的所有css效果类,否则显示下一页,并移除上一页的切换动画效果
    if(curpage == totalpage){
        for(var i=1; i<nexttotalpage;i++){
            $(".page"+i).removeClass("hide");
            $(".page"+i).removeClass("show");
            $(".page"+i).removeClass("pt-page-moveFromBottomFade");
        }
        $(".page1").addClass("show");
        $(".page1").addClass("pt-page-moveFromBottomFade");
        curpage =1;
    }else{
        nextpage = curpage+1;
        lastpage = curpage-1;
        $(".page"+curpage).removeClass("pt-page-moveFromBottomFade");
        $(".page"+curpage).addClass("pt-page-moveToTopFade");
        $(".page"+curpage).removeClass("show");
        $(".page"+curpage).addClass("hide");
        $(".page"+nextpage).removeClass("hide");
        $(".page"+nextpage).addClass("show");
        $(".page"+nextpage).addClass("pt-page-moveFromBottomFade");
        $(".page"+lastpage).removeClass("pt-page-moveToTopFade");
        curpage = nextpage;
    }
});

现在我们再看效果:

这里写图片描述

这里写图片描述

这次就正常了,并且切换时有了透明效果。

第四步 交互指示

我们准备了下面这张png图片作为向上的指示图片:

这里写图片描述

我们将它布局到index.html最后面

index.html


……

    <div class="upicon"><img src="upicon.png" alt=""/></div>

</body>
</html>

然后在style.css里给它定义样式,记住,一定要让它的z-index大于100!因为我们之前给当前页设置的样式z-index的值是100,要保证箭头一直处在最上层。

style.css

……
.show {
  z-index: 100;
}
.upicon {
  width: 60px;
  height: 60px;
  position: absolute;
  left: 50%;
  bottom: 20px;
  margin-left: -30px;
  z-index: 1000;
}
.upicon img {
  width: 60px;
}

这里有一点小技巧:当position为absolute时,left:50%,margin-left:-width/2,可以保证元素水平居中。如果想垂直也居中,则使用 top:50%,margin-top:-height/2 

看看效果:

这里写图片描述

最后,我们让它动起来,给它添加一个循环的上下运动的效果就可以了,我们在index.html里引入animate.css插件并给箭头元素添加animation动画:

index.html

<html>
<head lang="en">
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <meta name="renderer" content="webkit">
    <title>H5场景应用1.0——实现页面滑动效果</title>
    <link rel="stylesheet" href="animate.css" type="text/css"/> 
    <!--上面引入animate.css插件-->
    <link rel="stylesheet" href="animations.css" type="text/css"/>
    <link rel="stylesheet" href="style.css" type="text/css"/>
    <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>
</head>
<body>

    <div id="pages">

        <div class="page page1"><img src="imgs/001.jpg" alt=""/></div>
        <div class="page page2"><img src="imgs/002.jpg" alt=""/></div>
        <div class="page page3"><img src="imgs/003.jpg" alt=""/></div>
        <div class="page page4"><img src="imgs/004.jpg" alt=""/></div>
        <div class="page page5"><img src="imgs/005.jpg" alt=""/></div>
        <div class="page page6"><img src="imgs/006.jpg" alt=""/></div>
        <div class="page page7"><img src="imgs/007.jpg" alt=""/></div>
        <div class="page page8"><img src="imgs/008.jpg" alt=""/></div>
        <div class="page page9"><img src="imgs/009.jpg" alt=""/></div>

    </div>

    <div class="upicon animated infinite bounce "><img src="upicon.png" alt=""/></div>
    <!--上面应用animate的动画样式:animated infinite bounce-->

</body>
</html>

看看效果:

这里写图片描述

这里写图片描述

我们可以看到箭头已经实现了循环的上下跳动的动画,这样就可以在很好地给用户传递了此页面是可以向上滑动的友好的交互提示了。

好了,至此,我们的第一个H5应用的V2.0版也完成,接下来的V3.0版本里,我们将继续完善和扩展我们的程序,敬请期待。

H5 点击图片翻转效果 鼠标点击后原图消失/隐藏,在原来的位置上取而代之的是翻转后的图.... 阅读详情

相关推荐

HTML5实现翻页效果的图片特效.rar

HTML5实现翻页效果的图片特效,图片预览变为翻页效果,单击图片下边的“详细”按钮后,即可看到翻书效果,单击右上角的关闭按钮可恢复正常显示状态。可用于产品展示说明、书籍详情查看等一类介绍类的页面布局中,HTML5特效,因此请使用Chrome、火狐浏览器或在移动设备端查看。

移动端h5使用touchstart,touchmove实现多图片拖拽效果

1、需求描述:对移动端多张图片可以进行拖动排序(例子中使用两排5张图片) 2、实现过程: 主要思想就是能够通过用户手势,捕捉到被拖 动元素以及拖动结束后的被交换元素,通过交换这两个元素实现拖动排序。除此之外,我们还需要获得被拖动元素在拖动过程中的的left和top值,增加拖动过程中的效果。 在这个过程中会用到移动端的手势事件touchstart,touchmove,touchend 首先,需要...

kellywong的博客 3992

HTML5 WEB页面过度效果源码集合

HTML5 WEB页面过度效果源码集合 中间包过二十种页面过渡效果,这事一个例子程序,嵌入使用前注意导入UI包。

Web APIs 事件监听(绑定)

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

m0_68331234的博客 395

【阿里云大模型高级工程师ACP习题集】2.5 优化RAG应用提升问答准确度(⭐️⭐️⭐️ 重点章节!!!)

【摘要】这是我精心整理出对应的习题集,里面足足有 30 道题目,从基础概念到深度拓展,全方位覆盖章节重点、难点。不管你是想检验自己的学习成果,还是想针对薄弱环节进行强化训练,它都能完美适配!

davidkorhenn的博客 1105

杭电oj2023题题目详解(Java版)

杭电oj2023题详解

m0_51065958的博客 978

h5页面的写法_Vue多页面开发配置

最近在做的项目都是SPA的单页面应用,但实际工作中,单页面并不一定符合业务需求,比如在现有H5项目基础上一步一步将众多页面升级至vue框架,这就需要多页面开发。这种情况下就体现出了Vue所谓渐进式框架的优势,可以与现有项目进行整合。接下来就说一下多页面的配置:假设已经安装好了node,并且已经搭建好了基于vue-cli的脚手架。第一步:新建所要增加的.html、.vue、.js文件,如下图所示:这...

weixin_28729843的博客 1450

信息安全与技术——(十一)恶意代码检测与防范技术

恶意代码(Malicious Code )或恶意软件(Malware )主要是指以危害信息的安全等不良意图为目的的程序,它们一般潜伏在受害计算机系统中实施破坏或窃取信息。

m0_63853448的博客 5991

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

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

weixin_34293246的博客 155

BambuStudio学习笔记:OpenCSG - 实时构造实体几何(CSG)渲染的 OpenGL 方案

**OpenCSG** 是一个基于 **OpenGL** 的 **构造实体几何(CSG)** 实时渲染库,通过 **深度剥离算法** 实现布尔运算(并集、交集、差集)的可视化。其核心目标是简化复杂几何体的交互式建模,适用于 CAD 原型设计、3D 打印预览、教育工具等场景。

zzzkk2009的专栏 929

STM32H750_QSPI_Flash_Configuration_With_CubeMX

本文详细介绍了如何使用STM32CubeMX配置STM32H750的QSPI Flash接口,包括硬件连接、CubeMX参数设置、代码生成与初始化流程优化。通过实战示例展示了Flash ID读取、页编程与数据读取等常用操作,并提供了调试技巧与性能优化建议,帮助开发者高效实现高速外部存储扩展。

weixin_29176179的博客 274

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

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

aofan9566的博客 162

TIM 2024 | AD-YOLO:一种结合 Swin Transformer 和注意力机制的实时 YOLO 网络用于机场场景检测

实时获取机场场景信息对于保障机场安全和提升机场运营效率至关重要。然而,机场场景图像中的人员和车辆目标尺寸较小,而且公开的机场数据不足,这使得机场物体检测成为一项颇具挑战的任务,难以同时实现高精度和实时检测。本文提出了一种全新的机场物体检测方法——机场检测器YOLO(AD - YOLO),它融合了改进的你只看一次(YOLO)算法、Swin Transformer和注意力机制的优势,以应对这一挑战。

小白学视觉 315

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

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

林中路 4117

Altium Designer(AD24)导入DDB库文件(Protel 99SE)方法

Altium Designer和Protel均为Altium公司开发的软件。本文介绍Altium Designer 24软件导入DDB库文件(Protel 99SE)方法。

fydar的博客 1978

逆向工具:一文讲述 Ghidra 的详细使用

Ghidra是由NSA开源的一款功能强大的逆向工程框架,支持多平台、多架构和多种文件格式分析。本文详细介绍了Ghidra的核心优势、安装配置方法、主界面功能模块,并通过一个CrackMe示例演示了完整的逆向分析流程。文章还讲解了高级功能如交叉引用、控制流图分析、数据类型重建和脚本自动化等,最后提供了常见文件格式的分析技巧。作为IDA Pro的免费替代方案,Ghidra适合个人学习、教学和中小项目使用。(149字)

数据知道的博客 4343

ih5长图如何滑动_iH5中级教程微场景H5必备,滑动时间轴+轨迹.doc

iH5中级教程微场景H5必备,滑动时间轴轨迹iH5中级教程:微场景H5必备,滑动时间轴+轨迹你是否还在羡慕别人做的H5各种华丽各种切换各种来?使用一个免费的在线H5编辑工具不需要写代码也可以工具第一步:1、选中舞台2、点击工具栏里的“图片”图标3、在舞台上画出一个框4、在舞台下添加图片,并调整好图片的位置。第二步:1、选中舞台2、点击工具栏里的“滑动时间轴”图标3、在舞台上画出一个框作为你滑动的区...

weixin_31861647的博客 5805

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

h5上下滑动动画效果(vue)

vue实现上下滑动切换效果

weixin_48363701的博客 3244

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

RuleAppV2.0.6 Pro版正式发布,瀑布流布局,缓存优化,页面重构+风格切换,社区APP源码

V2.0.6 Pro版重磅升级,带来多项功能优化:新增同城交友支持(附近用户/内容推荐)、优化瀑布流体验(媲美小红书)、重构UI界面、支持多风格切换(可通过配置文件或APP内调整)。同时改进数据缓存机制,解决多端兼容问题。Pro版相比开源版功能更丰富、更新更快,支持企业平台且可无缝升级。RuleApp是全端内容社区系统,覆盖多端平台并提供会员体系、付费阅读等商业化功能。

不暇的技术圈 758

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

纯前端H5,利用html2canvas,base64转码,生成图片,解决iOS和安卓微信的坑,生成不全,空白,跨域等问题。

查阅很多资料后,几乎没有一个能完整解决问题的,都是东平西凑,各种调试才勉强解决生成图片的坑。 因为canvas始终会跨域,一般都是通过设置后端,改的麻烦也不知道行不行,所以就前端自己想办法解决,绕过后端。 canvas生成图片有要求,不可以是display:none;我是定位z-index负值,不设置透明度,除非你要生成透明的。 先贴下代码: <!-- 遮罩层--商品分享海报 --...

someWhere_weMeet的博客 5241

H5页面中使用html2canvas总结

H5页面中使用html2canvas总结 html2canvas插件实现的功能是,将dom节点的内容复制到一个动态创建的<canvas>中,而通过canvas对象就可以很方便地将画布的内容转成图片。 github直达:html2canvas 使用方式 html2canvas(domNode, options).then(function(canvas){ var img = document.createElement('img'); img.src = canvas.toDat

编程架构三分天下:分层、分治、分时序。 2361

cocos2d-js游戏背景(canvas)透明

需求背景 现需要开发一款H5小游戏,植入到直播类app里面,让用户看直播的同时可以玩H5小游戏。游戏场景只暂用手机屏幕的半个屏(下半屏)。引擎版本cocoscreator v2.1.2 实现步骤 1、首先设置主场景摄像机用于清屏的背景色为透明,在主场景所挂载脚本的onLoad()方法中加入该段代码: onLoad () { cc.Camera.main.backgroundColor = new cc.Color(0, 0, 0, 0); } 2、发布web包成功后,修改main.js和style-mo

Mr_JiaTao的博客 3054

H5动效的常见制作手法

众所周知,一个元素,动往往比静更吸引眼球;一套操作界面,合适的动态交互反馈能给用户带来更好的操作体验;一个H5运营宣传页,炫酷的动画特效定能助力传播和品牌打造。近两年,小到loading动画,表单动效,大到各式各样H5运营页的炫酷展现,“动效设计”一词可谓是火遍大江南北,而动效设计早已成为一名合格设计师必需有所知晓的领域。本文将通过一些案例,和大家一同挖掘几种常见的H5动效制作手法。我们由浅入深来...

CamilleZJ的博客 3663
上一篇: 从零开始学习H5应用(1)——V1.0版,简单页面滑动切换效果
下一篇: 从零开始制作H5应用(3)——V3.0版,loading,背景音乐及自动切换
普通网友
博客等级 码龄14年 46粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值