这是效果图。上面一个过滤标签。下面弹出框,选择日,周,月。我的用途主要是报表查询的时候根据这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. Linux系统调用列表

    转自Linux系统调用列表 一.进程控制: fork 创建一个新进程 clone 按指定条件创建子进程 execve 运行可执行文件 exit 中止进程 _exit 立即中止当前进程 getdtabl ...

  2. java中获得jar包执行路径的方法

    当我们由于某种需要需要的得到jar的路径是可以用下面的方式来获得: basePath = new Solution().getClass().getProtectionDomain().getCode ...

  3. (重)POJ 3020Antenna Placement

    http://poj.org/problem?id=3020 呃...这个题不是很会,所以找了大神的博客做了参考,说得很详细 http://blog.csdn.net/lyy289065406/art ...

  4. 转:HTTP请求(GET、POST和soap区别)和响应

    一直对Http请求和SOAP请求不是太理解,只是知道SOAP是基于Http的,并且增加了很多XML标签,SOAP经常用在WebService中,比如在C#中创建一个WebService,然后在客户端生 ...

  5. 【HDOJ】1016 Prime Ring Problem

    经典DP,写的可能麻烦了一些. #include <stdio.h> #define false 0 #define true 1 ]; ]; ]; void DFS(int, int, ...

  6. 推荐GitHub上10 个开源深度学习框架

    推荐GitHub上10 个开源深度学习框架   日前,Google 开源了 TensorFlow(GitHub),此举在深度学习领域影响巨大,因为 Google 在人工智能领域的研发成绩斐然,有着雄厚 ...

  7. hadoop2.2编程:从default mapreduce program 来理解mapreduce

    下面写一个default mapreduce 的程序: import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapr ...

  8. bzoj1324

    经典例题 在<最小割模型在信息学竞赛中的应用>有详细的解答就不赘述了 主要想说,其实这题的几个结论其实是很好猜出来的: 当摸不清题目本质的时候,不妨多找几种情况,猜测一下 顺便推广一下几个 ...

  9. NOI2010海拔

    2007: [Noi2010]海拔 Time Limit: 20 Sec  Memory Limit: 552 MBSubmit: 1302  Solved: 612[Submit][Status] ...

  10. Codeigniter夸应用调用model

    Thinkphp里面的model都是可以跨应用调用,ci本身没有实现这个方法.可是稍微修改下,比Thinkphp用起来更容易调用.找到Loader.php文件的地址/system/core/Loade ...