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. Delphi屏幕截图的实现

    首先要获得设备环境的句柄,可以通过GetDC函数来获得,对于这个函数,MSDN上是这样说明的 The GetDC function retrieves a handle to a device con ...

  2. .NETFramework-Web.Mvc:HttpXxxAttribute-目录

    ylbtech-.NETFramework-Web.Mvc:HttpXxxAttribute-目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返 ...

  3. getResourceAsStream的几种路径配置(properties文件的路径问题)

    文章目录 getResourceAsStream有以下几种: getResourceAsStream有以下几种: Class.getResourceAsStream(String path) : pa ...

  4. JS 内置对象 String对象

    JS内置对象   String对象:字符串对象,提供了对字符串进行操作的属性和方法.   Array对象:数组对象,提供了数组操作方面的属性和方法.   Date对象:日期时间对象,可以获取系统的日期 ...

  5. Spring有关面试问题

    问题清单: 什么是Spring框架?Spring框架有哪些主要模块? 使用Spring框架有什么好处? 什么是控制反转(IOC)?什么是依赖注入? 请解释下Spring中的IOC? BeanFacto ...

  6. day 64 Django基础十之Form和ModelForm组件

    Django基础十之Form和ModelForm组件   本节目录 一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 Mod ...

  7. Mysql图解安装向导

    注:本次安装为解压缩版: 1.设置Mysql环境变量: MYSQL_HOME: D:\Java\MySql\mysql-5.7.9-winx64 PATH: %MYSQL_HOME%\bin; 2.安 ...

  8. springcloud ribbon Finchley 版本,自定义算法

    引用上一个项目,在原有的基础上进行更改,添加springcloud的内荣. eureka-server 和上一个springcloud eureka的一样,没有改动. 添加cloud-api pack ...

  9. Aria2配置文件-aria2.conf

    ##此部分主要分为几部分###1.文件保存#2.下载链接#3.进度保存#4.RPC相关#5.BT\PT下载相关 ##===================================#### 文件 ...

  10. [转]使用TortoiseGit处理代码冲突

    场景一  user0 有新提交 user1 没有pull -> 写新代码 -> pull -> 提示有冲突   解决办法一 -> stash save(把自己的代码隐藏存起来) ...