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 相关文章推荐
JQuery 表单中textarea字数限制实现代码
Dec 07 Javascript
js 三级关联菜单效果实例
Aug 13 Javascript
jquery操作HTML5 的data-*的用法实例分享
Aug 17 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
Mar 31 Javascript
jQuery实现不断闪烁文字的方法
May 15 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
Jun 16 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
Dec 08 Javascript
node中间层实现文件上传功能
Jun 11 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
Oct 23 Javascript
小程序实现授权登陆的解决方案
Dec 02 Javascript
JS画布动态实现黑客帝国背景效果
Nov 08 Javascript
解决vue页面刷新,数据丢失的问题
Nov 24 Vue.js
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
如何在PHP中使用Oracle数据库(1)
2006/10/09 PHP
如何隐藏你的.php文件
2007/01/04 PHP
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
jquery 将disabled的元素置为enabled的三种方法
2009/07/25 Javascript
innerText和textContent对比及使用介绍
2013/02/27 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
2016/11/02 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
python重试装饰器示例
2014/02/11 Python
Python实现发送email的几种常用方法
2014/08/18 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
Python tkinter模版代码实例
2020/02/05 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
使用OpenCV对车道进行实时检测的实现示例代码
2020/06/19 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
python中如何使用虚拟环境
2020/10/14 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
简短证婚人证婚词
2014/01/09 职场文书
蓝颜请假条
2014/04/11 职场文书
拆迁委托协议书
2014/09/15 职场文书
邀请函样本
2015/02/02 职场文书
举起手来观后感
2015/06/09 职场文书
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript