前端插件收藏夹

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/fukaiit/article/details/100600206

有些插件用了就想不起来了,整理在收藏夹太多太乱,想写点简介也不方便;
曾做了一个类似导航页的单页面,但是维护起来还是太麻烦;
就整理在这篇博客里,会持续更新。


一、drag


0. 引入

为了做一个可拖拽排序的列表,查找了相关drag插件,比较好用的记录如下。
但其实最后也没有达到理想的效果,Muuri简单易用,拖拽动画等也非常完美,但是不能多选拖动;Multi Drag可多选拖动,但不支持grid布局。
如果有用过或写过同时具备二者优点的插件,还请不吝指点,谢谢。

1. Muuri

  • https://haltu.github.io/muuri/
  • 它不止是一个拖拽插件,其实它是一个Responsive, sortable, filterable and draggable的grid布局插件
  • 常见于模板网站、素材网站等布局方式
  • 做可拖拽排序的列表非常好用

2. jquery.dad.js

3. Multi Drag


二、工具栏


1. Toolbar.Js


三、表格相关


1. colResizable - 拖动改变列宽

实例:
基于colResizable-1.6实现一个表头固定、列宽可调的table


四、拖动改变宽度


0. 引入

实现一个中间可拖动,改变两侧宽度的两栏布局,比如左侧为菜单,有一个默认宽度,希望能够通过拖动调节。

通常有两种思路:

1. 纯css利用元素的resize特性实现

这个是我查到这篇优质博客之前未曾想到的:纯CSS实现左右拖拽改变布局大小
感觉非常棒,拖动效果非常顺滑,控制最小宽度也非常方便,只是兼容性有待考证。

2. js利用mousedown、mousemove、mouseup事件实现

这个是拿到这个需求后,首先想到的比较直接的思路,在mousedown、mousemove、mouseup事件中调整各个区块的宽度。
都大同小异,因为是汇总贴,不再列出代码,请参考:
实现左右可拖动改变宽度的div内容显示区,并且控制拖动范围
js 实现左侧菜单拖动改变宽度
左右两栏布局右侧自适应+左右拖动改变两栏宽度


五、动画


1. Animate.css


六、loading


1. Preloaders

2. loading.io


七、树tree


1. zTree

2. jsTree


八、表单元素


1. iCheck

2. bootstrap-datetimepicker(日期时间选择器)

3. Bootstrap TouchSpin(number类型输入框插件)


九、轮播图


1. swiper

1. SuperSlide & TouchSlide


十、右键菜单


1. jQuery-contextMenu

  • https://swisnl.github.io/jQuery-contextMenu/
  • 配置灵活
  • Tips
    • 在触发右键菜单之前要执行一些操作的话,在bulid中配置,或者在events.preShow中编写
    • 配置右键菜单单击事件的位置:
      • 直接在options中配置callback
      • 在items中在具体项上配置callback,这里的callback会覆盖options中的callback
    • 配置两种快捷键
      • accesskey: 'V',通过accesskey直接配置单个字母,需要点击右键后点击字母触发,该配置项与isHtmlName冲突
      • 配置与右键菜单无关的Ctrl+C类快捷键,与右键菜单唯一的关联是需要在右键菜单上显示快捷键提醒
        在这里插入图片描述
$.contextMenu({
    selector: '.context-menu-trigger',
    callback: function(itemKey, opt, e) {
        // 可以根据itemKey的不同进行不同操作
        console.log('这是在全局callback触发的,点击的右键菜单项是:' + itemKey);
        console.log('点击右键的元素是:');
        console.log(opt.$trigger);
    },
    build: function($triggerElement, e) {
        // 在触发右键菜单执行一些操作
        // 如:将背景色改为红色
        $triggerElement.css('background', 'red');
        return {
            items: {
                "cut": {
                    name: "剪切",
                    callback: function(itemKey, opt) {
                        //这里的callback会覆盖全局定义的callback
                        console.log('这是在items上callback触发的,点击的右键菜单项是:' + itemKey);
                        console.log('点击右键的元素是:');
                        console.log(opt.$trigger);
                    }
                },
                "sep1": "---",
                "copy": {
                    name: "复制",
                    disabled: function(key, opt) {
                        return true; //会禁用该菜单项,注意true是禁用
                    }
                },
                "paste": {
                    name: "粘贴(V)",
                    accesskey: 'V',
                }
            }
        };
    }

});
$(document).keydown(function(e) {
    if (e.ctrlKey) {
        if (e.keyCode == 86) {
            console.log('通过快捷键触发粘贴事件');
        }
    }
});

设置Ctrl+C类快捷键提醒的方法:
修改jquery.contextMenu.js方法:
在大概1136行createNameNode方法中增加span标签,样式为context-menu-accesskey-right-快捷键字母

function createNameNode(item) {
    var $name = $('<span></span>');
    if (item._accesskey) {
        // ...
        // 增加右键菜单右侧快捷键说明
        $('<span></span>')
            .addClass('context-menu-accesskey-right-' + item._accesskey)
            .appendTo($name);
    } else {
        // ...
    }
    return $name;
}

然后定义对应样式,如Ctrl+V样式:

.context-menu-accesskey-right-V:after{
  content: "Ctrl+V";
  float: right;
} 

十一、滚动条


1. jQuery custom content scroller


十二、二维码/条形码


1. QRCode.js

2. JsBarcode

  • https://github.com/lindell/JsBarcode
  • 码型丰富、文档清晰、配置项全面
  • 配置项width说明:只能设置single bar的宽度,其实稍微一想发现本来只需要设置single bar的宽度,总宽度自然就固定了,不要试图去设置总宽度,也不要给生成的img、svg、canvas设置宽度,以免造成拉伸模糊甚至无法识别。

猜你喜欢

转载自blog.csdn.net/fukaiit/article/details/100600206