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 相关文章推荐
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 jQuery
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
基于jQuery的$.getScript方法去加载javaScript文档解析
Nov 08 jQuery
集成vue到jquery/bootstrap项目的方法
Feb 10 jQuery
vue+jquery+lodash实现滑动时顶部悬浮固定效果
Apr 28 jQuery
jQuery动态操作表单示例【基于table表格】
Dec 06 jQuery
jQuery中each和js中forEach的区别分析
Feb 27 jQuery
Easyui 去除jquery-easui tab页div自带滚动条的方法
May 10 jQuery
jQuery实现移动端笔触canvas电子签名
May 21 jQuery
jQuery 添加元素和删除元素的方法
Jul 15 jQuery
jquery实现加载更多&quot;转圈圈&quot;效果(示例代码)
Nov 09 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读取文件并可支持远程文件的代码分享
2012/10/03 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
2016/03/09 PHP
php文件操作之文件写入字符串、数组的方法分析
2019/04/15 PHP
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
python抓取网页图片示例(python爬虫)
2014/04/27 Python
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
python通过ssh-powershell监控windows的方法
2015/06/02 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
Python3爬虫全国地址信息
2019/01/05 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
python-numpy-指数分布实例详解
2019/12/07 Python
Python常用断言函数实例汇总
2020/11/30 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
使用html2canvas.js实现页面截图并显示或上传的示例代码
2018/12/18 HTML / CSS
中国最大的名表商城:万表网
2016/08/29 全球购物
美国最大的存储市场:SpareFoot
2018/07/23 全球购物
Java如何读取CLOB字段
2013/10/10 面试题
出生公证委托书
2014/04/03 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
机电一体化毕业生自荐信
2014/06/19 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
先进班集体申报材料
2014/12/26 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
Java中try catch处理异常示例
2021/12/06 Java/Android