jquery常用的12个小功能


Posted in Javascript onJuly 22, 2016

jquery12个常用功能极好的,快来围观!

返回顶部
使用JQuery的animate和scrollTop方法可以创建简单地返回顶部的动画:

// Back to top
$('a.top').click(function (e) {
 e.preventDefault();
 $(document.body).animate({scrollTop: 0}, 800);
});

HTML中得有一个按钮:

<!-- Create an anchor tag -->
<a class="top" href="#">Back to top</a>

可以改变scrollTop的值来定位滚动条的位置。

图片预加载
如果页面使用了很多不是最初加载便可见的图片,有必要进行预加载:

$.preloadImages = function () {
 for (var i = 0; i < arguments.length; i++) {
 $('img').attr('src', arguments[i]);
 }
};
$.preloadImages('img/hover-on.png', 'img/hover-off.png');

判断图片是否完全加载
有时需要图片完全加载才能进行后面的操作,下面的这段脚本可以实现:

$('img').load(function () {
 console.log('image load successful');
});

你也可以通过带id或者class的img标签来判断某张特定的图片是否完全加载

自动修复损坏图片
如果图片损坏,可以用另外一张进行替换:

$('img').on('error', function () {
 $(this).prop('src', 'img/broken.png');
});

Hover状态的类切换
当用户的鼠标指针悬浮在一个可以点击的元素上时,你可以通过添加一个class改变它的视觉效果,鼠标指针离开该元素时,就移开刚刚添加的class:

$('.btn').hover(function () {
 $(this).addClass('hover');
 }, function () {
 $(this).removeClass('hover');
 });

一个更简单的方式是使用toggleClass:

$('.btn').hover(function () {
 $(this).toggleClass('hover');
});

Note: CSS may be a faster solution in this case but it's still worthwhile to know this.输入框的不可编辑
有时,你想要表单的提交按钮或者文本框变的不可编辑,直到用户完成某个特定的动作,通过修改input元素的disabled属性来实现:
$('input[type="submit"]').prop('disabled', true);
再次调用prop方法将disabled值改为false,就可以更改元素状态:
$('input[type="submit"]').prop('disabled', false);

停止链接加载
若你不想点击链接跳转到另一个页面或者重新加载页面,仅仅只想让它做点别的事情,如触发其它脚本,则需要阻止链接的默认行为:

$('a.no-link').click(function (e) {
 e.preventDefault();
});

Fade/Slide切换
Slideing 和 fading 是很常用的 JQuery 动画。如果你想要在用户产生点击事件时显示一个元素,可以用fadeIn或者slideDown,若要实现第一次点击显示元素而第二次点击隐藏元素的效果,可以参考下面的脚本:

// Fade
$('.btn').click(function () {
 $('.element').fadeToggle('slow');
});
// Toggle
$('.btn').click(function () {
 $('.element').slideToggle('slow');
});

简单地手风琴
下面的这段脚本可以简单实现手风琴效果:

// Close all panels
$('#accordion').find('.content').hide();
// Accordion
$('#accordion').find('.accordion-header').click(function () {
 var next = $(this).next();
 next.slideToggle('fast');
 $('.content').not(next).slideUp('fast');
 return false;
});

让两个Div等高
有时,需要让两个Div保持等高,而不管两个Div的内容如何:

$('.div').css('min-height', $(.main-div).height());
var $columns = $('.column');
var height = 0;
$columns.each(function () {
 if ($(this).height() > height) {
 height = $(this).height();
 }
});
$columns.height(height);

在上述的示例中,会循环一个元素集合,并将元素的高度设置成元素集合中高度最高的。若要所有 column 保持同样地高度,则可以这样:

var $rows = $('.same-height-columns');
$rows.each(function () {
 $(this).find('.column').height($(this).height());
});

在新的Tab/Window打开外链
在浏览器的新Tab/Window打开外链,并且在同一个Tab/Window打开同源的链接:

$('a[href^="http"]').attr('target','_blank');
$('a[href^="//"]').attr('target','_blank');
$('a[href^="'+window.location.origin+'"]').attr('target','_self');

Note: window.location.origin doesn't work in IE10. This fix takes care of the issue.
通过文本查找元素
利用 JQuery 的contains()选择器可以查找一个包含特定文本的元素,如果文本不存在,元素则隐藏:

var search = $('#search').val();
$('div:not(:contains("'+search+'"))').hide();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 一个自定义长度的文本自动换行的函数
Aug 19 Javascript
jQuery.clean使用方法及思路分析
Jan 07 Javascript
js获取元素外链样式的方法
Jan 27 Javascript
Bootstrap每天必学之标签与徽章
Nov 27 Javascript
探寻JavaScript中this指针指向
Apr 23 Javascript
AngularJs IE Compatibility 兼容老版本IE
Sep 01 Javascript
js实现文件上传功能 后台使用MultipartFile
Sep 08 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
Oct 12 Javascript
JavaScript实现学生在线做题计时器功能
Dec 05 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
Apr 25 Javascript
前端vue+elementUI如何实现记住密码功能
Sep 20 Javascript
小程序实现点击tab切换左右滑动
Nov 16 Javascript
BootStrap 附加导航组件
Jul 22 #Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
Jul 22 #Javascript
Select下拉框模糊查询功能实现代码
Jul 22 #Javascript
jQuery Select下拉框操作小结(推荐)
Jul 22 #Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
Jul 22 #Javascript
JQuery 设置checkbox值二次无效的解决方法
Jul 22 #Javascript
jQuery 自定义下拉框(DropDown)附源码下载
Jul 22 #Javascript
You might like
Linux Apache PHP Oracle 安装配置(具体操作步骤)
2013/06/17 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
select组合框option的捕捉实例代码
2008/09/30 Javascript
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
谈谈JS中的!!
2017/12/07 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
vue将单页面改造成多页面应用的方法
2018/11/25 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
python求众数问题实例
2014/09/26 Python
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
python能开发游戏吗
2020/06/11 Python
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
2016/11/22 面试题
成人毕业生自我鉴定
2013/10/18 职场文书
成绩单公证书
2014/04/10 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
Python代码实现双链表
2022/05/25 Python