jquery自定义显示消息数量


Posted in jQuery onDecember 19, 2017

本文实例为大家分享了jquery自定义显示消息数量展示的具体代码,供大家参考,具体内容如下

根据需求简单的实现一个小功能控件,暂时不支持扩展。

$("xxxxxxx").iconCountPlugin(options, start, isOffset) {

//三个参数,自定义样式,是否禁止图标位置随浏览器窗口变化而变化,是否禁用偏移量
这个是调用,后面俩参数可以根据需求自行进行调整,以兼容不同的浏览器,可能因为浏览器之间的差异导致出一些意想不到的错误.
复制代码
;
(function ($, window, document, undefined) {
var inforCountShow = function (target, option, isOffset) {
this.$element = target;
var str = "<span class = 'infor-count'></span>";
var offsetleft = $(this.$element).offset().left;
var offsetTop = $(this.$element).offset().top;
var targetWidth = $(this.$element).width();
var targetHeight = $(this.$element).height();
var left = "",
top = "";
if (!isOffset) {
left = offsetleft + targetWidth - 18;
top = offsetTop - 5;
} else {
left = targetWidth + 13;
top = targetHeight - 3;
}
$(this.$element).after(str);
this.defaults = {
'display': 'inline-block',
'width': '18px',
'height': '18px',
'position': 'absolute',
'backgroundColor': '#f43530',
'color': '#fff',
'borderRadius': '15px',
'textAlign': 'center',
'fontSize': '12px',
"left": left,
"top": top,
"cursor": 'auto',
'margin':'auto'
};
this.options = $.extend({}, this.defaults, option);
this.createdDom = $(str);
}
inforCountShow.prototype = {
//手动设置
changeStyle: function () {
return $(this.$element).next().css({
'display': this.options.display,
'width': this.options.width,
'height': this.options.height,
'position': this.options.position,
'backgroundColor': this.options.backgroundColor,
'color': this.options.color,
'borderRadius': this.options.borderRadius,
'zIndex': this.options.zIndex,
'textAlign': this.options.textAlign,
'fontSize': this.options.fontSize,
"left": this.options.left,
"top": this.options.top,
'lineHeight': this.options.lineHeight,
"cursor": this.options.cursor,
"margin": this.options.margin
});
},
//浏览器窗口大小改变自适应,默认生效
onResize: function (target, isOffset) {
$(window).resize(function () {
var newOffsetleft = $(target).offset().left;
var newOffsetTop = $(target).offset().top;
var newTargetWidth = $(target).width();
var newTargetHeight = $(target).height();
var newleft = "", newTop = "";
if (!isOffset) {
newleft = newOffsetleft + newTargetWidth - 18;
newTop = newOffsetTop - 5;
} else {
newleft = newTargetWidth + 13;
newTop = newTargetHeight - 3;
}
$(target).next().css({
"left": newleft,
"top": newTop
});
});
},
//数值溢出,当消息数量超过99时显示 "..."
valueOverflow:function() {
var value = $(this.$element).next().text();
if (null != value && value>99) {
$(this.$element).next().text("...");
}
},

//绑定事件,可以接受事件对应外部方法
bindEvent: function () {
var that = this;
if (!that.createdDom) return;
this.createdDom.off('click').on('click', function () {
if (that.options.click) {
// that.options.click();
} else {

}
});
}
}
//调用
$.fn.iconCountPlugin = function (options, start, isOffset) {

//三个参数,自定义样式,是否禁止图标位置随浏览器窗口变化而变化,是否禁用偏移量
return $(this).each(function () {
var infor = new inforCountShow(this, options, isOffset);
if (!start) {
infor.onResize(this, isOffset);
}
infor.changeStyle();
infor.valueOverflow();
infor.bindEvent();

});
}

})(jQuery, window, document);

此插件是笔者当时刚学习封装控件时的初次尝试,希望大佬们勿喷,有时间会把他进行优化,欢迎各位大神一起讨论.您的点赞是我最好的动力。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery插件Echarts实现的渐变色柱状图
Mar 23 jQuery
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
Mar 23 jQuery
Jquery-data的三种用法
Apr 18 jQuery
jQuery动态追加页面数据以及事件委托详解
May 06 jQuery
利用jQuery异步上传文件的插件用法详解
Jul 19 jQuery
jQuery实现导航栏头部菜单项点击后变换颜色的方法
Jul 19 jQuery
jQuery实现列表的增加和删除功能
Jun 14 jQuery
jquery实现搜索框功能实例详解
Jul 23 jQuery
jQuery实现的模仿雨滴下落动画效果
Dec 11 jQuery
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
Feb 14 jQuery
jQuery zTree插件快速实现目录树
Aug 16 jQuery
jQuery实现可编辑的表格
Dec 11 jQuery
jquery实现侧边栏左右伸缩效果的示例
Dec 19 #jQuery
jquery中done和then的区别(详解)
Dec 19 #jQuery
jQuery实现弹窗下底部页面禁止滑动效果
Dec 19 #jQuery
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
Dec 18 #jQuery
HTML5+JS+JQuery+ECharts实现异步加载问题
Dec 16 #jQuery
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 #jQuery
jquery获取transform里的值实现方法
Dec 12 #jQuery
You might like
php强大的时间转换函数strtotime
2016/02/18 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
python 字符串split的用法分享
2013/03/23 Python
Python压缩和解压缩zip文件
2015/02/14 Python
介绍Python的Django框架中的QuerySets
2015/04/20 Python
python基础教程之匿名函数lambda
2017/01/17 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
Python内置random模块生成随机数的方法
2019/05/31 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
美国酒店控股公司:Choice Hotels
2018/06/15 全球购物
介绍一下Java中标识符的命名规则
2014/02/03 面试题
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
行政总监岗位职责
2013/12/05 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
政府信息公开实施方案
2014/05/09 职场文书
奉献家乡演讲稿
2014/09/16 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
社保转移委托书范本
2014/10/08 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
工作建议书范文
2019/07/08 职场文书