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实现文章图片弹出放大效果
Apr 06 jQuery
JS/jquery实现一个网页内同时调用多个倒计时的方法
Apr 27 jQuery
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
May 08 jQuery
jQuery实现div跟随鼠标移动
Aug 20 jQuery
jquery请求servlet实现ajax异步请求的示例
Jun 03 jQuery
jquery之基本选择器practice(实例讲解)
Sep 30 jQuery
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 jQuery
jQuery动态添加元素无法触发绑定事件的解决方法分析
Jan 02 jQuery
[原创]jQuery实现合并/追加数组并去除重复项的方法
Apr 11 jQuery
jquery引入外部CDN 加载失败则引入本地jq库
May 23 jQuery
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
使用jquery实现轮播图效果
Jan 02 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
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
Laravel 在views中加载公共页面的实现代码
2019/10/22 PHP
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
angular动态表单制作
2018/02/23 Javascript
原生js实现trigger方法示例代码
2019/05/22 Javascript
python使用matplotlib绘制折线图教程
2017/02/08 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
python xpath获取页面注释的方法
2019/01/14 Python
解决python 3 urllib 没有 urlencode 属性的问题
2019/08/22 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
python算的上脚本语言吗
2020/06/22 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
Python的Tqdm模块实现进度条配置
2021/02/24 Python
html5图片上传预览示例分享
2014/04/14 HTML / CSS
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
党员个人思想汇报
2013/12/28 职场文书
求职信怎么写
2014/05/23 职场文书
管理工程专业求职信
2014/08/10 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
2014年协会工作总结
2014/11/22 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
综治目标管理责任书
2015/05/11 职场文书
安全生产协议书
2016/03/22 职场文书
Python图片检索之以图搜图
2021/05/31 Python
sass 常用备忘案例详解
2021/09/15 HTML / CSS