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

之前,我们分三次完成了我们第一个H5应用的三个迭代版本:

V1.0——简单页面滑动切换

V2.0——多页切换,透明过渡及交互指示

V3.0——加入loading,music及自动切换

这已经是一个具有基本表达能力的版本了,但是,远远不够!因为,用户体验永远是第一位的,单纯的图片无法准确调动用户情绪,当然,除非是那些特别牛逼的照片,但那时不可多得的,所以我们必须配以适当的文案来对图片内容进行说明或者升华。并且,如果文字也有一些简单的特效而动起来,它们会更有生命力!

任务

在V3.0版的基础上给每张图片加入文字,并赋予不同的特效和动感。

分析

1、从布局来看,现在每一页已经被一张图片铺满了,前面我们说过,其实可以将图片在CSS里设置为每一页的背景图片,这样既可以消除因同时设置图片宽和高都是100%带来的图片变形问题,也可以更好地在每一个页面中布局文字。

2、另一方面,我不打算将设置背景图片的样式放入主样式表,因为后面我要将我们的应用改造为一个模板,将图片置入外部样式表中,将不利于我们的模板化制作,所以,这里,我选择将样式置入页面的头部中的<style></style>标签对里,这样以后可以方便地将图片路径作为变量输出到模板中。

3、在页面中加入文字,如果是项目时间有限,追求速度的话,最直接的办法是使用作图软件将文字添加图片上,目前确实也有很多媒体和H5公司在这样做,但这样做的缺点也显而易见——无法给文字加动态效果并且不利于SEO,所以我们还是将文字独立出来放置在页面中单独制作。

实现

改造页面,将图片作为图层背景

index.html

<!DOCTYPE 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"/>
    <link rel="stylesheet" href="animations.css" type="text/css"/>
    <link rel="stylesheet" href="loading.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>

    <style>
        .page1{background-image: url("imgs/001.jpg"); background-repeat: no-repeat; background-size: cover;}
        .page2{background-image: url("imgs/002.jpg"); background-repeat: no-repeat; background-size: cover;}
        .page3{background-image: url("imgs/003.jpg"); background-repeat: no-repeat; background-size: cover;}
        .page4{background-image: url("imgs/004.jpg"); background-repeat: no-repeat; background-size: cover;}
        .page5{background-image: url("imgs/005.jpg"); background-repeat: no-repeat; background-size: cover;}
        .page6{background-image: url("imgs/006.jpg"); background-repeat: no-repeat; background-size: cover;}
        .page7{background-image: url("imgs/007.jpg"); background-repeat: no-repeat; background-size: cover;}
        .page8{background-image: url("imgs/008.jpg"); background-repeat: no-repeat; background-size: cover;}
        .page9{background-image: url("imgs/009.jpg"); background-repeat: no-repeat; background-size: cover;}
    </style>

</head>

第二步,为每张页面加入文案

我们在每一个页面中放置一个容器来放置文本内容,并通过容器样式来控制文本的基本布局和格式,同样,为了方便模板化,我们将容器样式写在页面头部<style></style> 标签对内:

index.html

<style>

……
.textbox1{width:300px; height: 100px; position: absolute; top:50px; left: 50px; margin-left: 0; margin-top: 0; color:red;-webkit-writing-mode:horizontal-tb;writing-mode:lr-tb;writing-mode:horizontal-tb;}

.textbox2{width:100px; height: 300px; position: absolute; top:50px; right: 50px; margin-left: 0; margin-top: 0; color:yellow; -webkit-writing-mode:vertical-rl;writing-mode:tb-rl;writing-mode:vertical-rl;}

……
</style>

……
 <div class="page page1">
            <div class="textbox1">
                <h5>岁月如花般绽放</h5>
                <h5>你的微笑</h5>
                <h5>融化在咖啡里</h5>
            </div>
        </div>
        <div class="page page2">
            <div class="textbox2">
                <h5>不知你是否记得</h5>
                <h5>下雨那天</h5>
                <h5>你我初遇</h5>
                <h5>你恰好穿着白色短衫</h5>
            </div>
        </div>

……

这里需要注意的是,出于模板化的需要,我将.textbox(n)的所有样式都设置为同样的格式,样式的最后三条语句用来控制文字的流动方向(火狐不支持,慎用,这里瑾做演示),效果如下图所示:

这一页使用了文字垂直排版,由于火狐不支持该CSS特性,故用chrome演示。

这里限于篇幅,只展示前两张,其余的格式都相同,根据图片和自己的需要可以调整相关参数。

第三步,文字增加特效

加特效,我们依然使用animation.css插件里的动画,现在,我们先给textbox01加上pt-page-rotateCubeTopIn动画,

index.html

<div class="textbox1 pt-page-rotateCubeTopIn">
   <h5>岁月如花般绽放</h5>
   <h5>你的微笑</h5>
   <h5>融化在咖啡里</h5>
</div>

看看效果:

我们看到页面加载时文字确实应用了动画特效,以立体翻转并逐渐淡入的方式显示了出来。

但是当我们把相同的样式应用到其他textbox上时,页面切换时却没有出现预期的动画效果。

这是为什么呢?

原来,添加到这些 textbox上的动画都是在页面加载时应用的而不是页面切换时,而页面加载时,其所在页面处于不可见状态,所以我们看不到它的动画。

那么,解决这个问题的思路就是在页面切换时再让textbox显示,并给它添加相应动画。

我们在myfn.js里添加以下代码:

myfn.js

……
 $("#audioPlay").on(‘click‘,function(){
        if(audio.paused){
            audio.play();
            this.style.backgroundImage="url(imgs/music_play.png)";
        }else{
            audio.pause();
            this.style.backgroundImage="url(imgs/music_pause.png)";
        }
    });
//生成随机整数函数
    function rnd(start, end){
        return Math.floor(Math.random() * (end - start) + start);
    }
//文字进入特效数组
    var inClassArray = [‘pt-page-flipInLeft‘,‘pt-page-rotatePullLeft‘,‘pt-page-rotateCubeTopIn‘];
    var temLength = inClassArray.length;

    function swichpage() {

……

     $(".page" + nextpage).addClass("show");
            $(".page" + nextpage).addClass("pt-page-moveFromBottomFade");

            //为文字添加随机特效
            var randomNum = rnd(0,temLength);
            setTimeout(function(){
                $(".textbox"+nextpage).css(‘display‘,‘block‘);
                $(".textbox"+nextpage).addClass(inClassArray[randomNum]);
            },1000);

            $(".page" + lastpage).removeClass("pt-page-moveToTopFade");
            curpage = nextpage;
        }
    }
    ……

再次刷新浏览器,就可以看到文字成功应用了随机从inClassArray数组里选择的动画特效。

至此,我们的第一个H5应用的V4.0版也完成了。

时间: 2024-11-08 17:27:46

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

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

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

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

之前,我们分三次完毕了我们第一个H5应用的三个迭代版本号: V1.0--简单页面滑动切换 V2.0--多页切换,透明过渡及交互指示 V3.0--加入loading,music及自己主动切换 这已经是一个具有基本表达能力的版本号了.可是,远远不够!由于,用户体验永远是第一位的,单纯的图片无法准确调动用户情绪,当然,除非是那些特别牛逼的照片,但那时不可多得的,所以我们必须配以适当的文案来对图片内容进行说明或者升华.而且,假设文字也有一些简单的特效而动起来,它们会更有生命力! 任务 在V3.0版的基础

从零开始学习制作H5应用——V5.0:后悔机制,整理目录,压缩,模板化

经过前面四个版本的迭代,我们已经制作了一个从视觉和听觉上都很舒服的H5微场景应用,没有看过的请戳下面: V1.0--简单页面滑动切换 V2.0--多页切换,透明过渡及交互指示 V3.0--加入loading,music及自动切换 V4.0--加入文字并给文字加特效 但是,还没有完,这一次,我们将做一些十分重要的收尾工作,才能真正完成我们的第一个H5应用,所以,let's do it! 任务 1.加入后悔机制--页面上滑切换功能: 2.整理目录 3.压缩样式与脚本文件 4.模板化 分析 1.世上没

从零开始学习制作H5应用——V3.0版,loading,背景音乐及自动切换

我们的第一个H5应用经过V1.0与V2.0的制作,已经越来越惊艳了,这一次,我们继续来给她梳妆打扮,让她更漂亮. 任务 1.加入页面加载完成前的loading动画,提升用户体验: 2.加入背景音乐,自动播放,并添加控制图标,可以控制播放与暂停 3.让页面实现自动切换. 实现 第一步:Loading动画 index.html -- <body> <div class='loader loader--spinningDisc'></div> <div id="

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

可曾看见过那些在微信上转疯了的H5神作?好生羡慕啊,那么从今天开始,我将从零开始学习制作H5应用,看看那么漂亮的页面是怎么样一步一步形成的. 准备 在学习制作H5应用之前,必须具备以下基础前提: HTML,CSS,JS基本编写与制作能力 了解了H5中的各种新特性 有一定的逻辑思维能力,可以将复杂任务通过分析简化为若干原子事件来处理 看得懂汉语,以及教程中出现的前端术语. 任务 这是本系列的第一篇,任务非常简单, 制作一个具有3张页面,每次只显示其中一张页面,当手指向上滑动设备屏幕时当前页面消失下

VTree.SDK.Pro.v4.0.2.WinALL

■□■□■□■□■□四方行业软件□■□■□■□■□■□■□专业行业软件,值得信赖!为您提供完整版好用软件!竭诚为您服务!联系电话TEL 139 766 33785 联系人 wang 电话:188 76789633联系QQ:1970578528 添加扣-扣:①⑥②③①0①⑥⑤① 查询更多软件请百度:四方行业,十全行业. 请使用Ctrl+F 键来查询您所需软件,找到后联系我们QQ或是邮件,我们会第一时间为您回复■□■□■□■□本廣告長期有效■□■□■□■□■□■□■□■ DiSTI产品: GL St

从零开始制作Minecraft启动器(C++开源)

从零开始制作Minecraft启动器(C++开源) 新手飙车了~~~,MC启动器源码大放送,随心所欲打造自己的专属MC启动器,这不是易语言,是C++...分析原理,关键源码都有详细的注释,代码编好就打包放送,所以说凌乱无比... 下载地址: 百度网盘:http://pan.baidu.com/s/1i3UDOXn CSDN下载:http://download.csdn.net/detail/u010661060/9376136 MClauncher(公版)启动器界面: 代码全部开源,拥有详细的注

武汉兼职女: 制作h5婚礼邀请函动画总结

武汉兼职女: 制作h5婚礼邀请函动画总结 很多网上的婚纱摄影公司,或者婚庆公司,或者一些h5制作平台,都可以做一些婚礼邀请函,但是这样的婚礼邀请函千篇一律.没有什么特色,仅仅是图片展示.在某人的强烈要求之下,我制作了一个h5婚礼邀请函(目前源码暂时不公开吧,过段时间再说).用到了一些知识和小技巧,在这里简单总结一下! transform 中透视效果应用动画的书写,自然少不了transform ,像translate3d.rotate.scale3d的应用,相信大家都很熟练了.假如不熟练的,可以看

高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.0.1 发布

HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/C++.C#.Delphi.E(易语言).Java.Python 等编程语言接口.HP-Socket 对通信层实现完全封装,应用程序不必关注通信层的任何细节:HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到新旧应用程序中. 为了让使用者能方便快速地学习和使用 HP-S