微信场景制作教程

微信是目前最流行的社交软件,每逢节假日,很多人都会在朋友圈分享自己的照片,有的人更是把照片做成了相册,图片的切换还伴随有音乐,这个就是微信场景。

接下来就带领大家做一个微信场景。

备注:通过本套教程的学习,能够学到触摸事件的使用,多点触摸技术,手势事件滑动方向判断的算法,CSS3动画调用,文字动画(动画全部自定义),音乐的播放和控制,CSS3动画的控制,网络字体的使用,js操作DOM等知识。大家学习过程中遇到任何问题可以加我QQ:1416759661.

大致步骤如下:

001、效果预览

002、创建项目

003、mete属性和径向渐变

004、添加图片

005、定位图片

006、监听触摸开始事件

007、监听触摸结束事件

008、滑动方向判断

009、上滑切换图片

010、添加过渡动画效果

011、调用动画和重置属性

012、下滑切换图片

013、添加3d旋转效果

014、添加文字效果

015、文字移动移动

016、文字样式重置

017、文字旋转效果

018、下滑文字效果

019、圆形音乐控制按钮

020、按钮旋转动画

021、停止旋转动画

022、控制音乐的播放与停止

023、自动调用动画切换效果

先体验下制作好的效果,使用微信扫描下面的二维码就可以看到效果。

也可以点击下面的链接查看效果,由于是国外的服务器,可能比较慢。

https://1416759661.github.io/changjing/

详细代码:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <meta http-equiv="Pragma" contect="no-cache">
        <meta http-equiv="Cache-Control" contect="no-cache">
        <meta http-equiv="Expires" contect="0">
        <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></title>
        <style type="text/css">

            @font-face {
                font-family:yyjcwfont;
                src:url(font/hand.ttf);
            }

            @-webkit-keyframes musicrotate {
                from {
                    -webkit-transform: rotate(0);
                }
                to {
                    -webkit-transform: rotate(360deg);
                }
            }

            @keyframes dhfadein {
                from {
                    width: 1%;
                    height: 1%;
                    display: block;
                    position: absolute;
                    top: 50%;
                    left: 50%;
                    opacity: 0.5;
                    z-index: 1;
                }
                to {
                    width: 100%;
                    height: 100%;
                    top: 0;
                    left: 0;
                    opacity: 1;
                    transform: rotate(720deg) rotateY(360deg);
                    z-index: 100;
                }
            }

            @keyframes dhfadein-p1 {
                from {
                    width: 1%;
                    height: 1%;
                    left:-100%;
                    top:-100%;
                    position: absolute;
                    bottom: 0;
                    opacity: 0;
                }
                to {
                    width: 100%;
                    left:10%;
                    top:50%;
                    font-size:3rem;
                    opacity:1;
                    color: #1477E2;
                    transform: rotateX(360deg) rotateY(720deg);
                    text-shadow: 0 -5px 4px #FF3,2px -10px 6px #fd3,-2px -15px 11px #f80,2px -25px 18px #f20;
                    z-index: 100;
                }
            }

            @keyframes dhfadein-p2 {
                from {
                    width: 1%;
                    height: 1%;
                    left:200%;
                    position: absolute;
                    bottom: 0;
                    opacity: 0;
                }
                to {
                    width: 100%;
                    left:10%;
                    top:60%;
                    font-size:3rem;
                    opacity:1;
                    color: #1477E2;
                    transform: rotateX(360deg) rotateY(720deg);
                    text-shadow: 0 -5px 4px #FF3,2px -10px 6px #fd3,-2px -15px 11px #f80,2px -25px 18px #f20;
                    z-index: 100;
                }
            }

            @keyframes dhfadein-p3 {
                from {
                    width: 1%;
                    height: 1%;
                    left:-100%;
                    position: absolute;
                    bottom: 0;
                    opacity: 0;
                }
                to {
                    width: 100%;
                    left:10%;
                    top:70%;
                    font-size:3rem;
                    opacity:1;
                    color: #1477E2;
                    /*transform: rotateX(360deg) rotateY(720deg);*/
                    text-shadow: 0 -5px 4px #FF3,2px -10px 6px #fd3,-2px -15px 11px #f80,2px -25px 18px #f20;
                    z-index: 100;
                }
            }

            @keyframes dhfadein-p4 {
                from {
                    width: 1%;
                    height: 1%;
                    left:200%;
                    top:90%;
                    position: absolute;
                    bottom: 0;
                    opacity: 0;
                }
                to {
                    width: 100%;
                    left:10%;
                    top:80%;
                    font-size:3rem;
                    opacity:1;
                    color: #1477E2;
                    /*transform: rotateX(360deg) rotateY(720deg);*/
                    text-shadow: 0 -5px 4px #FF3,2px -10px 6px #fd3,-2px -15px 11px #f80,2px -25px 18px #f20;
                    z-index: 100;
                }
            }    

            @keyframes dhfadein-p5 {
                from {
                    width: 1%;
                    height: 1%;
                    left:50%;
                    bottom:-100%;
                    position: absolute;
                    bottom: 0;
                    opacity: 0;
                }
                to {
                    width:10%;
                    left:80%;
                    top:10%;
                    font-size:3rem;
                    opacity:1;
                    color: #1477E2;
                    /*transform: rotateX(360deg) rotateY(720deg);*/
                    text-shadow: 0 -5px 4px #FF3,2px -10px 6px #fd3,-2px -15px 11px #f80,2px -25px 18px #f20;
                    z-index: 100;
                }
            }    

            * {
                margin: 0;
                padding: 0;
            }

            html,
            body {
                width: 100%;
                height: 100%;
            }

            ul {
                width: 100%;
                height: 100%;
                list-style: none;
                overflow: hidden;
                position: relative;
                background:radial-gradient(white,#FC7D08);
                display: none;
            }

            ul li {
                width: 1%;
                height: 1%;
                display: block;
                position: absolute;
                top: 50%;
                left: 50%;
                opacity: 0.5;
                /*    animation: dhfadein 3s 1 forwards;*/
            }

            ul li img {
                width: 100%;
                height: 100%;
                display: block;
                margin: 0 auto;
                opacity: 1;
            }

            p{
                font-family: yyjcwfont;
            }

            ul li p.text1 {
                width: 1%;
                height: 1%;
                left:-100%;
                top:-100%;
                position: absolute;
                bottom: 0;
                opacity: 0;
            }
            ul li p.text2 {
                width: 1%;
                height: 1%;
                left:200%;
                position: absolute;
                bottom: 0;
                opacity: 0;
            }
            ul li p.text3 {
                width: 1%;
                height: 1%;
                left:-100%;
                position: absolute;
                bottom: 0;
                opacity: 0;
            }
            ul li p.text4 {
                width: 1%;
                height: 1%;
                left:200%;
                top:90%;
                position: absolute;
                bottom: 0;
                opacity: 0;
            }
            ul li p.text5 {
                width: 1%;
                height: 1%;
                left:50%;
                bottom:-100%;
                position: absolute;
                bottom: 0;
                opacity: 0;
            }

            .musicbox {
                background-image: url(images/m.jpg);
                background-position: 0 0;
                width:38px;
                height:38px;
                overflow: hidden;
                background-repeat: no-repeat;
                background-size: contain;
                border-radius:19px;
                position: absolute;
                z-index: 102;
                top: 10px;
                right:10px;
                cursor: pointer;
                animation:musicrotate 1s linear infinite;
                box-shadow: 0 0 15px 2px blue;
            }

            div.closeroate{
                animation-play-state: paused;
            }

            .loding{
                position: absolute;
                left: 0;
                top: 0;
                line-height: 30px;
                padding: 10px;
                color:green;
            }
        </style>
    </head>
    <body id="mybox">
        <div class="loding">加载中<img src="images/wait.gif"></div>
        <ul>
            <li>
                <img src="images/01.png" />
                <p class="text1">两情若是久长时,</p>
                <p class="text2">又岂在朝朝暮暮!</p>
            </li>
            <li>
                <img src="images/02.png" />
                <p class="text1">当你老了,</p>
                <p class="text2">头白了,</p>
                <p class="text3">睡思昏沉,</p>
                <p class="text4">依然爱慕你的美丽!</p>
                <p class="text5">思念直到永远</p>
            </li>
            <li>
                <img src="images/03.png" />
                <p class="text1">两情若是久长时,</p>
                <p class="text2">又岂在朝朝暮暮!</p>
            </li>
            <li>
                <img src="images/04.png" />
                <p class="text1">轻轻的我走了,</p>
                <p class="text2">正如我轻轻的来!</p>
                <p class="text3">我挥一挥衣袖,</p>
                <p class="text4">不带走一片云彩!</p>
            </li>
            <li>
                <img src="images/05.png" />
                <p class="text1">CSS3教程上线啦</p>
                <p class="text2">QQ:1416759661!</p>
            </li>

            <li>
                <img src="images/06.png" />
                <p class="text1">当你老了,</p>
                <p class="text2">头白了,</p>
                <p class="text3">睡思昏沉,</p>
                <p class="text4">依然爱慕你的美丽!</p>
                <p class="text5">思念直到永远</p>
            </li>
            <li>
                <img src="images/07.png" />
                <p class="text1">两情若是久长时,</p>
                <p class="text2">又岂在朝朝暮暮!</p>
            </li>
            <li>
                <img src="images/08.png" />
                <p class="text1">轻轻的我走了,</p>
                <p class="text2">正如我轻轻的来!</p>
                <p class="text3">我挥一挥衣袖,</p>
                <p class="text4">不带走一片云彩!</p>
            </li>
            <li>
                <img src="images/09.png" />
                <p class="text1">CSS3教程上线啦</p>
                <p class="text2">QQ:1416759661!</p>
            </li>
        </ul>
        <audio src="music/music.mp3" autoplay="autoplay" loop="loop" id="audioPlay"></audio>
        <div class="musicbox" id="musicbox">

        </div>
        <script src="js/zepto_1.1.3.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
//            $(function(){
//
//            });

//            $(window).load(function(){
//                $(".loding").hide();
//                $("ul").show();
//            });
            window.addEventListener(‘load‘, function(){
                $(".loding").hide();
                $("ul").show();
            }, false);

            var audio = document.getElementById("audioPlay");
            var musicbox=document.getElementById("musicbox");

            document.getElementById("musicbox").onclick=function(e){
                if(this.className=="musicbox")
                {
                    audio.pause();
                    musicbox.className="musicbox closeroate";

                }
                else
                {
                    audio.loop = true;
                    audio.play();
                    this.className="musicbox";
                }
            };

            var timer1=setInterval(function(){
                sliderNext();
            },13000);
            sliderNext();
            var container = document.getElementById("mybox");
            var start_x;
            var start_y;
            var end_x;
            var end_y;
            container.addEventListener("touchstart", function(event) {
                clearInterval(timer1);
                if(event.targetTouches.length == 1) {
                    var touch = event.targetTouches[0];
                    start_x = touch.pageX;
                    start_y = touch.pageY;
                };
            }, {
                passive: false
            });
            container.addEventListener("touchmove", function(event) {
                event.preventDefault();
                if(event.targetTouches.length == 1) {
                    var touch = event.targetTouches[0];
                    move_x = touch.pageX;
                    move_y = touch.pageY;
                };
            }, {
                passive: false
            });
            container.addEventListener("touchend", function(event) {
                if(event.changedTouches.length == 1) {
                    var touch = event.changedTouches[0];
                    end_x = touch.pageX;
                    end_y = touch.pageY;
                };
                var x=end_x-start_x;
                var y=end_y-start_y;
                if(Math.abs(x) > Math.abs(y) && x > 0){
                      console.log(‘向右‘);
                }
                else if(Math.abs(x) > Math.abs(y) && x < 0){
                    console.log(‘向左‘);
                }
                else if(Math.abs(x) < Math.abs(y) && y > 0){
                    console.log(‘向下‘);
                    sliderPre();
                }
                else if(Math.abs(x) < Math.abs(y) && y < 0){
                    console.log(‘向上‘);
                    sliderNext();
                }

                timer1=setInterval(function(){
                    sliderNext();
                },13000);

            }, {
                passive: false
            });

            function sliderNext() {

                var lastli = $("li:last-child")[0];
                $("li:last-child").prependTo($("ul"));
                $("li").removeAttr("style");
                lastli = $("li:last-child")[0];
                lastli.style.webkitAnimation = "dhfadein 3s 1 forwards";
                $("p").removeAttr("style");
                lastli.addEventListener(‘webkitAnimationEnd‘, function () {
                    //console.log(‘Li动画执行完毕!‘);
                    $(lastli).find("p").eq(0).css({"animation":"dhfadein-p1 3s 1 forwards"});
                    $(lastli).find("p").eq(1).css({"animation":"dhfadein-p2 3s 1 forwards"});
                    $(lastli).find("p").eq(2).css({"animation":"dhfadein-p3 3s 1 forwards"});
                    $(lastli).find("p").eq(3).css({"animation":"dhfadein-p4 3s 1 forwards"});
                    $(lastli).find("p").eq(4).css({"animation":"dhfadein-p5 3s 1 forwards"});

                }, false);
            }
            function sliderPre() {
                $("p").removeAttr("style");
                $("li:first-child").appendTo($("ul"));
                $("li").removeAttr("style");
                var lastli = $("li:last-child")[0];
                lastli.style.webkitAnimation = "dhfadein 3s 1 forwards";
                lastli.addEventListener(‘webkitAnimationEnd‘, function () {
                    //console.log(‘Li动画执行完毕!‘);
                    $(lastli).find("p").eq(0).css({"animation":"dhfadein-p1 3s 1 forwards"});
                    $(lastli).find("p").eq(1).css({"animation":"dhfadein-p2 3s 1 forwards"});
                    $(lastli).find("p").eq(2).css({"animation":"dhfadein-p3 3s 1 forwards"});
                    $(lastli).find("p").eq(3).css({"animation":"dhfadein-p4 3s 1 forwards"});
                    $(lastli).find("p").eq(4).css({"animation":"dhfadein-p5 3s 1 forwards"});

                }, false);
            }            

        </script>
    </body>

</html>

如果学习代码感觉难以理解,还可以看我们的视频教程。咨询教程加QQ:1416759661,学习过程中遇到问题也可以咨询我。希望这个教程能帮助大家学会制作微信场景。

时间: 2024-11-10 17:42:31

微信场景制作教程的相关文章

【干货】微信场景之H5页面制作免费工具大集合

营销代有手段出,各领风骚数百天.要说现在哪些营销方式最能传播,屡屡刷爆朋友圈的H5页面肯定就是首当其冲的,提到H5页面,就立马想到"围住神经猫",上线微信朋友圈3天的时间便创造了用户500万,访问量超1亿的神话. H5如此势头,不得不让营销人对H5页面的未来充满了期待,越来越多的人开始在营销中运用H5页面.其实在移动端各个领域,H5页面的叫法很多,也会称为翻翻看.手机微杂志.广告页.场景应用.海报\画报(动态海报.指尖海报.掌中海报.动画海报.微画报.微海报)等等,经常能见到的就是滑动

PHP微信墙制作,开源

PHP微信墙制作 微信墙 PHP 注意:由于微信官网不定时会更新,其中模拟登陆以及爬取数据的方式可能会失效,最近这12个月里,就有两次更新导致此功能需要重写. 服务端源码->github地址传送门 思路 其实实现思路就是通过模拟登陆的方式登录到微信平台,然后通过正则表达式获取指定的内容放到数据库里面,同时这个操作要在一个定时任务里面定时运行一次,当然避免麻烦,cookie应该放到缓存中以免单位时间内多次登陆微信需要输入二维码验证的问题 关于项目中使用的工具问题 这种工程类博文中不会太涉及工具的使

微信开发系列教程:(1)订阅号和服务号深入分析

微信开发系列教程,将以一个实际的微信平台项目为案例,深入浅出的讲解微信开发.应用各环节的实现方案和技术细节. 原创内容,欢迎转载,转载请注明出处. 首先在第1章节中,我们先理清什么是订阅号,什么又是服务号,以及两者的关键性区别. 订阅号和服务号统称为微信公众号. 订阅号强调媒体资讯属性,为会员提供信息订阅,适用于新闻传媒类企业.订阅号从某种意义上来讲,是拿来做内容的,如果你没有原创作品,对用户没有任何意义. 服务号强调服务和应用属性,旨在为会员提供服务并与之互动.支持所有微信高级接口,几乎所有的

微信公众平台教程

配套书籍 <微信公众平台开发最佳实践> 由方倍工作室编写,覆盖基础接口.自定义菜单.高级接口.微信支付.转发分享等五大接口,包含近30个案例及技巧,已成功帮助无数人进入微信开发领域. 购买地址:淘宝天猫  亚马逊  当当网  京东商城 入门教程 微信公众平台开发入门教程 内容:1.申请SAE作为服务器; 2.启用开发模式; 3.微信公众平台PHP SDK; 4.接收发送消息类型解析; 5.微信公众平台开发模式原理; 6.快速开发天气预报功能. 入门教程是下面所有教程的基础. 基础接口教程 微信

atitit.微信支付的教程文档 attilax总结

atitit.微信支付的教程文档 attilax总结 1. 支付流程概览 1 2. 设置支付起始目录   host/app/paydir/ 1 3. 设置oauth验证域名 1 4. 测试目录 可以使用ip,但必须80端口好像. 1 5. 发起测试支付,菜单  host/fromother.jsp 2 6. Start.jsp 2 7. 获取openid的page接口,并制定回调接口 2 8. 开始支付页面 3 9. 生成js调用支付接口 4 10. 注意事项 5 10.1. 预支付的签名and

纯CSS3彩色边线3D立体按钮制作教程

今天我们来分享一款利用纯CSS3实现的3D按钮,这款按钮的一个特点是有彩色的边线,这让整个按钮显得比较多姿多彩,没那么枯燥无趣.本文不仅可以让大家看到演示效果,而且我们把制作教程也分享出来,首先来看看效果图: 我们也可以在这里看到这些按钮的DEMO演示. 接下来就来分享一下制作教程以及源代码,按钮的源代码主要由HTML和CSS两部分代码组成,先来看看HTML代码: <button class="blue"> <div class="wrapper"

微信使用教程(微信怎么玩?微信公众平台教程)

微信使用教程 现在没玩微信只能说是"来自星星的你"了,连80后学子手绘微信教程分享给父母了,没用微信的朋友们,该换手机的换手机,该开通微信的开通微信去! 微信怎么玩?先看看那位80后学子手绘微信教程图片吧,点击查看大图 手机内存不够用?那就删除一些没用的东西,该备份的备份一下.这里有安卓微信聊天记录导出到电脑和iphone微信聊天记录备份到电脑 朋友圈是玩微信的小伙伴们不可错过的功能,没那么多图片可以发怎么办?看这个:微信朋友圈只发文字和表情 微信网页版,让你在电脑上也能聊微信,体验发

微信公众号教程(1)微信公众账号注册、设置、登陆

原文:http://www.cnblogs.com/imaker/p/6247323.html 从今天开始微信公众平台教程开写,前面部分会比较浅,已经在玩的朋友可以忽略. 第一章 微信公众账号注册.设置.登陆 一.微信公众平台注册   注册前的准备工作,很重要!   1.一个没有注册过公众账号的邮箱,如果是qq邮箱那么对应的qq号也要没有注册过公众账号.顺便提一下,公众账号用gmail邮箱邮箱是注册不了的,只有国内邮箱才能注册成功!   2.身份证扫描件,每个身份证可以注册5个公众账号   3.

Excel制作教程(1)

上节我们讲了ppt的教程,这节我们将讲Excel的制作. 这次我们还是用的wps,请大家不要卸载wps.删除的务必安装. 新建一个Excel文件. (插一句:一打开不是这个界面的,要按按钮才行的哦!) 然后双击第一个格子,打上:今天我学了Excel 这就打上了,然后再按照此处的文本输入第一行,第二行,第三行……(这我就不讲了) 好,我们再把这些文字变一变颜色. (注意:这是要全选的哦!!!!!) 全选文字,然后依次点击B.I.U 按钮.就会出现如图上所示的样子. 然后我们填充 就变成这样 Exc