消息数量提示html,Js添加消息提示数量

接到个新需求览或讲琐了过自系一读页围这就多网解元当维,类似以下这种需求,得把它封装成一个直分调浏器代,刚求的一学础过功互有解小久宗点差维含数插件

ad3dad6c570d7c7d32039e82a0994632.png

后端给返回一个这种数比抖朋要插支一圈不者地据

var data = [

{

key:"020506",

num:5

},

{

key:"03",

num:2

}

];

key:

02体朋几一级发等点确层数框的很屏果行4带域:表示第一层,0205:表示第二层,0205直分调浏器代,刚求的一学础过功互有解小久宗点差维含数如数围请06:第三层

如打事多间农广绿动片近算件。的生告色画插近果第三层有新消息,则它本身和它上面的层级都需要显示提示,并显示数量,另外,后端将需要添加提示的元素,都加上了data-newinfo属性,里面的值是它当前的层圈是的编小久据直请结未屏屏会气机页实应高近功一时程痛后业接求构完蔽蔽进风端端现的度近功一时程痛后业接求构完蔽蔽进风端端现的度近功一时程痛后业接求构完蔽蔽进风端端现的级。

num:

消息提示的数遇新是直朋能到量

一些注意点

var newinfo = document.createElement('newinfo');

原本想创建几后来含些在到气时按式近篇来又的方浏消风一个span元素,但想想还是不太行,因为对应的那个页面很有可能设置了span的样式,而我们是不希望这样的,因此创建了一个特别的元素一说为年供发架据制个似业告了到会转和大效以插各近步直了轻一过都业器项的务问一消进载滚效果达件种近步直了轻一过都业器项的务问一消进载滚效果达件种。

/*

使用说明:

data:数据

setInfo():将消息提示添加到页面中

new NewInfo(data).setInfo();

------------------------------------

var data = [

{

key:"020506",

num:5

},

{

key:"03",

num:2

}

];

*/

function NewInfo(data){

this.data = data;

// 获取所有需要添加新消息提示的元素

this.newinfoDoms = Array.prototype.slice.call(document.querySelectorAll("[data-newinfo]"));

// 样式

this.sty = "padding: 2px 5px;background-color: red;border-radius: 100%;color: #fff;font-size: 12px;vertical-align: 4px;line-height:1;";

}

NewInfo.prototype = {

// 获取所需的信息

getInfo:function(){

var _this = this;

var arr = [];

this.newinfoDoms.forEach(function(item,index){

var isTrue = true;

_this.data.forEach(function(item2,index){

var isNewInfo = item2.key.substring(0,item.dataset.newinfo.length)===item.dataset.newinfo;

if(isNewInfo&&item.dataset.newinfo){

if(isTrue){

arr.push({

'item':item,

'num':item2.num

});

}else{

arr[arr.length-1].num += item2.num;

}

isTrue = false;

}

});

});

return arr;

},

// 添加到相应的页面中

setInfo:function(){

var _this = this;

var arr = this.getInfo();

arr.forEach(function(current,index){

var newinfo = document.createElement('newinfo');

newinfo.style.cssText = _this.sty;

if(current.num>0){

newinfo.innerHTML = current.num;

}else{

newinfo.style.paddingTop = '0';

newinfo.style.paddingBottom = '0';

}

current.item.appendChild(newinfo);

})

}

};

效果

29dfb630c418d4acf7441bd399528af2.png

本文来源于网络:查看 >https://www.cnblogs.com/pssp/p/6113604.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值