效果:

JS:

(function ($) {
  $.fn.loopmsg = function (options, param) {
     if (typeof options == 'string') {
            return $.fn.loopmsg.methods[options](this, param);
        }
       options = $.extend({}, $.fn.loopmsg.defaults, options || {});

   var dom = $(document);

    if (options.tmplHtml) {
    dom.find('body').append(options.tmplHtml);
  }else{
    alert('参数错误!');
  }

  $.fn.loopmsg.methods['doLoop'](this, options);
}

$.fn.loopmsg.methods = {
randomSuff: function(jq, options){
if(options.suffData.length == 0){
options.suffData = options.resSuff, options.resSuff = [ ];
}
var arr = options.suffData, result = options.resSuff;
console.log(arr);console.log(result);

var ran = Math.floor(Math.random() * (arr.length));
var tmp = arr[ran];
options.resSuff.push(arr[ran]);
options.suffData[ran] = options.suffData[arr.length - 1];
options.suffData = options.suffData.slice(0, arr.length - 1);
console.log(tmp);
return tmp;
},
randomDoct: function(jq, options){
if(options.doctData.length == 0){
options.doctData = options.doctSuff, options.doctSuff = [ ];
}
var arr = options.doctData, result = options.doctSuff;
console.log(arr);console.log(result);

var ran = Math.floor(Math.random() * (arr.length));
var tmp = arr[ran];
options.doctSuff.push(arr[ran]);
options.doctData[ran] = options.doctData[arr.length - 1];
options.doctData = options.doctData.slice(0, arr.length - 1);
console.log(tmp);
return tmp;
},
    doLoop: function (jq, options) {
var _loopdiv = $(document).find('#p_yuyue');
       timer = setInterval(function(){
var _suffinfo = $.fn.loopmsg.methods['randomSuff'](jq, options);
var _doctinfo = $.fn.loopmsg.methods['randomDoct'](jq, options);
var _msg = _suffinfo+''+options.replace+''+options.placeholder+''+_doctinfo+'专家号';
_loopdiv.addClass('isshow').children('p').html(_msg).end().fadeTo(3000, 1).delay(1000).fadeTo(3000, 0, function(){
_loopdiv.removeClass('isshow').children('p').html('');
});
}, parseInt(options.intervalTime));
    }
};

$.fn.loopmsg.defaults = {
  tmplHtml: '<style>#p_yuyue {position: absolute; top:0; display:none;}#p_yuyue p{line-height:2.5rem; background-color:rgba(0,0,0,0.8); color:#fff; padding:0 1rem; border-radius:0.4rem;}.isshow {display:!none;}</style><div id="p_yuyue"><p></p></div>',
     replace: '**',
  intervalTime: 10000,
     suffData: [], //患者
  resSuff: [],
     doctData: [], //医生
  doctSuff: [],
  doctName: '王医生',
     placeholder: '已成功预约'
   };
})(jQuery);

HTML:

<script>
$(function(){
  $(document).loopmsg({
    suffData: ['章','王','邢','刘','李','石'],
    doctData: ['王医生','张医生','邢医生','刘主任']
  });
});
</script>

【前端】仿消息推送到App提示的更多相关文章

  1. 如何用好消息推送为app拉新、留存、促活

    作为移动端APP产品运营最重要的运营手段,JPush消息推送被越来越多的APP厂商所重视,在信息泛滥的移动互联网时代,手机APP应用安装得越来越多,小小的手机屏幕每天收到的消息推送也越来越多,站在用户 ...

  2. python 全栈开发,Day131(向app推送消息,玩具端消息推送)

    先下载github代码,下面的操作,都是基于这个版本来的! https://github.com/987334176/Intelligent_toy/archive/v1.4.zip 注意:由于涉及到 ...

  3. APP消息推送是否进入消息中心和click、receive事件分析

    前端时间研究APP消息推送的机制,由于机型.版本的碎片化,消息推送的机制不太好理解,所以总结下,放在博文里以备后续查阅. 安卓Android系统的消息推送:     安卓 推送方式 应用状态 类型 消 ...

  4. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  5. IOS开发之实现App消息推送

    转自:http://blog.csdn.net/shenjie12345678/article/details/41120637 第一部分 首先第一步当然是介绍一下苹果的推送机制(APNS)咯(ps: ...

  6. IOS开发之实现App消息推送(最新)

    好久没有写过博客啦,今天就由本菜鸟给大家做一个简单的IOSApp消息推送教程吧!一切从0开始,包括XCode6, IOS8, 以及苹果开发者中心最新如何注册应用,申请证书以及下载配置概要文件,相信很多 ...

  7. IOS8开发之实现App消息推送

    第一部分 Apple Push Notification Service 首先第一步当然是介绍一下苹果的推送机制(APNS)咯(ps:其实每一篇教程都有),先来看一张苹果官方对其推送做出解释的概要图. ...

  8. APP的消息推送(极光推送)

    APP的消息推送,使用的第三方平台是极光推送 简单案例(以Thinkphp为例): 1.下载下载PHPSDK 2.把PHPSDK目录下的jpush-api-php-client-3.5.1\src\J ...

  9. 消息提示和消息推送插件toastr

    http://www.jq22.com/yanshi476 比较棒的消息提示和消息推送插件toastr function myIntervalshow() { // showPopup1(300, 1 ...

随机推荐

  1. Vue与 Vue组件部分

    1.Vuex作用?哪种功能场景使用它? 答案:vue框架中状态管理. 场景有:单页面应用中,组件之间的状态.音乐播放. 登录状态.加入购物车 2.解释vuex最常用的两种属性 答案:分别State.G ...

  2. Django视图函数之FBV与CBV模式

    FBV模式: FBV(function base views) 就是在视图里使用函数处理请求. 一般直接用函数写的都属于是FBV模式. veiws.py from django.shortcuts i ...

  3. Maven整合JaCoCo和Sonar,看看你的测试写够了没

    1 简介 单元测试是保证代码质量的重要一环,而如何衡量单元测试写得好不好呢?覆盖率(Coverage)是一个重要指标.而JaCoCo则是专门为Java提供的用于检测测试覆盖率的工具,英文全称为Java ...

  4. xtrabackup手册笔记

    http://www.cnblogs.com/Amaranthus/archive/2014/08/19/3922570.html#_Toc396231219

  5. 【MySQL】深入理解MySQL锁和事务隔离级别

    先看个小案例: 话不多说,上案例,先创建一个表 mysql> CREATE TABLE IF NOT EXISTS `account`( `id` INT UNSIGNED AUTO_INCRE ...

  6. Android Studio代码编译通过但是提示停止运行

    这种问题也许有很多可能,但是我遇到过一种,下面分享给大家希望问题会得到解决 检查你的布局文件中图片的位置 如果图片名前有“(v24)”的删掉 重新插入图片到这个目录 然后就可以正常运行了

  7. PSR-0到PSR-4编程规范

    PHP-FIG 在说啥是PSR-[0-4]规范的之前,我觉得我们有必要说下它的发明者和规范者:PHP-FIG,它的网站是:www.php-fig.org.就是这个联盟组织发明和创造了PSR-[0-4] ...

  8. Asp.net core logging 日志

    1 基本概念 Dotnet core 一个重要的特征是 Dependency injection ,中文一般是依赖注入,可以简单理解为一个集合,在应用程序启动时,定义各种具体的实现类型并将其放到集合中 ...

  9. jQuery基础总计

    框架概述 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法.框架是完成某种功能的半成品,框架是将我们日常的繁琐的代码进行抽取,并提供出更加简洁,功能更加 ...

  10. Mysql基础(四)

    ##约束 /* 含义:一种限制,用于限制表中的数据, 为了保证表中的数据的准确性和可靠性 分类:六大约束 not null: 非空,用于保证该字段的不能为空,比如姓名,学号等 default: 默认, ...