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插件制作 自增长输入框实现代码
Aug 17 jQuery
jquery平滑滚动到顶部插件使用详解
May 08 jQuery
jquery+css3实现熊猫tv导航代码分享
Feb 12 jQuery
[原创]jquery判断元素内容是否为空的方法
May 04 jQuery
jQuery实现表单动态加减、ajax表单提交功能
Jun 08 jQuery
jQuery 操作 HTML 元素和属性的方法
Nov 12 jQuery
jquery简单实现纵向的无缝滚动代码实例
Apr 01 jQuery
通过jQuery学习js类型判断的技巧
May 27 jQuery
jquery实现下载图片功能
Jul 18 jQuery
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 jQuery
jQuery表单校验插件validator使用方法详解
Feb 18 jQuery
jQuery HTML获取内容和属性操作实例分析
May 20 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实现求相对时间函数
2015/06/15 PHP
php文件读取方法实例分析
2015/06/20 PHP
php实现支付宝当面付(扫码支付)功能
2018/05/30 PHP
php gethostbyname获取域名ip地址函数详解
2010/01/24 Javascript
jQuery 表格插件整理
2010/04/27 Javascript
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
python使用pil生成图片验证码的方法
2015/05/08 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
Python Logging 日志记录入门学习
2018/06/02 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
Python实现最大子序和的方法示例
2019/07/05 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
Python气泡提示与标签的实现
2020/04/01 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
介绍一下代理模式(Proxy)
2014/10/17 面试题
英语文学专业学生的自我评价
2013/10/31 职场文书
行政主管岗位职责
2013/11/18 职场文书
预备党员入党思想汇报
2014/01/04 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
《这儿真好》教学反思
2014/02/22 职场文书
委托书的写法
2014/09/16 职场文书
2014小学年度工作总结
2014/12/20 职场文书
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python