ionic 完美仿微信摇一摇

Cordova实现模仿微信摇一摇(简单版) Cordova模仿微信摇一摇(简单版)一、概要二、实现环境三、主要插件四、流程图五、执行代码六、执行效果总结 一、概要 这次的实例主要是通过Cordova这个API来实现,主要是在原来书本上的案例个人拓展而来,纯属个人兴趣,不喜勿喷。 本人一名大三计算机学生,一个前端小菜鸟,可能有些代码写得不太规范,请多多指教!! 二、实现环境 1、API:Cordova 2、框架:jQuery Mobile 3... 阅读详情

今天我们使用ionic框架完美仿制微信摇一摇功能,先来看看最终效果图

这里写图片描述

制作微信摇一摇功能需要调用 陀螺仪传感器(Device Motion)
这里写图片描述
参考文档地址http://api.ionic-china.com/help/action/Device%20Motion/Device%20Motion.html

播放音效需要 播放音乐(Native Audio)
这里写图片描述
参考文档地址http://api.ionic-china.com/help/action/Native%20Audio/Native%20Audio.html
附:中文ngCordova参考文档

基本思路:
绘制两层底层为静态层上层动画层 - 执行方法时隐藏静态层显示动画层 - 动画结束后隐藏动画层显示静态层

1.先用photoshop处理分离元素
这里写图片描述

2.用于平铺的背景层、静态层图片、动态层背景花、上半部图片、上半部阴影、下半部图片、下半部阴影、
这里写图片描述

3.先平铺绘制背景层

<div class="shakebg"></div>

这里写图片描述

3.在背景层中心绘制图片

<div class="shakebg">
    <img src="img/shakeIcon.png"/>
</div>

这里写图片描述

4.再来绘制动画层,先把背景层隐藏。不多赘述先画背景再画小花。

<div class="animetebg">
    <img class="flower" src="img/flower.png" />
</div>

这里写图片描述

5.绘制上半部背景、上半部图片以及阴影部分。

<div class="animetebg">
    <img class="flower" src="img/flower.png" />
    <div class="topShakeBox">
        <img class="topShake" src="img/topShake.png" />
        <div class="topBar"></div>
    </div>
</div>

这里写图片描述

这里写图片描述

这里写图片描述

6.按照相同方法绘制好下半部分,效果图。注意我们是一块一块绘制的,所以可以完美适配任何分辨率设备哦。

<div class="animetebg">
    <img class="flower" src="img/flower.png" />
    <div class="topShakeBox">
        <img class="topShake" src="img/topShake.png" />
        <div class="topBar"></div>
    </div>
    <div class="bottomShakeBox">
        <div class="bottomBar"></div>
        <img class="bottomShake" src="img/bottomShake.png" />
    </div>
</div>

这里写图片描述

这里写图片描述

7.现在使用CSS3给元素指定动画,注意:使用transform是开启GPU硬件加速提升流畅度

.animetebg .topShakeBox{
    -webkit-animation: topShakeBoxAnimete 1s ease-in-out;
    animation:topShakeBoxAnimete 1s ease-in-out;
}

.animetebg .bottomShakeBox{
    -webkit-animation: bottomShakeBoxAnimete 1s ease-in-out;
    animation:bottomShakeBoxAnimete 1s ease-in-out;
}

@keyframes topShakeBoxAnimete {
    0%   {
        -webkit-transform:translateY(-5px);
        transform:translateY(-5px);
    }
    50%  {
        -webkit-transform:translateY(-100px);
        transform:translateY(-100px);
        }
    100% {
        -webkit-transform:translateY(-0px);
        transform:translateY(-0px);
    }
}

@keyframes bottomShakeBoxAnimete {
    0%   {
        -webkit-transform:translateY(5px);
        transform:translateY(5px);
    }
    50%  {
        -webkit-transform:translateY(100px);
        transform:translateY(100px);
    }
    100% {
        -webkit-transform:translateY(0px);
        transform:translateY(0px);
    }
}

这里写图片描述

8.写代码检测获取陀螺仪数据执行动画,先使用ionic小助手添加Device Motion和Native Audio插件(前面已经介绍过)记得先引用ngCordova模块。
Device Motion插件检测手机xyz三个方向数值是±10 其中:XY是手机旋转。Z是翻转正面是+10,反面是-10
如果用力摇晃手机会超出这个数值,就是根据这个做摇一摇

html中给
animetebg添加ng-show=”animetebg.show”
shakebg添加ng-hide=”shakebg.hide”
body标签添加ng-controller=”startCtrl”

app.js添加以下代码,相关说明已经在代码注释。

.controller("startCtrl",function($scope,$interval,$timeout,$ionicPlatform,$cordovaNativeAudio,$cordovaDeviceMotion){
    $scope.shakebg = [{hide:false}];
    $scope.animetebg = [{show:false}];

    $ionicPlatform.ready(function() {//载入音乐资源
       $cordovaNativeAudio
       .preloadSimple('click', 'src/shake_sound.mp3',1,1)
    });

    var motiontime;

    //获取陀螺仪数据方法
    $scope.getMotionTime = function(){
        motiontime = $interval(
            function() {

              $cordovaDeviceMotion
                .getCurrentAcceleration()
                .then(function(motion) {

                    if(motion.x > 11 || motion.x < -11 || motion.y > 11 || motion.y < -11){
                                //手机向任意方向用力摇晃
                                $scope.showAnimete();//执行动画部分
                                $cordovaNativeAudio.play('click');//播放音乐
                    }

                }, function(err) {
                    alert("陀螺仪错误 "+err);
                });

            },
            100
        );
    };

    $scope.getMotionTime();//开启时钟获取数据

    //动画方法
    $scope.showAnimete = function(){
        $interval.cancel(motiontime);//停止掉获取数据时钟
        $scope.shakebg.hide = true;//隐藏背景层
        $scope.animetebg.show = true;//显示动画层

        var timer_b = $timeout(
            function() {//动画结束
                $scope.animetebg.show = false;//隐藏动画层
                $scope.shakebg.hide = false;//显示背景层
                $scope.getMotionTime();//重新开启获取数据时钟
            },
            1000
        ).then(
            function() {
                $timeout.cancel(timer_b);
            }
        );
    };
})

ionic版本:1.7.14
SDK:API23

源码下载地址:http://download.youkuaiyun.com/detail/ionic_china/9470449

APK下载地址:http://pan.baidu.com/s/1c0K8wTy

PSD下载地址:http://pan.baidu.com/s/1o7kCx2y

ionic中文群:65048636 欢迎大家来这里 共同、分享、进步

Ionic 4.1与React导航集成:状态驱动的分层协同方案 在混合移动应用开发中,导航系统是连接UI表现与业务逻辑的核心枢纽。其本质是路由状态管理与视图生命周期的协同问题,涉及URL同步、页面堆栈控制、动画调度及数据加载时机等关键技术维度。Ionic基于Web Components的视图栈模型与React Router的声明式路由存在哲学差异,直接耦合易导致动画中断、钩子失效和状态错乱。本文聚焦于Ionic 4.1与React的工程化集成,通过构建URL层、视图层与状态层的三层协同架构,实现导航行为的可预测性、可测试性与原生体验一致性。方案兼容Capacitor,支 阅读详情

相关推荐

全球首款一键模拟摇一摇Xposed模块

1. 本程序需要Xposed框架支持,并在Xposed框架中启用本模块。Xposed框架安装使用方法请自行百度查找。 2. 如果是MIUI或EMUI等系统,需要在系统设置中开启本程序的悬浮窗权限,如果最小化后右边悬浮圆按钮无法正常显示,请检查悬浮窗权限有没有打开。 3. 启动本程序后将在屏幕右侧显示一个圆形悬浮按钮,然后启动微信等需要摇一摇的软件,该按钮将悬浮于微信界面之上,点击该按钮即可伪造出摇一摇的操作

iOS使用CoreMotion实现摇一摇功能

现在网上介绍的iOS摇一摇功能,基本是以借助系统的ShakeToEdit功能来实现,什么是ShakeToEdit?看下图应该就能懂: 此方式怎么实现呢? //ViewController 加入以下两方法 -(BOOL)canBecomeFirstResponder { //让当前controller可以成为firstResponder,这很重要 return YES; } -(

Govo的专栏 3107

仿微信摇一摇

仿微信摇一摇全代码,支持Android和IOS 全仿微信摇一摇动画功能。

ionic 微信分享

ionic 项目,微信分享,搞了快一个星期。坑很多,写出解决方案,希望能帮助你们。废话不多说直接开始:首先,如果你还没有在微信开放平台添加app并申请通过,马上去,审核时间好长,我等了快一个星期。 https://open.weixin.qq.com/ ionic 的微信分享插件:https://github.com/xu-li/cordova-plugin-wechat他还有demo,列出来

钢ge的博客 3971

ionic仿微信聊天demo

ionic仿微信聊天demo,包括登录、聊天界面跳转,相册查看

phonegap实现摇一摇打电话

phonegap实现摇一摇拨打电话功能,摇一摇功能使用phonegap的加速计,拨打电话功能用使用了自定义的插件,phonegap版本是3.0的版本

app端前端框架对比 - Mui与ionic、Cordova 、Weex、React Native对比

1.1.1.介绍: mui是最接近原生App体验的前端框架。 极小:100k的js文件,60k的css文件。原生编写,不依赖任何三方框架 极强:xcode和Android studio里所有原生控件都具备 高性能:精练的代码、适时的5+原生动画调用,达到原生应用的体验 多端发布:编写一套代码,iOS、Android、浏览器、微信App、百度直达号、流应用全覆盖 1.1.2.Mui能力? HTML5...

Jonathan的博客 4188

用H5仿微信实现摇一摇,抢红包等效果

用H5仿微信实现摇一摇,抢红包等效果。 摇一摇主要使用DeviceMotionEvent对象,可以计算加速度。 也可以使用DeviceOrientation事件, 本质是计算偏转角

TypeScript微信wx小程序初体验(使用vscode开发微信小程序)

这两天公司安排研究微信小程序开发(我们是想ionic直接或间接转换成微信小程序....),幸亏微信开发者工具支持TypeScript,所以这个“转换”还是有戏的。之前也看了uni-app,人家那个才叫牛,一套程序(基于vue.js), APP、WAP、微信小程序、各种小程序,自动编译生成,差点就转uni-app了。无奈换框架这事太大,所以我只能先手工转换,后面自动转换也不是不可能的事。 经过这几...

博客简介 1万+

基于Jetson Nano与YOLOv5s的无人机道路抛洒物实时检测系统【附数据集+代码】

本文详细介绍基于Jetson Nano与YOLOv5s的无人机道路抛洒物实时检测系统,通过硬件选型、数据采集、模型优化等关键步骤,实现高效的道路安全监控。系统结合无人机高空视角和YOLOv5s算法,能精准识别各类抛洒物,实测准确率达98.2%,为交通管理提供智能化解决方案。

weixin_29081163的博客 1452

使用kmplot在线进行生存分析

欢迎关注”生信修炼手册”!kmplot是一个生存分析的在线工具,最初是设计用来对肝癌中的miRNA进行生存分析,对应的文章发表在scientific reports上,链接如下https...

庐州月光的博客 1万+

使用ionic2移动应用在IOS中遇到的问题

使用ionic2移动应用在IOS中遇到的问题

qq_43685640的博客 318

STM32F407 HAL库定时器触发ADC采集与DMA数据传输(定时器TIM+ADC+DMA)

在STM32F407系列微控制器的开发中,结合定时器、ADC(模数转换器)与DMA(直接存储器访问)控制器,能够显著提升数据采集与传输的效率。本文将指导你如何使用STM32 HAL库,通过定时器触发ADC1的单通道采集,利用DMA传输数据,最终通过串口将电压值打印出来。具体实现中,我们将读取ADC1的通道5(对应引脚PA5),并将转换得到的电压值发送到串口助手上进行显示。

jmlinux的博客 7010

ionic 单选框操作

本文详细介绍了Ionic 7+中使用<ion-radio>和<ion-radio-group>实现单选功能的方法。内容包括:基本单选列表实现、数组动态生成单选选项、表单集成使用、样式颜色设置、禁用功能、弹出式单选窗口等常见场景,并附有代码示例。文章还提供了常用属性速查表和关键使用要点说明,帮助开发者快速掌握Ionic单选框组件的使用技巧,确保在iOS、Android和Web端都能获得统一的UI体验。

likuoelie的博客 383

PyFluent进阶实战:自动化密闭几何(Watertight)网格生成

本文深入探讨了如何利用PyFluent实现自动化密闭几何(Watertight)网格生成。通过Python脚本控制Fluent Meshing工作流,工程师可以高效、一致地完成从几何导入、局部尺寸定义、面网格生成到边界层设置和体网格输出的全过程,从而将复杂的CFD前处理工作转化为可重复、可集成的自动化流程,极大提升仿真效率和知识复用性。

t8u9v0w1x的博客 577

YF-S401水流量传感器在STM32上的精准计量实现

本文详细介绍了YF-S401水流量传感器与STM32微控制器的集成应用,实现精准水流计量。通过外部中断和外部时钟两种脉冲计数方案,结合硬件配置、软件滤波和校准技巧,确保高精度流量测量。适用于智能家居和工业自动化中的水控系统,提升系统稳定性和测量准确性。

rainy的博客 895

Ionic 浮动框(Floating Action Button,简称 FAB)完整实战指南

本文详细介绍了Ionic浮动框(FAB)的实战应用指南,涵盖基础用法、展开菜单、位置组合、样式设置等核心功能。重点讲解了右下角经典位置实现、带子菜单的FAB组件、自动隐藏特效以及与底部TabBar的完美适配方案。通过代码示例展示了微信式发布按钮等实际应用场景,并推荐了2025年最优雅的写法:使用edge属性自动适配界面布局,结合ion-fab-list实现多功能菜单。文中还包含滚动隐藏逻辑的实现代码和不同平台的UI适配效果说明。

likuolei的博客 1216

ABAP CDS HAVING 全解析:聚合之后的精准过滤、最佳实践与可运行示例

摘要: 本文针对具备ABAP与CDS基础的开发者,详解HAVING在ABAP CDS中的核心用法。HAVING专用于过滤GROUP BY后的聚合结果(如SUM、COUNT),与WHERE的分工明确:前者处理聚合值,后者过滤原始记录。通过销售额阈值、质量分析、财务对账三类典型场景,结合性能优化建议(如优先使用WHERE索引过滤),说明实际应用。文中提供经典CDS View与View Entity两种实现代码,并附Open SQL消费示例,帮助开发者快速落地。常见误区(如聚合条件误写至WHERE)与规避方法亦被

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 219

Ionic 让你一见钟情的移动App开发框架

接触Ionic要从14年开始说起了,因产品需求接触了Angular非常棒的一款框架,双向数据绑定,可以自定义指令,过滤器等等。总之非常好用完全超出了我们功能需求。之后我们在做微信公众号的时候我们依旧采用Angular,但是在要写完的时候突然发现Angular在移动端的应用并不是像pc端那样流畅,在页面切换以及页面滚动的时候都非常卡顿,说实话真心的拿不出手的产品...

weixin_33877092的博客 202

新手必看:C#调用YOLO模型完成图片/视频目标检测(上位机版)

新手学习C#调用YOLO模型,核心是先把基础流程跑通,再逐步优化。图片检测是基础,视频检测就是在图片的基础上加循环和线程,而上位机的实际项目,就是在这个基础上适配工业硬件和业务需求。本文的代码都是新手能直接复制运行的,如果你运行时遇到问题,先检查前期准备是否到位,再看避坑指南。记住,新手别追求一步到位,先实现功能,再慢慢优化性能和界面。等你能熟练调用YOLO模型后,再去研究模型训练、量化优化等进阶内容,会轻松很多。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 984

基于simulink的能量管理策略的场景实例:混合动力电动汽车(HEV)的能量回收与分配策略

本文以混合动力电动汽车(HEV)为研究对象,通过Simulink建模详细演示了能量管理策略的设计与实现。内容涵盖HEV系统架构、核心组件工作原理,并分步骤指导搭建车辆动力学模型、动力系统组件模型和基于规则的能量管理策略。重点分析了制动能量回收与功率分配机制,通过仿真验证了逻辑门限策略在提升燃油经济性和维持电池SOC平衡方面的有效性。文章最后展望了更高级控制策略的应用前景,为HEV能量优化提供了完整的仿真研究框架。

xiaoheshang_123的博客 212

跨平台应用开发进阶(四):AngularJS + Ionic 开发 Hybrid 项目实战总结

AngularJS全栈工程狮进阶 学习了一段时间AngularJS,开始接触移动端APP开发。为了响应公司开发需求,采用“Hybrid”混血开发方法。采用Ionic前端框架,对于小白来说,得一点一点的前进。 读了一部分双狼写的书,了解到“开发原生应用的好处在于用户体验好,缺点在于开发周期长、投入大。随着技术的改进,一条捷径应运而生。在移动开发领域,Hybrid架构正风靡

IT全栈 华强工作室 4万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

微信支付无法回调 APP端

微信支付服务端的回调网上已经有很多例子了,如果你一直专注于服务端开发,那么应该是非常轻松的搞定,就是别忘了对业务数据处理加锁,因为微信会重复发来消息通知而造成数据重入的混乱。我想说说手机端Android开发的回调如何处理,也许大家使用原生的开发比较多,所以依照微信的官方文档处理就应该能够解决,但是对于使用AngularJS+Ionic+Cordova的Hybrid混合开发的小伙伴来说就不是能够顺畅解

听从内心的召唤 5203

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ionic 单选框

本文提供 Ionic 7+ 最新单选框(ion-radio)的完整使用指南,包含基础用法、10种常见业务场景代码示例、动态数据绑定方法及UI美化方案。文章提供可直接复用的代码片段,涵盖性别选择、支付方式、规格选择等典型场景,并分享全局样式优化技巧和4种完整页面模板。所有方案均适配iOS/Android和暗黑模式,开发者可快速实现各类单选需求。

m0_57545130的博客 349

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: [分享] ionic小助手 V1.5(告别命令行,超强功能)
下一篇: ionic助手 v1.9.0 一键式开发环境工具(告别命令行,超强功能)
ionic_china
博客等级 码龄11年 1粉丝 2原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值