https://xinshuru.com/index.html?p=win

Submitted URL:
https://xinshuru.com
Report Finished:

The outgoing links identified from the page

LinkText
https://appsto.re/cn/DSd96.i
https://beian.miit.gov.cn/京ICP证14021817号
http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010502047196京公网安备 11010502047196号

JavaScript Variables · 48 found

Global JavaScript variables loaded on the window object of a page, are variables declared outside of functions and accessible from anywhere in the code within the current scope

NameType
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
$function
jQueryfunction
QPagefunction
detectorobject
$ios_qrcodeobject
$ios_birdobject
$ios_downobject

Console log messages · 1 found

Messages logged to the web console

TypeCategoryLog
logjavascript
URL
https://xinshuru.com/index.html?p=win
Text
res JSHandle@object

HTML

The raw HTML body of the page

<html lang="zh_CN"><head>
    <meta charset="UTF-8">
    <title>手心输入法</title>
    <link rel="shortcut icon" type="image/x-icon" href="http://www.xinshuru.com/img/favicon.ico" media="screen">
    <meta property="qc:admins" content="3030670746305256375">
    <link rel="stylesheet" href="//www.xinshuru.com/css/style.css">
    <meta name="description" content="手心输入法是一款智能、高效,无广告骚扰,只专注于输入本质的纯粹输入法。拥有强大的智能输入引擎、丰富的本地词库、在线词库及精美皮肤在线下载,以其丰富的输入方式,海量的在线资源,带给用户超凡的输入体验。目前已全面覆盖Windows、Android、iOS、Mac平台。">
    <style type="text/css">
        .update-log {
            right: 95px;
        }
    </style>
    <!--[if lte IE 9]>
    <script>window.location.href = 'index.ie.html'</script>
    <![endif]-->
</head>

<body>
    <a hidefocus="true" class="logo" href="/"></a>

    <a hidefocus="true" class="update-log" target="_blank" href="//www.xinshuru.com/win_record.html"></a>

    <div class="platforms">
        <a hidefocus="true" href="#" class="win selected" data-platform="win"></a>
        <a hidefocus="true" href="#" class="mac" data-platform="mac"></a>
        <a hidefocus="true" href="#" class="ios" data-platform="ios"></a>
        <a hidefocus="true" href="#" class="android" data-platform="android"></a>
    </div>
    <div class="down">
        <a hidefocus="true" href="//down.xinshuru.com/installer/win/PalmInput_Setup.exe" class="win"></a>
        <a hidefocus="true" href="//down.xinshuru.com/installer/mac/PalmInput_1.1.27.dmg" class="mac"></a>
        <a hidefocus="true" href="https://appsto.re/cn/DSd96.i" class="ios"></a>
        <a hidefocus="true" href="//sjws.ssl.qihucdn.com/xinshuru/channel/17800001/Ftinput.apk" class="android"></a>
    </div>
    <div class="indexes">
        <span class="current"></span>
        <span></span>
        <span></span>
        <span></span>
        <span></span>
        <span></span>
    </div>
    <div class="line" style="top: 50%; margin-top: 210px;"></div>

    <div class="stage">
        <div class="scene s0" style="display: block; opacity: 1;">
            <div class="win" style="display: block; opacity: 1;">
                <div class="elem display velocity-animating" style="opacity: 1.12371; transform: scale(1.00619);"></div>
                <div class="elem lamp velocity-animating" style="opacity: 0.0185598; transform: translateX(-196.288px);"></div>
                <div class="elem cup velocity-animating" style="opacity: 0.0150512; transform: translateY(-187.14px);"></div>
                <div class="elem brush velocity-animating" style="opacity: 0.0185598; transform: translateY(-166.845px);"></div>
                <a hidefocus="true" href="//down.xinshuru.com/installer/win/PalmInput_Setup.exe" class="download velocity-animating" style="opacity: 0.0728613;"></a>
                <!--div class="desc"><a href="//down.xinshuru.com/tool/PalmInputSkinEditor_2.0.0.0.exe">皮肤编辑器下载</a><br>适用于XP/win7/win8/win10 <br>版本:V2.7.0.1696<br>更新日期:2018/02/08</div-->
            </div>
            <div class="mac">
                <div class="elem display"></div>
                <div class="elem tree"></div>
                <div class="elem snow"></div>
                <div class="elem snowman"></div>
                <div class="wp">
                    <div class="elem c1"></div>
                    <div class="elem c2"></div>
                    <div class="elem c3"></div>
                    <div class="elem c4"></div>
                    <div class="elem x1"></div>
                    <div class="elem x2"></div>
                    <div class="elem x3"></div>
                </div>
                <a hidefocus="true" href="//down.xinshuru.com/installer/mac/PalmInput_1.1.27.dmg" class="download"></a>
                <div class="desc">适用于Mac OS X10.6及以上 版本:V1.1<br>更新日期:2015/08/12</div>
            </div>
            <div class="ios iosContent">
                <div class="elem display"></div>
                <div class="elem tree"></div>
                <div class="elem balloon-big"></div>
                <div class="elem balloon-small"></div>
                <div class="elem signs"></div>
                <div class="elem bird"></div>
                <div class="qrcode">
                    <img src="//p3.ssl.qhimg.com/t018fa3e049718d5cbc.png" alt="">
                    <div class="text">iPhone手机 扫一扫即可下载</div>
                </div>
                <a hidefocus="true" href="https://appsto.re/cn/DSd96.i" class="download" target="_blank"></a>
                <!-- <div class="desc">适用于iOS 13及以上 版本:V3.0.6<br>更新日期:2023/10/17</div> -->
            </div>
            <div class="android androidContent">
                <div class="elem display"></div>
                <div class="elem planet"></div>
                <div class="elem bubbles"></div>
                <div class="elem meteorites"></div>
                <div class="qrcode">
                    <img id="androidQrcodeUrl" src="" alt="">
                    <div class="text">android手机 扫一扫即可下载</div>
                </div>
                <a hidefocus="true" id="androidDownloadUrl" class="download"></a>
                <!-- <div class="desc">适应于Android 4.1及以上 <br>版本号:V3.5.0<br>更新日期:2021/05/31</div> -->
            </div>
            <div class="copyright" style="opacity: 1;">Copyright©2014-2021 xinshuru.com All Rights Reserved&nbsp;<a href="https://beian.miit.gov.cn/">京ICP证14021817号</a>&nbsp;<a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010502047196">京公网安备
                    11010502047196号</a></div>

        </div>
        <div class="scene s1">
            <div class="anim">
                <div class="text"></div>
                <div class="elem leaves-big"></div>
                <div class="elem leaves-small"></div>
            </div>
        </div>
        <div class="scene s2">
            <div class="anim">
                <div class="text"></div>
                <div class="elem circular"></div>
                <div class="elem triangle"></div>
                <div class="elem square"></div>
            </div>
        </div>
        <div class="scene s3">
            <div class="anim">
                <div class="text"></div>
                <div class="elem bulb"></div>
                <div class="elem light"></div>
            </div>
        </div>
        <div class="scene s4">
            <div class="anim">
                <div class="text"></div>
                <div class="elem plane"></div>
                <div class="elem l1"></div>
                <div class="elem l2"></div>
                <div class="elem l3"></div>
                <div class="elem l4"></div>
            </div>
        </div>
        <div class="scene s5">
            <div class="anim">
                <div class="text"></div>
                <div class="elem label"></div>
                <div class="elem shadow"></div>
            </div>
        </div>
    </div>

<script src="//s0.qhimg.com/lib/jquery/191.js"></script>
<script src="//s6.qhimg.com/!7c8590ec/jquery.mousewheel.min.js"></script>
<script src="//s4.qhimg.com/!72a14055/velocity.min.js"></script>
<script src="//s4.qhimg.com/!e3d68c78/QPage.js"></script>
<script type="text/javascript" src="//s8.qhimg.com/!4d8ffaed/detector.js"></script>
<script>
    $(function () {

        //扩展一个getUrlParam的方法
        $.getUrlParam = function (name) {
            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
            var r = window.location.search.substr(1).match(reg);
            if (r != null) return unescape(r[2]);
            return null;
        }

        var ddn = detector.device.name;

        if (ddn != 'pc' && ddn != 'mac') {
            window.location.href = './index_mob.html';
        }
        else {
            if (ddn == 'pc' && $.getUrlParam('p') != 'win') {
                window.location.href = './index.html?p=win';
            }
            if (ddn == 'mac' && $.getUrlParam('p') != 'mac') {
                window.location.href = './index.html?p=mac';
            }
        }

        $.ajax({
            //请求方式为get
            type: "GET",
            //json文件位置
            // url:location.protocol + '//www.xinshuru.com' + '/xinshuru/android/config.json',
            url: '/xinshuru/config.json',
            //返回数据格式为json
            dataType: "json",
            //请求成功完成后要执行的方法
            success: function (data) {
                const { androidLastVersion, iosLastVersion } = data;
                console.log('res', data);
                const androidContent = document.querySelector('.androidContent');
                const iosContent = document.querySelector('.iosContent');
                if (androidContent && androidLastVersion) {
                    document.getElementById('androidDownloadUrl').href = data.androidLastVersion.downloadurl || '//sjws.ssl.qihucdn.com/xinshuru/channel/17800001/Ftinput.apk';
                    document.getElementById('androidQrcodeUrl').src = data.androidLastVersion.qrcodeurl || 'https://p2.ssl.qhimg.com/t01ab992909354b3a84.png';
                    const fragment = document.createDocumentFragment();
                    const desc = document.createElement('div');
                    desc.className = "desc";
                    desc.innerHTML = "适应于Android 4.1及以上";
                    desc.appendChild(document.createElement('br'));
                    desc.innerHTML += `版本号:${androidLastVersion.version}`;
                    desc.appendChild(document.createElement('br'));
                    desc.innerHTML += `更新日期:${androidLastVersion.lastTime}`;
                    fragment.appendChild(desc);
                    androidContent.appendChild(fragment);
                }
                if (iosContent && iosLastVersion) {
                    const fragment = document.createDocumentFragment();
                    const desc = document.createElement('div');
                    desc.className = "desc";
                    desc.innerHTML = `适用于iOS 13及以上 版本:${iosLastVersion.version}`;
                    desc.appendChild(document.createElement('br'));
                    desc.innerHTML += `更新日期:${iosLastVersion.lastTime}`;
                    fragment.appendChild(desc);
                    iosContent.appendChild(fragment);
                }
            }
        });
        $.fn.run = $.fn.velocity; //重写一个比较好写的名字

        var utime = 1000; //全局动画时间标准

        var imgList = [
            '//p2.qhimg.com/d/inn/fb8ddc9c/global.png',
            '//p7.qhimg.com/d/inn/fb8ddc9c/s0_win.png',
            '//p1.qhimg.com/d/inn/fb8ddc9c/s0_mac.png',
            '//p0.qhimg.com/d/inn/fb8ddc9c/s0_ios.png',
            '//p5.qhimg.com/d/inn/2e0fb875/s0_android.png',
            '//p1.qhimg.com/d/inn/fb8ddc9c/page.png',
            '//p2.qhimg.com/d/inn/4c14aadc/text.png',
            '//p6.qhimg.com/d/inn/5a4af14f/qrcode.png'
        ]; //图片list,做loader用

        var platform = $.getUrlParam('p') || 'win' //URL是否带平台参数,否则默认win

        var $indexes = $('.indexes'),
            $down = $('.down'),
            $platforms = $('.platforms'),
            $line = $('.line'),
            $stage = $('.stage'),
            $s0 = $stage.find('.s0'),
            $copyright = $stage.find('.copyright'),
            $win = $stage.find('.win'),
            $win_display = $win.find('.display'),
            $win_lamp = $win.find('.lamp'),
            $win_cup = $win.find('.cup'),
            $win_brush = $win.find('.brush'),
            $win_down = $win.find('.download'),
            $win_desc = $win.find('.desc'),
            $mac = $stage.find('.mac'),
            $mac_display = $mac.find('.display'),
            $mac_tree = $mac.find('.tree'),
            $mac_snow = $mac.find('.snow'),
            $mac_wp = $mac.find('.wp'),
            $mac_snowman = $mac.find('.snowman'),
            $mac_down = $mac.find('.download'),
            $mac_desc = $mac.find('.desc'),
            $ios = $stage.find('.ios'),
            $ios_display = $ios.find('.display'),
            $ios_tree = $ios.find('.tree'),
            $ios_balloon_big = $ios.find('.balloon-big'),
            $ios_balloon_small = $ios.find('.balloon-small'),
            $ios_signs = $ios.find('.signs')
        $ios_qrcode = $ios.find('.qrcode'),
            $ios_bird = $ios.find('.bird'),
            $ios_down = $ios.find('.download'),
            $ios_desc = $ios.find('.desc'),
            $android = $stage.find('.android'),
            $android_planet = $android.find('.planet'),
            $android_display = $android.find('.display'),
            $android_bubbles = $android.find('.bubbles'),
            $android_meteorites = $android.find('.meteorites'),
            $android_qrcode = $android.find('.qrcode'),
            $android_down = $android.find('.download'),
            $android_desc = $android.find('.desc'),
            $s1 = $stage.find('.s1'),
            $s1_anim = $s1.find('.anim'),
            $s1_text = $s1.find('.text'),
            $s1_leaves_big = $s1.find('.leaves-big'),
            $s1_leaves_big = $s1.find('.leaves-big'),
            $s2 = $stage.find('.s2'),
            $s2_anim = $s2.find('.anim'),
            $s2_text = $s2.find('.text'),
            $s2_circular = $s2.find('.circular'),
            $s2_triangle = $s2.find('.triangle'),
            $s2_square = $s2.find('.square'),
            $s3 = $stage.find('.s3'),
            $s3_anim = $s3.find('.anim'),
            $s3_text = $s3.find('.text'),
            $s3_bulb = $s3.find('.bulb'),
            $s3_light = $s3.find('.light'),
            $s4 = $stage.find('.s4'),
            $s4_anim = $s4.find('.anim'),
            $s4_text = $s4.find('.text'),
            $s4_plane = $s4.find('.plane'),
            $s4_l1 = $s4.find('.l1'),
            $s4_l2 = $s4.find('.l2'),
            $s4_l3 = $s4.find('.l3'),
            $s4_l4 = $s4.find('.l4'),
            $s5 = $stage.find('.s5'),
            $s5_anim = $s5.find('.anim'),
            $s5_text = $s5.find('.text'),
            $s5_label = $s5.find('.label'),
            $s5_shadow = $s5.find('.shadow'),
            $uplog = $('.update-log');


        //首屏三个场景切换特殊处理
        var firstScene = {
            show: {
                win: function (callback) {

                    $uplog.attr('href', '//www.xinshuru.com/win_record.html');
                    //初始化
                    $win_display.run({ opacity: 0, scale: 0.95 }, { duration: 0 });
                    $win_lamp.run({ opacity: 0, translateX: -200 }, { duration: 0 });
                    $win_cup.run({ opacity: 0, translateY: -190 }, { duration: 0 });
                    $win_brush.run({ opacity: 0, translateY: -170 }, { duration: 0 });
                    $win_down.run({ opacity: 0 }, { duration: 0 });
                    $win_desc.run({ opacity: 0 }, { duration: 0 });

                    $s0.run('fadeIn', { duration: 0 }); //统一方法,显示场景
                    $win.run('fadeIn', { duration: 0 }); //显示子场景
                    $down.removeClass('android ios win mac');
                    $line.run({ top: '50%', marginTop: 210 }, { duration: utime / 2, easing: 'swing' });
                    $win_down.run({ opacity: 1 }, { duration: utime / 2 });
                    $win_desc.run({ opacity: 1 }, { duration: utime / 2 });
                    $copyright.run({ opacity: 1 }, { duration: utime / 2 });  //copyright 渐显
                    $win_display.run({ opacity: 1, scale: 1 }, { duration: utime / 3 * 2, easing: 'spring' });
                    $win_lamp.run({ opacity: 1, translateX: 0 }, { duration: utime });
                    $win_cup.run({ opacity: 1, translateY: 0 }, { duration: utime / 0.9 });
                    $win_brush.run({ opacity: 1, translateY: 0 }, {
                        duration: utime, complete: function () {
                            callback && callback();
                        }
                    });
                },
                mac: function (callback) {

                    $uplog.attr('href', '//www.xinshuru.com/mac_record.html');

                    $mac_display.run({ opacity: 0, scale: 0.95 }, { duration: 0 });
                    $mac_tree.run({ opacity: 0, rotateX: 90 }, { duration: 0 });
                    $mac_snow.run({ opacity: 0, rotateX: 90 }, { duration: 0 });
                    $mac_snowman.run({ opacity: 0, rotateX: 90 }, { duration: 0 });
                    $mac_down.run({ opacity: 0 }, { duration: 0 });
                    $mac_desc.run({ opacity: 0 }, { duration: 0 });

                    $s0.run('fadeIn', { duration: 0 }); //统一方法,显示场景
                    $mac.run('fadeIn', { duration: 0 }); //显示子场景
                    $down.removeClass('android ios win mac');
                    $mac_wp.run('fadeIn', { duration: utime / 2 });
                    $mac_down.run({ opacity: 1 }, { duration: utime / 2 });
                    $mac_desc.run({ opacity: 1 }, { duration: utime / 2 });
                    $line.run({ top: '50%', marginTop: 210 }, { duration: utime / 2, easing: 'swing' });
                    $mac_display.run({ opacity: 1, scale: 1 }, { duration: utime / 3 * 2, easing: 'spring' });
                    $mac_tree.run({ opacity: 1, rotateX: 0 }, { duration: utime / 5 * 3 });
                    $mac_snow.run({ opacity: 1, rotateX: 0 }, { duration: utime / 5 * 4 });
                    $mac_snowman.run({ opacity: 1, rotateX: 0 }, {
                        duration: utime / 2, complete: function () {
                            callback && callback();
                        }
                    });
                },
                ios: function (callback) {

                    $uplog.attr('href', '//www.xinshuru.com/ios_record.html');
                    //初始化
                    $ios_tree.run({ opacity: 0, rotateX: 90 }, { duration: 0 });
                    $ios_balloon_big.run({ opacity: 0, translateY: 110 }, { duration: 0 });
                    $ios_balloon_small.run({ opacity: 0, translateY: 140 }, { duration: 0 });
                    $ios_bird.run({ opacity: 0, translateY: -50 }, { duration: 0 });
                    $ios_signs.run({ opacity: 0, rotateX: 90 }, { duration: 0 });
                    $ios_display.run({ opacity: 0, scale: 0.95 }, { duration: 0 });
                    $ios_qrcode.run({ opacity: 0 }, { duration: 0 });

                    $s0.run('fadeIn', { duration: 0 }); //统一方法,显示场景
                    $ios.run('fadeIn', { duration: 0 }); //显示子场景

                    $ios_down.run({ opacity: 1 }, { duration: utime / 2 });
                    $ios_desc.run({ opacity: 1 }, { duration: utime / 2 });
                    $down.removeClass('android ios win mac');
                    $line.run({ top: '50%', marginTop: 210 }, { duration: utime / 2, easing: 'swing' });
                    $ios_tree.run({ opacity: 1, rotateX: 0 }, { duration: utime / 3 * 2 });
                    $ios_balloon_big.run({ opacity: 1, translateY: 0 }, { duration: utime / 2 });
                    $ios_balloon_small.run({ opacity: 1, translateY: 0 }, { duration: utime / 2 });
                    $ios_bird.run({ opacity: 1, translateY: 0 }, { duration: utime / 2 });
                    $ios_display.run({ opacity: 1, scale: 1 }, { duration: utime / 3 * 2, easing: 'spring' });
                    $ios_qrcode.run({ opacity: 1 }, { duration: utime / 2 });
                    $ios_signs.run({ opacity: 1, rotateX: 0 }, {
                        duration: utime, complete: function () {
                            callback && callback();
                        }
                    });
                },
                android: function (callback) {

                    $uplog.attr('href', '//www.xinshuru.com/android_record.html');

                    $android_display.run({ opacity: 0, scale: 0.95 }, { duration: 0 });
                    $android_bubbles.run({ opacity: 0, translateY: 110 }, { duration: 0 });
                    $android_meteorites.run({ opacity: 0, translateY: 90 }, { duration: 0 });
                    $android_planet.run({ opacity: 0 }, { duration: 0 });
                    $android_qrcode.run({ opacity: 0 }, { duration: 0 });

                    $s0.run('fadeIn', { duration: 0 }) //统一方法,显示场景
                    $android.run('fadeIn', { duration: 0 }) //显示子场景

                    $android_down.run({ opacity: 1 }, { duration: utime / 2 });
                    $android_desc.run({ opacity: 1 }, { duration: utime / 2 });
                    $down.removeClass('android ios win mac');
                    $line.run({ top: '50%', marginTop: 210 }, { duration: utime / 2, easing: 'swing' });
                    $android_display.run({ opacity: 1, scale: 1 }, { duration: utime / 3 * 2, easing: 'spring' });
                    $android_bubbles.run({ opacity: 1, translateY: 0 }, { duration: utime / 2 });
                    $android_planet.run({ opacity: 1 }, { duration: utime / 2 });
                    $android_qrcode.run({ opacity: 1 }, { duration: utime / 2 });
                    $android_meteorites.run({ opacity: 1, translateY: 0 }, {
                        duration: utime, complete: function () {
                            callback && callback();
                        }
                    });
                }
            },
            hide: {
                win: function (callback) {
                    $win_display.run({ opacity: 0, scale: .95 }, { duration: utime / 2, delay: utime / 3 });
                    $win_lamp.run({ opacity: 0, translateX: -200 }, { duration: utime });
                    $win_cup.run({ opacity: 0, translateY: -190 }, { duration: utime / 0.9 });
                    $win_down.run({ opacity: 0 }, { duration: utime / 2 });
                    $win_desc.run({ opacity: 0 }, { duration: utime / 2 });
                    if (platform == 'win') {
                        $copyright.run({ opacity: 0 }, { duration: utime / 2 });
                        $down.removeClass('android ios win mac').addClass('win');
                    }
                    else {
                        $down.removeClass('android ios win mac');
                    }
                    $win_brush.run({ opacity: 0, translateY: -170 }, {
                        duration: utime, complete: function () {
                            $win.run('fadeOut', { duration: 0 }); //隐藏子场景
                            if (platform == 'win') {
                                $line.run({ top: 130, marginTop: 0 }, { duration: utime / 2, easing: 'swing' });
                                $s0.run('fadeOut', { duration: utime / 3 }); //统一方法,显示场景
                            }
                        }
                    });
                    setTimeout(function () {
                        callback && callback();
                    }, utime / 3 * 2);
                },
                mac: function (callback) {
                    $mac_tree.run({ opacity: 0, rotateX: 90 }, { duration: utime / 5 * 2 });
                    $mac_snow.run({ opacity: 0, rotateX: 90 }, { duration: utime / 3 * 2 });
                    $mac_snowman.run({ opacity: 0, rotateX: 90 }, { duration: utime / 4 * 2 });
                    $mac_wp.run('fadeOut', { duration: utime / 2 });
                    $mac_down.run({ opacity: 0 }, { duration: utime / 2 });
                    $mac_desc.run({ opacity: 0 }, { duration: utime / 2 });
                    if (platform == 'mac') {
                        $copyright.run({ opacity: 0 }, { duration: utime / 2 });
                        $down.removeClass('android ios win mac').addClass('mac');
                    }
                    else {
                        $down.removeClass('android ios win mac')
                    }
                    $mac_display.run({ opacity: 0, scale: .95 }, {
                        duration: utime / 2, delay: utime / 3, complete: function () {
                            $mac.run('fadeOut', { duration: 0 }); //隐藏子场景
                            if (platform == 'mac') {
                                $line.run({ top: 130, marginTop: 0 }, { duration: utime / 2, easing: 'swing' });
                                $s0.run('fadeOut', { duration: 0 }); //统一方法,显示场景
                            }
                        }
                    });
                    setTimeout(function () {
                        callback && callback();
                    }, utime / 3 * 2);
                },
                ios: function (callback) {
                    $ios_tree.run({ opacity: 0, rotateX: 90 }, { duration: utime / 3 * 2 });
                    $ios_balloon_big.run({ opacity: 0, translateY: 110 }, { duration: utime / 2 });
                    $ios_balloon_small.run({ opacity: 0, translateY: 140 }, { duration: utime / 2 });
                    $ios_bird.run({ opacity: 0, translateY: -50 }, { duration: utime / 2 });
                    $ios_display.run({ opacity: 0, scale: .95 }, { duration: utime / 2, delay: utime / 3 });
                    $ios_down.run({ opacity: 0 }, { duration: utime / 2 });
                    $ios_desc.run({ opacity: 0 }, { duration: utime / 2 });
                    $ios_qrcode.run({ opacity: 0 }, { duration: utime / 2 });
                    if (platform == 'ios') {
                        $copyright.run({ opacity: 0 }, { duration: utime / 2 });
                        $down.removeClass('android ios win mac').addClass('ios');
                    }
                    else {
                        $down.removeClass('android ios win mac');
                    }
                    $ios_signs.run({ opacity: 0, rotateX: 90 }, {
                        duration: utime, complete: function () {
                            $ios.run('fadeOut', { duration: 0 }); //隐藏子场景
                            if (platform == 'ios') {
                                $line.run({ top: 130, marginTop: 0 }, { duration: utime / 2, easing: 'swing' });
                                $s0.run('fadeOut', { duration: 0 }); //统一方法,显示场景
                            }
                        }
                    });
                    setTimeout(function () {
                        callback && callback();
                    }, utime / 3 * 2);
                },
                android: function (callback) {
                    $android_display.run({ opacity: 0, scale: .95 }, { duration: utime / 2, delay: utime / 3 });
                    $android_bubbles.run({ opacity: 0, translateY: 110 }, { duration: utime / 2 });
                    $android_planet.run({ opacity: 0 }, { duration: utime / 2 });
                    $android_qrcode.run({ opacity: 0 }, { duration: utime / 2 });
                    $android_down.run({ opacity: 0 }, { duration: utime / 2 });
                    $android_desc.run({ opacity: 0 }, { duration: utime / 2 });
                    if (platform == 'android') {
                        $copyright.run({ opacity: 0 }, { duration: utime / 2 });
                        $down.removeClass('android ios win mac').addClass('android');
                    }
                    else {
                        $down.removeClass('android ios win mac');
                    }
                    $android_meteorites.run({ opacity: 0, translateY: 90 }, {
                        duration: utime, complete: function () {
                            $android.run('fadeOut', { duration: 0 }); //隐藏子场景
                            if (platform == 'android') {
                                $line.run({ top: 130, marginTop: 0 }, { duration: utime / 2, easing: 'swing' });
                                $s0.run('fadeOut', { duration: 0 }); //统一方法,显示场景
                            }
                        }
                    });
                    setTimeout(function () {
                        callback && callback();
                    }, utime / 3 * 2);
                }
            }
        }


        //主动画
        var animations = {
            show: [
                function (d, callback) {
                    firstScene.show[platform](callback);
                },
                function (d, callback) {
                    $s1_anim.run({ rotateY: 90, translateZ: 1300 }, { duration: 0 });
                    $s1_text.run({ rotateX: 40, translateY: 900 }, { duration: 0 });

                    $s1.run('fadeIn', { duration: 0 });
                    $s1_anim.run({ rotateY: 0, translateZ: 0 }, { duration: utime })
                    $s1_text.run({ rotateX: 0, translateY: 0 }, {
                        duration: utime, complete: function () {
                            callback && callback();
                        }
                    });
                },
                function (d, callback) {
                    $s2_anim.run({ rotateX: -90, translateZ: -800 }, { duration: 0 });
                    $s2_text.run({ opacity: 0 }, { duration: 0 });

                    $s2.run('fadeIn', { duration: 0 });
                    $s2_anim.run({ rotateX: 0, translateZ: 0 }, {
                        duration: utime, complete: function () {
                            callback && callback();
                        }
                    });
                    $s2_text.run({ opacity: 1 }, { duration: utime / 2, delay: utime / 2 });
                },
                function (d, callback) {
                    $s3_anim.run({ rotateZ: 60, rotateY: 50, translateY: 1600 }, { duration: 0 });
                    $s3_bulb.run({ opacity: 0 }, { duration: 0 });
                    $s3_text.run({ opacity: 0, rotateY: 60, translateZ: 700 }, { duration: 0 })

                    $s3.run('fadeIn', { duration: 0 });
                    $s3_anim.run({ rotateZ: 0, rotateY: 0, translateY: 0 }, { duration: utime });
                    $s3_bulb.run({ opacity: 1 }, { duration: utime });
                    $s3_light.run({ opacity: 0 }, { duration: utime })
                    $s3_text.run({ opacity: 1, rotateY: 0, translateZ: 0 }, {
                        duration: utime, delay: utime / 4, complete: function () {
                            callback && callback();
                        }
                    })
                },
                function (d, callback) {
                    $s4_plane.run({ translateY: 500, translateX: -400, opacity: 0 }, { duration: 0 });
                    $s4_text.run({ rotateY: -50, translateZ: 800 }, { duration: 0 })

                    $s4.run('fadeIn', { duration: 0 });
                    $s4_plane.run({
                        translateY: 0,
                        translateX: 0,
                        opacity: 1
                    }, { duration: utime / 2 }).run({
                        translateY: Math.random() * 10 + 5,
                        translateX: Math.random() * 10 + 5
                    }, { duration: utime / 5, loop: true });
                    $s4_text.run({ rotateY: 0, translateZ: 0 }, {
                        duration: utime, complete: function () {
                            callback && callback();
                        }
                    })
                },
                function (d, callback) {
                    $s5_anim.run({ rotateY: 0, translateZ: 0 }, { duration: 0 })
                    $s5_label.run({ opacity: 0 }, { duration: 0 });
                    $s5_shadow.run({ opacity: 0, scale: 1 }, { duration: 0 });
                    $s5_text.run({ rotateY: 30, opacity: 0 }, { duration: 0 });

                    $s5.run('fadeIn', { duration: 0 });
                    $s5_label.run({ opacity: 1 }, { duration: utime });
                    $s5_shadow.run({ opacity: 1, scale: .8 }, { duration: utime });
                    $s5_text.run({ rotateY: 0, opacity: 1 }, {
                        duration: utime, complete: function () {
                            callback && callback();
                        }
                    });
                }
            ],
            hide: [
                function (d, callback) {
                    firstScene.hide[platform](callback);
                },
                function (d, callback) {
                    $s1_anim.run({ rotateY: -50, translateZ: 1300 }, { duration: utime })
                    $s1_text.run({ rotateX: -50, translateY: 1700 }, {
                        duration: utime, complete: function () {
                            $s1.run('fadeOut', { duration: 0 });
                        }
                    });
                    setTimeout(function () {
                        callback && callback();
                    }, utime / 3)
                },
                function (d, callback) {
                    $s2_anim.run({ rotateX: 60, translateZ: 1000 }, { duration: utime });
                    $s2_text.run({ opacity: 0 }, {
                        duration: utime, complete: function () {
                            $s2.run('fadeOut', { duration: 0 });
                        }
                    });
                    setTimeout(function () {
                        callback && callback();
                    }, utime / 3)
                },
                function (d, callback) {
                    $s3_anim.run({ rotateZ: -60, rotateY: -50, translateY: 1600 }, { duration: utime });
                    $s3_bulb.run({ opacity: 0 }, { duration: utime });
                    $s3_light.run({ opacity: 0 }, { duration: utime })
                    $s3_text.run({ opacity: 0, rotateY: 60, translateZ: 700 }, {
                        duration: utime, complete: function () {
                            $s3.run('fadeOut', { duration: 0 });
                        }
                    })
                    setTimeout(function () {
                        callback && callback();
                    }, utime / 3)
                },
                function (d, callback) {
                    $s4_plane.run('stop').run({ translateY: -500, translateX: 400, opacity: 0 }, { duration: utime / 2 });
                    $s4_l1.run({ opacity: 0 }, { duration: utime / 10 });
                    $s4_l2.run({ opacity: 0 }, { duration: utime / 10 });
                    $s4_l3.run({ opacity: 0 }, { duration: utime / 10 });
                    $s4_l4.run({ opacity: 0 }, { duration: utime / 10 });
                    $s4_text.run({ rotateY: -50, translateZ: 1000 }, {
                        duration: utime, complete: function () {
                            $s4.run('fadeOut', { duration: 0 });
                            callback && callback();
                        }
                    })
                },
                function (d, callback) {
                    $s5_anim.run({ rotateY: -50, translateZ: 900 }, { duration: utime })
                    $s5_shadow.run({ opacity: 0 }, { duration: utime / 2 });
                    $s5_label.run({ opacity: 0 }, { duration: utime / 2 });
                    $s5_text.run({ opacity: 0 }, {
                        duration: utime, complete: function () {
                            $s5.run('fadeOut', { duration: 0 });
                            callback && callback();
                        }
                    });
                }
            ]
        }


        //根据平台切换顶部标识
        $platforms.find('.' + platform).addClass('selected').siblings().removeClass('selected');

        //调用QPage,开始表演
        QPage(animations, function (index) {
            $indexes.find('span').removeClass('current').eq(index).addClass('current');
        }, imgList)

        $platforms.find('a').on('click', function () {
            var $this = $(this);

            if (QPage.conf.playing) return false;

            if ($this.hasClass('selected')) return false; //当前平台点击无效

            var _n = platform
            var _p = $this.data('platform'); //获取要切换的平台

            $this.addClass('selected').siblings().removeClass('selected'); //切换样式

            if (QPage.conf.currentIndex == 0) {
                platform = _p;
                QPage.conf.playing = true;
                firstScene.hide[_n](function () {
                    firstScene.show[platform](function () {
                        QPage.conf.playing = false;
                    });
                });

            }
            else {
                platform = _p;
                animations.hide[QPage.conf.currentIndex](0, function () {
                    animations.show[0]();
                });
                QPage.conf.currentIndex = 0;
                QPage.conf.beforeIndex = 0;
                $indexes.find('span').removeClass('current').eq(0).addClass('current');
            }
            return false;
        })

    })
</script>

</body></html>