原生javascript带你解密读心术小游戏的背后故事

知识点:读心术原理算法独家揭秘,html5最新选择器,原生js动态dom生成,控制流程讲解,函数封装与模块化思维,定时器混合运用与帧动画,JavaScript知识体系分享。

html代码:

<div class="cont">
    <div class="wrap"></div>
    <div class="box">
        <div class="explain">
            <strong>游戏规则:</strong><br>任意选择一个两位数(或者说,从10~99之间任意选择一个数),把这个数的十位与个位相加,再把任意选择的数减去这个和。并把这个图形牢记心中,然后点击水晶球。<br>你会发现,水晶球所显示出来的图形就是你刚刚心里记下的那个图形。<br>例如:你选的数是23,然后2+3=5,然后23-5=18,在图表中找出与最后得出的数所相应的图形
        </div>
        <div class="showbox"><img src="" ></div>
        <div class="btnRe">刷 新</div>
    </div>
</div>

css代码:

    <style type=‘text/css‘>
        * { margin: 0; padding: 0; }

        body { background-color: rgba(52, 52, 53, 0.82); }

        .cont { width: 880px; height: auto; margin: 20px auto; background-color: rgba(255, 205, 156, 0.64); overflow: hidden; border-radius: 30px }

        .wrap { width: 480px; margin: 20px; overflow: hidden; float: left; box-shadow: 0 0 4px rgba(59, 44, 49, 0.8); padding: 10px 0 10px 10px; border-radius: 20px; }

        .wrap div { width: 30px; height: 30px; float: left; margin: 0 10px 30px 0; text-align: center; box-shadow: 0 0 1px #aa64c8; border-radius: 100% }

        .wrap div img { display: block; overflow: hidden; border-radius: 100% }

        .wrap div span { font-size: 20px; font-family: Andalus; color: #000000; text-shadow: 0 1px 0px #000000; line-height: 10px }

        .box { width: 310px; margin: 0 auto; float: left; }

        .box .explain { padding: 10px; margin: 0 auto; width: 300px; font-size: 16px; line-height: 25px; color: #000000; font-family: ‘Microsoft JhengHei‘; font-weight: bold; }

        .box .btnRe { width: 100px; margin: 20px auto; text-align: center; line-height: 40px; background-color: rgba(255, 205, 156, 0.64); font-size: 16px; color: #000000; cursor: pointer; padding: 3px; border-radius: 10px; font-weight: 300; }

        .box .btnRe:hover { border: 3px solid rgba(255, 205, 156, 0.64); background-color: #6c85c8; color: rgba(255, 205, 156, 0.64); padding: 0; }

        .box .showbox { width: 120px; height: 120px; background-color: rgba(255, 230, 207, 0.64); margin: 10px auto; border-radius: 50%; overflow: hidden; box-shadow: 0 0 10px #aa64c8; }

        .box .showbox img { opacity: 0.3; }

        .cont .box .on { animation: active 2s; -webkit-animation: active 2s; }

        @keyframes acitve {
            0% { box-shadow: 0 0 50px #c789c8; }
            50% { box-shadow: 0 0 30px #aa64c8; }
            100% { box-shadow: 0 0 10px #aa64c8; }
        }

        @-webkit-keyframes active {
            0% { box-shadow: 0 0 50px #c789c8; }
            50% { box-shadow: 0 0 30px #aa64c8; }
            100% { box-shadow: 0 0 10px #aa64c8; }
        }

    </style>

javascript代码:

   <script type="text/javascript" src="js/jquery-2.2.0.min.js"></script>
     <script>
    /*公式: ab 10a+b-a-b=9a OR 10a-a=9a */
    (function () {
        var $wrap = $(‘.wrap‘), $show = $(‘.showbox‘);
        var str = ‘‘;
        var timer = null;
        var timerout = null;
        for (var i = 1; i <= 96; i++) {
            str += ‘<div><img src=""  width="30" height="30" autocomplete="off"><span>‘ + i + ‘</span></div>‘
        }
        $wrap.append(str);
        init();
        $(‘.btnRe‘).click(function () {
            reset();
            $show.removeClass(‘on‘).find(‘img‘).attr(‘src‘, ‘‘).stop().animate({opacity: 0.3,}, 1000);
            timer = setInterval(init, 10);
            timerout = setTimeout(function () {
                clearInterval(timer)
            }, 1000);
        })
        $(‘.showbox‘).click(function () {
            reset();
            timer = setInterval(start, 10);
            timerout = setTimeout(end, 1000);
        })
        function init() {
            var ran = Math.floor(Math.random() * 99) + 1;
            $(‘.wrap‘).find(‘div‘).each(function (i) {
                var ran1 = Math.floor(Math.random() * 99) + 1;
                if (i % 9 == 0) {
                    $(‘.wrap‘).find(‘div‘).eq(i - 1).find(‘img‘).attr(‘src‘, ‘img/‘ + (ran) + ‘.png‘);
                } else {
                    $(‘.wrap‘).find(‘div‘).eq(i - 1).find(‘img‘).attr(‘src‘, ‘img/‘ + (ran1) + ‘.png‘);
                };
            });
        };
        function reset() {
            clearTimeout(timerout);
            clearInterval(timer);
        };

        function start() {
            var x = Math.floor(Math.random() * 99) + 1;
            $show.addClass(‘on‘).find(‘img‘).attr(‘src‘, ‘img/‘ + x + ‘.png‘).css({opacity: 0.3})
        };

        function end() {
            clearInterval(timer)
            clearTimeout(timerout)
            var img = $wrap.find(‘div‘).eq(8).find(‘img‘).attr(‘src‘);
            $show.addClass(‘on‘).find(‘img‘).attr(‘src‘, img).stop().animate({opacity: 1,}, 3000);
        };
    })()
</script>

有兴趣想学习web前端的可以来web前端qun“189394454”可以免费获取2018最新web前端学习资料。

原文地址:http://blog.51cto.com/13457136/2089455

时间: 2024-11-13 03:28:04

原生javascript带你解密读心术小游戏的背后故事的相关文章

JavaScript实现简单贪吃蛇小游戏

之前上Web课,学到JavaScript的时候,老师要求写几个静态页面,要用到JavaScript.想了想就写个贪吃蛇吧.其实之前用pygame写过一次GUI的贪吃蛇,素材都是自己拿画图画的,其丑无比.所以这次还是老老实实用字符吧. 首先,是一些全局变量的定义: 1 <script> 2 var state = 0;//0 wait 1 run 2 over 3 var width = 40; 4 var height = 25; 5 var update = false; 6 var dir

刚学玩原生JS,自己写了一个小游戏,希望在以后能不断地进步加以改善

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>冒险岛</title></head><style type="text/css"> body{ -moz-user-select: none; -khtml-user-select: none; user-select

11款手机微信小游戏源码特效

html5微信吃苹果游戏源码下载 html5手机淘宝万能时装屋小游戏源码下载 html5 3d拳王游戏制作3D拳击游戏源码下载 html5 3d拼图游戏制作3D魔方游戏源码下载 htm5 3d游戏制作3D熊出没游戏源码下载 html5微信小游戏超级染色游戏源码下载 html5读心术小游戏源码下载_读心术微信小游戏源码下载 找你歌微信html5游戏源码下载_找你歌微信游戏源码下载 方言等级考试游戏源码下载_方言等级测试微信游戏源码下载 中秋节吃月饼游戏html5微信游戏源码下载 9款html5微信

【转】Fundebug上线微信小游戏错误监控!支持自动截屏!

摘要: Fundebug竭诚为你的小游戏保驾护航. 想必大家都玩过"跳一跳"吧?刷排行榜的感觉是不是很好啊!还有"知乎答题王"呢,在智力上碾压老铁简直太棒了! 自带社交属性的小游戏很火,是微信帝国的另一座金矿! 为什么监控小游戏? 理论上来讲,BUG是无法避免的,实时监控阔以帮助开发者第一时间发现BUG,及时修复BUG,将BUG的影响降到最低. 开发者通常是比较自信的,他们坚持我写的代码当然没问题.然而,再拷问一下自己: 我的代码真的100%没有问题吗? 我做了完整

微信小游戏入门与实战 引爆朋友圈

第1章 准备工作(需要ES5,ES6基础)学员作品演示:https://pan.baidu.com/s/1gEMWzujg72soj0cEUOtJ2A 密码:uy2n,本章首先介绍课程目标,学习收获等,然后通过与APP.小程序的对比,让大家知道什么是微信小游戏以及微信小游戏前景如何,有哪些特点,然后带大家搭建微信小游戏的开发环境和调试环境,之后会对微信小游戏开发前注意事项与准备工作进行讲解,目...1-1 课程导学1-2 小游戏官方开发工具快速体验1-3 小游戏开发测试环境搭建和工具链使用1-4

微信小游戏入门与实战 刷爆朋友圈

第1章 课程介绍与准备工作本章首先介绍课程目标,学习收获等,然后通过与APP.小程序的对比,让大家知道什么是微信小游戏以及微信小游戏前景如何,有哪些特点,然后带大家搭建微信小游戏的开发环境和调试环境,之后会对微信小游戏开发前注意事项与准备工作进行讲解,目的是为了让大家在开发微信小游戏的时候可以跳过不必要遇到的坑,为后面的小游戏... 第2章 微信小游戏开发原理与JS面向对象初步填坑本章会带大家快速创建第一个微信小游戏项目,并跑起来,让大家快速的体验和熟悉小游戏开发和运行的整体流程,之后会对微信小

Chrome自带恐龙小游戏的源码研究(四)

在上一篇<Chrome自带恐龙小游戏的源码研究(三)>中实现了让游戏昼夜交替,这一篇主要研究如何绘制障碍物. 障碍物有两种:仙人掌和翼龙.仙人掌有大小两种类型,可以同时并列多个:翼龙按高.中.低的随机飞行高度出现,不可并行.仙人掌和地面有着相同的速度向左移动,翼龙则快一些或慢一些,因为添加了随机的速度修正.我们使用一个障碍物列表管理它们,当它们移出屏幕外时则将其从列表中移除.同时再用一个列表记录它们的类型: 1 Obstacle.obstacles = []; //存储障碍物的数组 2 Obs

【2048小游戏】——CSS/原生js爬坑之纯CSS模态对话框&amp;游戏结束

引言:2048小游戏的结束界面,使用纯CSS制作模态对话框,一般做模态对话框都会使用BootStrap自带的模态对话框组件方便使用,但在制作要运行在移动端的小项目时,就不能使用BootStrap,因为文件太大,下载耗时,耗费流量. 一.模态对话框的组成 2个Div,一个铺满整屛,一个显示内容 坑:如何让Div铺满整屛?解决:2个办法 宽  高 100%    →    position:absolute:  →   top=0;left=0; 四个方向  margin-top/left/righ

Chrome自带恐龙小游戏的源码研究(完)

在上一篇<Chrome自带恐龙小游戏的源码研究(七)>中研究了恐龙与障碍物的碰撞检测,这一篇主要研究组成游戏的其它要素. 游戏分数记录 如图所示,分数及最高分记录显示在游戏界面的右上角,每达到100分就会出现闪烁特效,游戏第一次gameover时显示历史最高分.分数记录器由DistanceMeter构造函数实现,以下是它的全部代码: 1 DistanceMeter.dimensions = { 2 WIDTH: 10, //每个字符的宽度 3 HEIGHT: 13, //每个字符的高 4 DE