不管是做什么事情,人们习惯在工作中去找方法、找技巧,来帮助提高效率,在软件开发中更是如此。jQuery作为前端开发必学技术之一,在使用中也有各种各样的小技巧,今天小编为大家分享10条必知会的技巧,希望可以帮助大家快速开发前端应用。

1、返回顶部按

减少插件的使用,利用 animate 和 scrollTop 来实现返回顶部的动画:

// Back to top

$('a.top').click(function () {

$(document.body).animate({scrollTop: 0}, 800);

return false;

});

<!-- Create an anchor tag -->

<a class="top" href="www.maiziedu.com">Back to top</a>

通过改变 scrollTop 的值,调整返回距离顶部的距离,而 animate 的第二个参数是执行返回动作需要的时间(单位:毫秒)。

2、预加载图片

如果页面中有很多不可见的图片,比如:hover 效果显示的图片,最好预加载它们:

$.preloadImages = function () {

for (var i = 0; i < arguments.length; i++) {

$('<img>').attr('src', arguments[i]);

}

};

$.preloadImages('img/hover1.png', 'img/hover2.png');

3、 检查图片是否加载完成

在前端的有些页面中,可能需要确保图片加载完成以后再执行后面的操作,那么这么实现:

$('img').load(function () {

console.log('image load successful');

});

当然,在代码中,我们并非一定要用“img”这个字段,你也可以把 img 替换为其他的 ID 或者 class 来检查指定图片是否加载完成。

4、自动修改破损图像

前端显示图像破损是一个比较常见的事情,为避免这类用户体验度不友好的事情发生,你可以用一个不易被替换的图像来代替它们。添加下面这段代码可以节省很多麻烦:

$('img').on('error', function () {

$(this).prop('src', 'img/broken.png');

});

即使你的网站没有破碎的图像链接,添加这段代码也没有任何害处。

5、 鼠标悬停(hover)切换 class 属性

假如当用户鼠标悬停在一个可点击的元素上时,你希望改变其效果,下面这段代码可以在其悬停在元素上时添加 class 属性,当用户鼠标离开时,则自动取消该 class 属性:

$('.btn').hover(function () {

$(this).addClass('hover');

}, function () {

$(this).removeClass('hover');

});

你只需要添加必要的CSS代码即可。如果你想要更简洁的代码,可以使用 toggleClass 方法:

$('.btn').hover(function () {

$(this).toggleClass('hover');

});

注:上述效果的实现,直接使用CSS可能是更好的解决方案,但你仍然有必要知道该方法。

6、禁用 input 字段

有时你可能需要禁用表单的 submit 按钮或者某个 input 字段,直到用户执行了某些操作(例如,检查“已阅读条款”复选框)。可以添加 disabled 属性,直到你想启用它时:

$('input[type="submit"]').prop('disabled', true);

你要做的就是执行 removeAttr 方法,并把要移除的属性作为参数传入:

$('input[type="submit"]').removeAttr('disabled');

7、阻止链接加载

有时你不希望链接到某个页面或者重新加载它,希望它做一些其他事情或者触发一些其他脚本,那么可以通过下面的代码实现:

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

e.preventDefault();

});

8、 切换 fade/slide

fade 和 slide 是我们在 jQuery 中经常使用的动画效果,它们可以使元素显示效果更好。但是如果你希望元素显示时使用第一种效果,而消失时使用第二种效果,则可以这么实现:

// Fade

$('.btn').click(function () {

$('.element').fadeToggle('slow');

});

// Toggle

$('.btn').click(function () {

$('.element').slideToggle('slow');

});

9、简单的手风琴效果

对于手风琴效果,可以通过下述代码,快速简洁的实现:

// 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;

});

10、让两个 DIV 高度相同

有时你需要让两个 div 高度相同,而不管它们里面的内容多少。可以使用下面的代码片段实现:

var $columns = $('.column');

var height = 0;

$columns.each(function () {

if ($(this).height() > height) {

height = $(this).height();

}

});

$columns.height(height);

这段代码会循环一组元素,并设置它们的高度为元素中的最大高。

Web前端之jQuery 的10大操作技巧的更多相关文章

  1. web前端开发常用的10个高端CSS UI开源框架

    web前端开发常用的10个高端CSS UI开源框架   随着人们对体验的极致追求,web页面设计也面临着新的挑战,不仅需要更人性化的设计理念,还需要设计出更酷炫的页面.作为web前端开发人员,运用开源 ...

  2. Python web前端 09 jQuery

    Python web前端 09 jQuery 一.三个重要网址 http://jquery.cuishifeng.cn/ #中文查询网站 http://www.bootcdn.cn/ #引入jq ht ...

  3. Python之Web前端Dom, jQuery

    Python之Web前端: Dom   jQuery ###Dom 一. 什么是Dom? 文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它 ...

  4. [Web 前端] 026 jQuery 初探

    目录 1. jQuery 简介 2. jQuery 的简单操作 2.1 jQuery 选择器 2.1.1 简介 2.1.2 基础选择器 2.2 过滤获取 2.3 父子关系获取 3. jQuery 元素 ...

  5. web前端一览&jQuery

    web前端一览 html:裸体 css:好看的衣服            //通常基于bootstrap魔改 JavaScript:动起来           //通常基于JQuery魔改 jQuer ...

  6. web前端-框架jquery

    1.jquery库 就是js的库 ,可以通过jquery语法简化js操作 ,如文档遍历 ,文档操作 ,事件处理 ,动画js定时器等等 2.引用 下载:https://www.bootcdn.cn/jq ...

  7. Web前端开发JQuery框架

    JQuery 是一个兼容多浏览器支持的JavaScript库,其核心理念是write less,do more(写得更少,做得更多),它是轻量级的js库,兼容CSS3还兼容各种浏览器,需要注意的是后续 ...

  8. [Web 前端] 029 jQuery 元素的“节操”

    目录 jQuery 元素的节点操作 1. 创建节点 2. 插入节点 2.1 在现存元素的内部,从后面插入元素 2.2 在现存元素的内部,从前面插入元素 2.3 在现存元素的外部,从后面插入元素 2.4 ...

  9. Web前端基础——jQuery(一)

    前几天回老家呆了几天,几乎没有怎么学习新的知识,这期间一直有断断续续的看<Java编程思想>,还刷了一些前沿消息,也算没闲着.今天开始学习jQuery啦,继续前进. 在网上查了,买了这本书 ...

随机推荐

  1. Steamroller

    FCC题目:对嵌套的数组进行扁平化处理.你必须考虑到不同层级的嵌套. 示例: steamroller([[["a"]], [["b"]]]) 应该返回 [&qu ...

  2. xp 下查看进程指令

    xp 下快速查看进程及关联 exe 的指令,刚发现,还没有测试 win7 和 win10 支持不支持. wmic process where creationclassname="win32 ...

  3. C#的接口

    什么是接口?其实,接口简单理解就是一种约定,使得实现接口的类或结构在形式上保持一致.个人觉得,使用接口可以使程序更加清晰和条理化,这就是接口的好处,但并不是所有的编程语言都支持接口,C#是支持接口的. ...

  4. Winform 后台将指定的控件集合添加到制定容器中

    /// <summary> /// 把按钮按照行数分割排列 /// </summary> /// <param name="ControlArry"& ...

  5. JMeter 问题

    1.  JMeter 测试计划 测试计划 使用 JMeter 进行测试的起点,是其它 JMeter 测试元件的容器. 线程组 代表一定数量的并发用户,它可以用来模拟并发用户发送请求.实际的请求内容在S ...

  6. Java虚拟机(JVM)以及跨平台原理详细的介绍

    相信大家已经了解到Java具有跨平台的特性,可以"一次编译,到处运行",在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的.那么,跨平台是 ...

  7. 移动端 Web 开发前端知识整理

    文章来源: http://www.restran.net/2015/05/14/mobile-web-front-end-collections/ 最近整理的移动端 Web 开发前端知识,不定期更新. ...

  8. php ob_flush 和flush

    “ob_flush()和flush()的区别.前者是把数据从PHP的缓冲中释放出来,后者是把不在缓冲中的或者说是被释放出来的数据发送到浏览器.所以当缓冲存在的时候,我们必须ob_flush()和flu ...

  9. JS 循环给li绑定参数不同的点击事

    以下内容纯属个人理解,不正确的地方还请大神留言,不胜感激! 源代码:(按个人方式选用一种即可) <ul> <li>1</li> <li>2</li ...

  10. SpringMVC学习记录2

    废话 最近在看SpringMVC...里面东西好多...反正东看一点西看一点吧... 分享一下最近的一些心得..是关于DispatcherServlet的 DispatcherServlet与Cont ...