自己写的一个Js小插件

这是效果图。上面一个过滤标签。下面弹出框,选择日,周,月。我的用途主要是报表查询的时候根据这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后端的,前端不行,如果有问题,请指教,我也在学习中。

时间: 2024-10-12 23:20:21

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

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

弧形菜单是一种半弧式或者全弧形菜单,是一种不同于传统横向或者竖向菜单形式的菜单.最近在网上看到好多人写出了这种效果,于是也尝试自己写了一个. 实现方式:原生态js 主要结构: 1.参数合并 1 var defaultPra = { 2 mainMenuId: "ArcMenu",//主菜单id 3 menuBoxId:"menuBox",//菜单包裹id 4 position: "",//弧形菜单 5 customPosition:"0

JS小插件之2——cycle元素轮播

元素轮播效果是页面中经常会使用的一种效果.这个例子实现了通过元素的隐藏和显示来表现轮播效果.效果比较简单. 效果图如下: 源代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" Content="text/html; charset=utf-8;"> 5 <title> cycle demo </titl

用jQuery写了一个模态框插件

用jQuery写了一个模态框插件 大家觉得下面的框框好看么, 水印可以去掉(这个任务交给你们了(- o -)~zZ); "info"框 $("div").confrimModal("<font color=\"green\">成功! </font>", {type:"info", themeColor: "#008B8B"}, true); "alert

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

花了大概一天左右的功夫实现了一个js小游戏的基本功能,类似于“雷电”那样的小游戏,实现了随即怪物发生器,碰撞检测,运动等等都实现了,下一个功能是子弹轨迹,还有其他一些扩展功能,没有用库,也没有用webGl之类的,单纯的逻辑+对DOM的操作,算是一次试手吧,之所以没有继续去完善,是因为想要整合一下,各个模块要更清晰,大体的设计是按MVC来的,但是对控制器那一块还不满意,设计过程中比较得意的是碰撞检测吧,因为我用了一个数组来维护怪物的生灭,怪物产生则数组push,怪物消失则用splice来从数组中删

JS小插件之1——pager 分页

学习JS大半年之久,第一次自己尝试写一些小插件,写法参考网上某位牛人写代码的思路. 此处代码写的是静态分页.如果需动态分页,还可以修改下.第一次写,还有很多地方可以优化.希望各位大牛踊跃拍砖. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" Content="text/html; charset=utf-8;"> 5 <t

去年方百度首页播放器写的一个js代码,先记录一下,不支持火狐了,改天用autio改改

播放器内核使用的是 object 或embed 刚刚测试了下,最新的火狐不支持了,IE 360还能用,改天换成audio来做吧 这里先记录下来 支持下一曲,暂停,开始 使用方法很简单: 该代码很简单,使用js实现,使用方法很简单 1.引入css:<link href="css/StyleSheet.css" rel="stylesheet" type="text/css" />2.引入js:<script src="j

js 小插件

avaScript 是一个在全球范围内都非常受欢迎的脚本语言,由 Netscape 的 LiveScript 发展而来,可用于 Web 开发.移动应用开发.服务器端开发等.它因简单.安全.动态和跨平台等特点而受到新老开发者的追捧.本文整理了一些基于 Javascript 的开源功能插件和框架,希望能给你的开发带来帮助. 一.MV* 框架和库 1.Angular JS Angular JS (Angular.JS) 是一组用来开发 Web 页面的框架.模板以及数据绑定和丰富 UI 组件.它支持整个

React自己写的一个地图小组件

由于今天比较闲,就玩了玩react,然后就封装了一个地图的组件,当然功能比较简单,因为就是随手写的小东西,但是由于引用了百度API和bee-mobile,所以用起来可能要薛微麻烦一点点,但是我保证,只是一点点而已. 由于之前发了一次,说字数太少从主页移出了,作为一个铁头娃,那我肯定得重写啊.前一次发的不够细致,这次就薛微细一点好吧, 由于,由于,鱿鱼,说的我都饿了.不说了进入正题好吧, 首先说说主体思想,思想比较简单,去拿过来百度地图的API和bee-mobile,然后将两者结合到一起,形成新的

每天一个JS 小demo之韩雪冬轮播图。主要知识点:html,css布局,对于数组和对象的理解和运用

1 @charset "utf-8"; 2 /* CSS Document */ 3 4 * { padding: 0; margin: 0; } 5 li { list-style: none; } 6 img { border: none; } 7 body { background: #ececec; padding-top: 50px; } 8 9 #automatic { width: 970px; height: 344px; position: relative; mar