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查找dom的几种方法效率详解
May 17 jQuery
jQuery+ajax实现修改密码验证功能实例详解
Jul 06 jQuery
jQuery中each循环的跳出和结束实例
Aug 16 jQuery
手写简单的jQuery雪花飘落效果实例
Apr 22 jQuery
通过jquery toggleClass()属性制作文章段落更改背景颜色
May 21 jQuery
jQuery pagination分页示例详解
Oct 23 jQuery
使vue实现jQuery调用的两种方法
May 12 jQuery
JQuery实现简单的复选框树形结构图示例【附源码下载】
Jul 16 jQuery
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
Jun 06 jQuery
jQuery实现简单评论功能
Aug 19 jQuery
jquery实现拖拽小方块效果
Dec 10 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服务器
2006/10/09 PHP
PHP开发过程中常用函数收藏
2009/12/14 PHP
php 获取本机外网/公网IP的代码
2010/05/09 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
JavaScript中 this 指向问题深度解析
2017/02/21 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
原生JavaScript实现remove()和recover()功能示例
2018/07/24 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
vue3.0自定义指令(drectives)知识点总结
2020/12/27 Vue.js
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
python 下载文件的几种方法汇总
2021/01/06 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
广播电视新闻学专业应届生求职信
2013/10/08 职场文书
高中毕业自我鉴定
2013/12/16 职场文书
互联网创业计划书的书写步骤
2014/01/28 职场文书
合作意向书格式及范文
2014/03/31 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
悬空寺导游词
2015/02/05 职场文书
副总经理岗位职责范本
2015/04/08 职场文书
电频谱管理的原则是什么
2022/02/18 无线电