这是效果图。上面一个过滤标签。下面弹出框,选择日,周,月。我的用途主要是报表查询的时候根据这3种类型来查询数据用的。

这里分享下代码。


Js代码

(function ($) {
$.extend($.fn, {
DtFilter: function (setting) {
var container = this.html('<span type="text" class="filterDiv"><i class="fa fa-filter"></i></span><div class="filterParamDiv"><a href="javascript:void(0);" class="day filterActive">日</a><a href="javascript:void(0);" class="week">周</a><a href="javascript:void(0);" class="month">月</a></div>'); container.find(".filterDiv,.filterParamDiv").mouseover(function () {
container.find(".filterParamDiv").show();
}); container.find(".filterDiv,.filterParamDiv").mouseout(function () {
container.find(".filterParamDiv").hide();
}); var ps = $.extend({
day: function () { },
week: function () { },
month: function () { }
}, setting); var fil = {
day: function (e) {
ps.day(e); container.find(".week").removeClass("filterActive");
container.find(".month").removeClass("filterActive");
container.find(".day").addClass("filterActive");
},
week: function (e) {
ps.week(e); container.find(".week").addClass("filterActive");
container.find(".month").removeClass("filterActive");
container.find(".day").removeClass("filterActive");
},
month: function (e) {
ps.month(e); container.find(".week").removeClass("filterActive");
container.find(".month").addClass("filterActive");
container.find(".day").removeClass("filterActive");
}
};
container.find('.day').bind('click', function (e) {
fil.day(e);
});
container.find('.week').bind('click', function (e) {
fil.week(e);
});
container.find('.month').bind('click', function (e) {
fil.month(e);
});
return container;
}
});
})(jQuery);

这里i标签fa fa-filter样式不是bootstrap里面的,如果有需要用的,可以修改成bootstrap里面的。


Css样式

.filtercontainer{
position:relative;
}
.filterDiv{
font-size:24px!important;
padding-left:5px;
padding-right:5px;
}
.filterDiv > i{
font-size:24px;
}
.filterParamDiv{
position:absolute;
left:-5px;
top:30px;
z-index:999!important;
border:1px solid #808080;
width:42px;
background:#808080;
opacity:0.7;
color:#fff;
height:122px;
display:none;
border-radius:5px;
}
.filterParamDiv > a{
display:block;
font-size:13px;
font-family:宋体;
width:30px;
height:30px;
text-align:center;
vertical-align:middle;
border:1px solid #fff;
border-radius:20px;
padding-top:5px;
color:#fff;
margin-left:5px;
margin-top:8px;
}
.filterActive{
color:#fff;
border:1px solid red!important;
background:red;
}
.filterParamDiv > a:visited{
color:#fff;
border:1px solid red;
background:red;
}
.filterParamDiv > a:hover{
color:#fff;
border:1px solid red;
background:red;
}

具体兼容性啥的我也不知道,我就在Chrome上面用的。

调用方法:

首先引用Js和Css,然后在Div上面添加Id="testfilter"

$("#testfilter").DtFilter({
day: function (e) {
//点击天
},
week: function (e) {
//点击周
},
month: function (e) {
//点击月
}
});

我是个做.NET后端的,前端不行,如果有问题,请指教,我也在学习中。

自己写的一个Js小插件的更多相关文章

  1. 用jQuery写了一个模态框插件

    用jQuery写了一个模态框插件 大家觉得下面的框框好看么, 水印可以去掉(这个任务交给你们了(- o -)~zZ); "info"框 $("div").con ...

  2. 一个js小游戏----总结

    花了大概一天左右的功夫实现了一个js小游戏的基本功能,类似于“雷电”那样的小游戏,实现了随即怪物发生器,碰撞检测,运动等等都实现了,下一个功能是子弹轨迹,还有其他一些扩展功能,没有用库,也没有用web ...

  3. 用Python 3写的一个Spider小爬虫(使用内置urllib模块and正则表达式)

    用Python写了一个Spider小爬虫,爬一爬斗鱼“王者荣耀”在线直播的主播及人气

  4. 如何写一个Js上传图片插件。

    项目里面需要一个上传图片的插件,找了半天没有找到满意的,算了 不找了,自己写一个吧,顺便复习一下js方面的知识.完成之后效果还不错,当然还要继续优化,源码在最后. 介绍一种常见的js插件的写法 ; ( ...

  5. 原生js写的一个弧形菜单插件

    弧形菜单是一种半弧式或者全弧形菜单,是一种不同于传统横向或者竖向菜单形式的菜单.最近在网上看到好多人写出了这种效果,于是也尝试自己写了一个. 实现方式:原生态js 主要结构: 1.参数合并 var d ...

  6. 访问github太慢?我写了一个开源小工具一键变快

    前言 GitHub应该是广大开发者最常去的站点,这里面有大量的优秀项目,是广大开发者寻找资源,交友学习的好地方.尤其是前段时间GitHub公布了一项代码存档计划--Arctic Code Vault, ...

  7. 调用百度API写了一个js翻译小工具

    目前还未完成的功能有:textarea高度自适应,移动端与pc端都写了.效果如图: html: <!DOCTYPE html> <html lang="en"&g ...

  8. 今天写了一个SSM小项目,运行之后,前端页面的CSS、js样式显示不出来,具体操作如下:

    因为SSM中我们设置了拦截器,拦截器会拦截CSS和JS,所有样式渲染不出来,在Web.xml中写上 1 <servlet-mapping> 2 <servlet-name>de ...

  9. 分享一下自己写的一个vscode-leetcode答题插件

    0. 前言 春节这几天每天吃吃喝喝睡睡玩玩,突然发现明天就要上班了,吓得我虎躯一震. 春节结束之后,学生党们陆续开学,相信有许多同学马上就要在春季招聘中拼杀一番.想要收获心意的offer,当然免不了对 ...

随机推荐

  1. [XJOI NOI2015模拟题13] B 最小公倍数 【找规律】

    题目链接:XJOI - NOI2015-13 - B 题目分析 通过神奇的观察+打表+猜测,有以下规律和性质: 1) 删除的 n 个数就是 1~n. 2) 当 c = 2 时,如果 n + 1 是偶数 ...

  2. csuoj 1353: Guessing the Number

    这个题我想到要用kmp找到循环节: 但是后面的我就不会做了: 看到题解才知道是字符串的最小表示: #include<cstdio> #include<cstring> #inc ...

  3. MongoDB实战指南(七):MongoDB复制集之复制集工作机制

    http://www.cnblogs.com/longshiyVip/p/5097336.html 概述了复制集,整体上对复制集有了个概念,但是复制集最重要的功能之——自动故障转移是怎么实现的呢?数据 ...

  4. thinkphp 调用函数

    1,定义为Common.php文件.自动加载. 2,配置文件config.php文件里配置'LOAD_EXT_FILE'=>'function'.则会自动加载function.php文件 3,使 ...

  5. ANDROID_MARS学习笔记_S02_006_APPWIDGET3_AppWidget发送广播及更新AppWidget

    一.简介 二.代码1.xml(1)example_appwidget.xml <?xml version="1.0" encoding="utf-8"?& ...

  6. 1uboot移植要点[原创☆☆]

    ----- 一:我们先来了解下实际内存: nand.nor.ram. 所以从CPU是从那部分启动的呢? 答:要看主控芯片的boot如何设置(正如分的启动方式和下载方式一样). uboot:sd卡→iR ...

  7. 【HDOJ】5046 Airport

    DLX简单题目. /* 5046 */ #include <iostream> #include <string> #include <map> #include ...

  8. wzplayer2 for windows ActiveX 试用地址

    提供wzplayer2 for windows ActiveX,测试地址:http://www.coolradio.cn/IE.htm 大家使用时候必须允许未签名ActiveX下载和运行,否则将无法正 ...

  9. jdbcTemplate 获取数据表结构

    jdbcTemplate 操作方法 /** *1.方法一: */ String sql = "select * from "+ tableName; //RowCountCallb ...

  10. -_-#【网站优化】AJAX

    如何让搜索引擎抓取AJAX内容? Ajax 缓存: 两个重要的事实 使用 AJAX 事件触发 AJAX 请求.不要产生多次请求. 对 AJAX 请求使用 GET 方法 Use GET for AJAX ...