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中clone()函数实现表单中增加和减少输入项
May 13 jQuery
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
jQuery实现的电子时钟效果完整示例
Apr 28 jQuery
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
详解JQuery基础动画操作
Apr 12 jQuery
jQuery zTree插件使用简单教程
Aug 16 jQuery
基于jquery ajax的多文件上传进度条过程解析
Sep 11 jQuery
jquery弹窗时禁止body滚动条滚动的例子
Sep 21 jQuery
jquery选择器和属性对象的操作实例分析
Jan 10 jQuery
jQuery操作元素追加内容示例
Jan 10 jQuery
jquery实现有过渡效果的tab切换
Jul 17 jQuery
jQuery实现容器间的元素拖拽功能
Dec 01 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 获取mysql数据库信息代码
2009/03/12 PHP
php身份证号码检查类实例
2015/06/18 PHP
PHP导入导出Excel代码
2015/07/07 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
文本链接逐个出现的js脚本
2007/12/12 Javascript
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
为jquery的ajaxfileupload增加附加参数的方法
2014/03/04 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
javascript使用btoa和atob来进行Base64转码和解码
2017/03/20 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
2018/09/30 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
Node.js学习之内置模块fs用法示例
2020/01/22 Javascript
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
如何基于python实现不邻接植花
2020/05/01 Python
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
什么是网络协议
2016/04/07 面试题
工程造价专业大学生自荐信
2013/10/01 职场文书
药品促销活动方案
2014/02/14 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
旷课检讨书
2015/01/26 职场文书
行政处罚告知书
2015/07/01 职场文书
九年级语文教学反思
2016/03/03 职场文书
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python
dubbo服务整合zipkin详解
2021/07/26 Java/Android
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang