1. jQuery鼠标滚轮事件插件Mouse Wheel

  下载链接:https://github.com/brandonaaron/jquery-mousewheel/

  使用方法:

// using bind
$('#my_elem').bind('mousewheel', function(event, delta) {
console.log(delta);
}); // using the event helper
$('#my_elem').mousewheel(function(event, delta) {
console.log(delta);
});

  要注意的是回调函数的第二个参数delta,它响应滚轮的方向,当为负数时表示向下滚动,为正则表示向上滚动。

2. javascript路由插件

  Crossroads.js, Director.js或是Sammy.js

  推荐Crossroads.js  使用详情google或百度

3. 复制到剪切板插件 zeroclipboard   

  下载地址:http://zeroclipboard.org/

  使用方法: 

<div id="click" data-clipboard-text="111111111111">点我复制</div>
if($.browser.msie){
$("#click").click(function(){
var text = $("#click").attr("data-clipboard-text");
clipboardData.setData("Text",text);
});
}else{
window.client = new ZeroClipboard( $("#click"));
}

4. jQuery 实现标点内容自动保存插件sisyphus.js

  下载地址:http://sisyphus-js.herokuapp.com/

  实用方法:$('form').sisyphus(); 

  设置选项,用户可随意进行设置:

  customKeyPrefix:自定义本地存储文件头

  timeout:间隔多长时间对数据进行自动保存。如果设置为0,那么所以字段更改都将被自动保存

  onSave:每次数据自动保存到本地存储将触发的函数。

  onRestore:如果数据从本地存储被恢复,触发的函数。

  onBeforeRestore:数据从本地存储恢复之前被触发。  该函数只触发一次

  onRelease:本地存储清空之前将触发该函数。

  autoRelease:设置本地自动保存的表单数据是否在表单提交或者重置的时候自动清空。 如果设置为false,为自己手动擦除本地存储的数据,插件专门提供了    manuallyReleaseData方法进行擦除。

  excludeFields:从选定的表单中排除指定的字段。如$( "textarea, :text" )

  name:表单的识别部分。sisyphus本地存储表单文件的名称。默认情况下为当前页面URL地址,是一个确定值。如果一个页面有多个地址,为了获取一致的数据,请设置一个唯一的name值。

  例如:下面的代码将对当前页面所有表单每5秒自动进行数据保存:

  $('form').sisyphus({timeout: 5});

5. placeholder插件

  百度很多这个插件有的ie不管用下面这个是ie有用的

/*! http://mths.be/placeholder v2.0.8 by @mathias */
;(function(window, document, $) { // Opera Mini v7 doesn’t support placeholder although its DOM seems to indicate so
var isOperaMini = Object.prototype.toString.call(window.operamini) == '[object OperaMini]';
var isInputSupported = 'placeholder' in document.createElement('input') && !isOperaMini;
var isTextareaSupported = 'placeholder' in document.createElement('textarea') && !isOperaMini;
var prototype = $.fn;
var valHooks = $.valHooks;
var propHooks = $.propHooks;
var hooks;
var placeholder; if (isInputSupported && isTextareaSupported) { placeholder = prototype.placeholder = function() {
return this;
}; placeholder.input = placeholder.textarea = true; } else { placeholder = prototype.placeholder = function() {
var $this = this;
$this
.filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]')
.not('.placeholder')
.bind({
'focus.placeholder': clearPlaceholder,
'blur.placeholder': setPlaceholder
})
.data('placeholder-enabled', true)
.trigger('blur.placeholder');
return $this;
}; placeholder.input = isInputSupported;
placeholder.textarea = isTextareaSupported; hooks = {
'get': function(element) {
var $element = $(element); var $passwordInput = $element.data('placeholder-password');
if ($passwordInput) {
return $passwordInput[0].value;
} return $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value;
},
'set': function(element, value) {
var $element = $(element); var $passwordInput = $element.data('placeholder-password');
if ($passwordInput) {
return $passwordInput[0].value = value;
} if (!$element.data('placeholder-enabled')) {
return element.value = value;
}
if (value == '') {
element.value = value;
// Issue #56: Setting the placeholder causes problems if the element continues to have focus.
if (element != safeActiveElement()) {
// We can't use `triggerHandler` here because of dummy text/password inputs :(
setPlaceholder.call(element);
}
} else if ($element.hasClass('placeholder')) {
clearPlaceholder.call(element, true, value) || (element.value = value);
} else {
element.value = value;
}
// `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363
return $element;
}
}; if (!isInputSupported) {
valHooks.input = hooks;
propHooks.value = hooks;
}
if (!isTextareaSupported) {
valHooks.textarea = hooks;
propHooks.value = hooks;
} $(function() {
// Look for forms
$(document).delegate('form', 'submit.placeholder', function() {
// Clear the placeholder values so they don't get submitted
var $inputs = $('.placeholder', this).each(clearPlaceholder);
setTimeout(function() {
$inputs.each(setPlaceholder);
}, 10);
});
}); // Clear placeholder values upon page reload
$(window).bind('beforeunload.placeholder', function() {
$('.placeholder').each(function() {
this.value = '';
});
}); } function args(elem) {
// Return an object of element attributes
var newAttrs = {};
var rinlinejQuery = /^jQuery\d+$/;
$.each(elem.attributes, function(i, attr) {
if (attr.specified && !rinlinejQuery.test(attr.name)) {
newAttrs[attr.name] = attr.value;
}
});
return newAttrs;
} function clearPlaceholder(event, value) {
var input = this;
var $input = $(input);
if (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) {
if ($input.data('placeholder-password')) {
$input = $input.hide().next().show().attr('id', $input.removeAttr('id').data('placeholder-id'));
// If `clearPlaceholder` was called from `$.valHooks.input.set`
if (event === true) {
return $input[0].value = value;
}
$input.focus();
} else {
input.value = '';
$input.removeClass('placeholder');
input == safeActiveElement() && input.select();
}
}
} function setPlaceholder() {
var $replacement;
var input = this;
var $input = $(input);
var id = this.id;
if (input.value == '') {
if (input.type == 'password') {
if (!$input.data('placeholder-textinput')) {
try {
$replacement = $input.clone().attr({ 'type': 'text' });
} catch(e) {
$replacement = $('<input>').attr($.extend(args(this), { 'type': 'text' }));
}
$replacement
.removeAttr('name')
.data({
'placeholder-password': $input,
'placeholder-id': id
})
.bind('focus.placeholder', clearPlaceholder);
$input
.data({
'placeholder-textinput': $replacement,
'placeholder-id': id
})
.before($replacement);
}
$input = $input.removeAttr('id').hide().prev().attr('id', id).show();
// Note: `$input[0] != input` now!
}
$input.addClass('placeholder');
$input[0].value = $input.attr('placeholder');
} else {
$input.removeClass('placeholder');
}
} function safeActiveElement() {
// Avoid IE9 `document.activeElement` of death
// https://github.com/mathiasbynens/jquery-placeholder/pull/99
try {
return document.activeElement;
} catch (exception) {}
} }(this, document, jQuery));

placeholder.js

  使用方法:

  添加css样式:   .placeholder { color: #aaa; }

  js代码:  $('input, textarea').placeholder();
 

 6. js获取系统时间 

  代码:

/**
* get current time form the servers
* @example
* var time=new sysDate()
* time.done(function(timeStamp){
* console.log(timeStamp);
* })
*/
(function(root, factory) {
'use strict';
var sysDate = function() {
return sysDate.init.apply(sysDate, arguments);
};
factory(sysDate);
if (typeof define === 'function' && (define.amd || define.cmd)) {
define(function( /*require, exports*/ ) {
return sysDate;
});
} else {
root.sysDate = sysDate;
}
})(this, function(exp) {
'use strict';
exp.config = {
url: '/'
};
exp.init = function() {
//the first arouments can be:
//{url:'/xxx'}
var arg = arguments[0];
if (typeof(arg) == 'object') {
for (var i in arg) {
exp.config[i] = arg[i];
}
}
exp.get();
return exp;
};
exp.get = function() {
//use xmlhttp to get data form the server
//save to config.lastDate
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
var sysD = xmlhttp.getResponseHeader('Date');
sysD = new Date(sysD);
sysD = Date.parse(sysD);
if (exp.doneFn) {
exp.doneFn(sysD);
}
exp.config.lastDate = sysD;
}
};
exp.done = function(fn) {
if (exp.config.lastDate) {
if (fn) fn(exp.config.lastDate);
} else {
exp.doneFn = fn;
}
};
xmlhttp.open('GET', exp.config.url, true);
xmlhttp.send();
};
});

sysDate

  使用方法:

var a=sysDate(option); // 可选字段option, {'url':'/getDate'} 
a.done(function(data){ console.log('done',data); // 服务器时间 data 1385003673000' });

  详细介绍请看:http://www.zhuwenlong.com/blog/53a9475819a5a13617000001

 7. 实现网页截屏html2canvas

  下载地址:https://github.com/niklasvh/html2canvas

  使用方法:

<script type="text/javascript">
    function howuse(){
      html2canvas(document.getElementById('email_content'), {
        onrendered: function(canvas){
var html_canvas = canvas.toDataURL();
$.post('/report/send_rep_submit', {html_canvas:html_canvas}, function(json){
}, 'json');
}
});
    }
  </script>

  可以这样查看图片:利用canvas.toDataURL();得到的是base64图片数据

<img src=“data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNo8zjsOxCAMBFB/KEAUFFR0Cbng3nQPw68ArZdAlOZppPFIBhH5EAB8b+Tlt9MYQ6i1BuqFaq1CKSVcxZ2Acs6406KUgpt5/LCKuVgz5BDCSb13ZO99ZOdcZGvt4mJjzMVKqcha68iIePB86GAiOv8CDADlIUQBs7MD3wAAAABJRU5ErkJggg%3D%3D”/>

 8、number插件,只允许输入数字

  下载地址 https://github.com/teamdf/jquery-number

  

JS实用插件的更多相关文章

  1. Underscore.js实用插件

    Underscore 是一个 JavaScript 工具库,它提供了一整套函数式编程的实用功能,但是没有扩展任何 JavaScript 内置对象. 他解决了这个问题:“如果我面对一个空白的 HTML ...

  2. js模版引擎handlebars.js实用教程

    js模版引擎handlebars.js实用教程 阅读本文需要了解基本的Handlebars.js概念,本文并不是Handlebars.js基础教程,而是注重于实际应用,为读者阐述使用过程中可能会遇到的 ...

  3. Notyf - 超级简单、响应式的 JS 通知插件

    通知是网站的常用功能之一,可以用来显示消息.通告.提示等等.Notyf 是一款超级简单.响应式的 JS 通知插件,不依赖 jQuery 库,可以独立使用.赶紧试用一下吧! 在线演示      免费下载 ...

  4. js日期插件bootstrap-datetimepicker的使用

    js日期插件——bootstrap-datetimepicker的使用心得: 在大多说的web项目中,都有日期选择器的使用.如果自己写一个日期选择器的话,费时又费力,而且不一定能写出来_(:3 」∠) ...

  5. Sublime Text 2 JS 格式化插件 JsFormat的配置使用

    (转自http://www.jb51.net/softjc/178401.html) 这里下载这插件包 https://github.com/jdc0589/JsFormat ,点油下角的zip就能下 ...

  6. Django 的css和js压缩插件:django_compressor

    今天尝试了django_conpressor,一个在django框架中压缩css和js的插件,灰常有用 我把它加载在我的base的HTML template中,原来未经压缩的css和js是: < ...

  7. Android Studio 实用插件整理

    首先说一下安装方法: 上图片: 首先点击Android stuido 菜单 File->Settings 进入上图界面: 区域1:你当前已经安装了的插件 区域3:在线安装 区域2:其实和区域3是 ...

  8. Notepad++ 几款实用插件简介,让你的 Notepad++ 如虎添翼

    Notepad++ 是一款非常优秀的文本编辑器,非常适合编辑源代码.Notepad++ 安装时已经附带有 Compare 等优秀插件,通过其 Plugin Manager 可以下载更多实用插件. 一. ...

  9. knob.js进度插件

    关于knob.js进度插件的使用 关于这个插件,妹的,第一次使用坑死爹了,各种不会,幸亏我有持之以恒的精神,最终还是让其臣服于我的胯下.... 1.  引入 head  部分添加knob.js,同时引 ...

随机推荐

  1. java日期格式汇总

    日期格式汇总 转载 2017年05月23日 17:22:25 DateFormat     java.text.DateFormat public abstract class DateFormat ...

  2. android 休眠状态下 后台数据上传

    下面来说一下黑屏情况下传递数据: 要实现程序退出之后,仍然可以传递数据,请求网络,必须采用service,service可以保持在后台一直运行,除非系统资源极其匮乏,否则一般来说service是不会被 ...

  3. 使用CompletionService批处理任务(线程池阻塞线程)

    CompletionService ExecutorService BlockingQueueFuture 如果你向Executor提交了一个批处理任务,并且希望在它们完成后获得结果.为此你可以保存与 ...

  4. poj1363 Rails Central Europe 1997

    P.S.: 输出换行 三个方法 1.直接按照要求做 根据给的数,需要push,pop哪些数据,具有唯一性 数最多进栈一次,出栈一次 O(n) Source Code Problem: User: co ...

  5. linux下phpstudy安装

    linux下phpstudy安装 一.总结 一句话总结: 就是下载然后一步步用指令安装即可 二.linux下phpstudy安装 参考:linux下phpstudy安装https://www.cnbl ...

  6. 委托_deleget

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. QT 获取文件的路径、打开文件的弹出对话框

    1.打开获取文件夹路径的对话框 QString filePath = QFileDialog::getExistingDirectory(this, "请选择文件保存路径...", ...

  8. 深入分析Service启动、绑定过程

    Service是Android中一个重要的组件,它没有用户界面,可以运行在后太做一些耗时操作.Service可以被其他组件启动,甚至当用户切换到其他应用时,它仍然可以在后台保存运行.Service 是 ...

  9. Object 和Throwable

    Object java.lang.Object 所有类的超类 Object里面有的方法所有的类都有 Object方法: String toString() 返回对象的字符串表现形式  类名 + @ + ...

  10. 拦截器(Interceptor)与过滤器(Filter)的区别

    转自:https://www.jianshu.com/p/cf088baa9b04 过滤器,是在java web中将你传入的request.response提前过滤掉一些信息,或者提前设置一些参数.然 ...