jQuery的存在,让学习前端开发的人感到前端越来越容易入门了,用简单的几行代码就可以实现需求,但是,你真的会用jQuery么,当代码运行 后无法看到自己预期的效果,是不是觉得jQuery出了问题,其实,问题还是出在了自己会不会用上面。下面列举一些开发中经常遇到的应用实例,发现一下另 一个不同的jQuery世界。

回到顶部按钮

利用jQuery里的animate和scrollTop方法,你便不需要使用插件创建简单的滚动到顶部动画。

$('.top').click(function(e){  e.preventDefault();  $('html, body').animate({scrollTop:0},800);});

通过scrollTop的值来改变你想要滚动到的位置。其实你就是做了:在接下来的800毫秒中让页面滚动,直到它滚动到文档的顶部。

图片预加载

如果你的网页使用了很多隐藏图片文件(例如:鼠标悬停展示的图片),那么图片的预加载是有意义的:

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

判断图片是否加载完

有时候你可能需要检查图像是否已经加载完成,以便于可以继续执行相应的js代码:

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

曾经遇到过的使用场景:有些元素需要按图片的实际尺寸来设置其大小,以绝对布置方式放置。元素的大小设置可以在图片加载完成后计算。

自动修补破损图像

如果你碰巧发现在你的网站上发现破损的图像链接,一个个去替代他们是痛苦的。这个简单的代码可以节省很多的麻烦:

$('img').on('error',function(){if(!$(this).hasClass('broken-image')) {    $(this).prop('src','img/broken.png').addClass('broken-image');  }});

即使你没有任何断开的链接,加入这代码也不会有任何影响。

禁用输入

有时你可能需要用表单的提交按钮或者某个输入框直到用户执行了某个动作(比如:检查“我已阅读条款”复选框)。在你的输入框上设置disabled属性,然后当你需要的时候启用该属性:

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

你需要做的只是需要在输入框上再次运行prop方法,但设置的被禁用值是false:

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

对地不了解prop函数的jQuery开发者来说,最常使用的是attr函数,可能开发很多程序都没有发现什么问题,但是,在开发例如 checkbox、radio、select时,会发现使用attr无法让属性生效,以为是jQuery的bug,下面来说说attr和prop的使用建 议:

在遇到要获取或设置checked,selected,readonly和disabled等属性时,用prop方法显然更好

使两个DIV同等高度

有时你会想要两个DIV有相同的高度,无论他们都有什么内容:

$('.div').css('min-height', $('.main-div').height());

这个例子设置了DIV的最小高度,这意味着它的高度只可以比这个设置的高度大而不能小。然而,一个更灵活的方法是循环的一组元素,并设置将最高元素的高度作为高度:

var$columns = $('.column');varheight =0;$columns.each(function(){if($(this).height() > height) {    height = $(this).height();  }});$columns.height(height);

如果你想要所有的列有相同的高度:

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

根据文本获取元素

通过jQuery中的contains()选择器,你能找到一个元素内的文本内容。如果文本不存在,则这个元素将被隐藏:

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

可见变化的触发

当用户不再聚焦或者重新聚焦一个标签时触发javascript脚本:

$(document).on('visibilitychange',function(e){if(e.target.visibilityState ==="visible") {console.log('Tab is now in view!');  }elseif(e.target.visibilityState ==="hidden") {console.log('Tab is now hidden!');  }});

欢迎关注我的公众号(同步更新文章):DoNet技术分享平台

阅读原文

你应该知道的jQuery技巧【收藏】相关推荐

  1. (译)你应该知道的jQuery技巧

    帮助提高你jQuery应用的简单小技巧. 回到顶部按钮 图片预加载 判断图片是否加载完 自动修补破损图像 Hover切换class类 禁用输入 停止正在加载的链接 toggle fade/slide ...

  2. [css] 举例说明你知道的css技巧有哪些?

    [css] 举例说明你知道的css技巧有哪些? /* 等比例容器 */ .ratio { position: relative; display: block; } .ratio:before { c ...

  3. 为数不多的人知道的 Kotlin 技巧及解析(三)

    本文没有什么奇淫技巧,都是一些在实际开发中常用的技巧 Google 引入 Kotlin 的目的就是为了让 Android 开发更加方便,自从官宣 Kotlin 成为了 Android 开发的首选语言之 ...

  4. 8个老手都不一定知道的sketch技巧

    Sketch老手都不一定知道的sketch小技巧 001.拖动和删除样式 让我们从一个简单的技巧开始.如果要删除样式属性(如模糊或填充),只需从中删除即可"检查器"把面板拖到画板里 ...

  5. 几个超级实用但很少人知道的 VS 技巧[更新]

    大家好,今天分享几个我知道的实用 VS 技巧,而这些技巧我发现很多人都不知道.因为我经常在工作中遇到:我在同事电脑上解决问题,或在会议上演示代码示例时,使用了一些 VS "骚"操作 ...

  6. 应该知道的Linux技巧

    这篇文章来源于Quroa的一个问答<What are some time-saving tips that every Linux user should know?>-- Linux用户 ...

  7. 【coolshell酷壳】应该知道的Linux技巧

    原文:http://coolshell.cn/articles/8883.html 这篇文章来源于Quroa的一个问答<What are some time-saving tips that e ...

  8. [转载]每个极客都应该知道的Linux技巧

    本文由 伯乐在线 - 欣仔 翻译自 TuxRadar Linux.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. 是什么区分开普通的Linux用户和超级极客的呢?很简单:用在学习那些使长时工作转变 ...

  9. 10个你未必知道的CSS技巧与14种cssdiv中基本滤镜介绍

    2019独角兽企业重金招聘Python工程师标准>>> 1.CSS字体属性简写规则 一般用CSS设定字体属性是这样做的: font-weight:bold; font-style:i ...

最新文章

  1. ORACLE 12C CDB中PDB参数管理机制
  2. [日期工具分享][Shell]为特定命令依次传入顺序日期执行
  3. VC2005中依然没有Refactoring和Code Expansion.
  4. Windows Server Backup 裸机恢复
  5. Java 中实现定时服务 在ssh框架中跟普通工程里面创建的方式
  6. Springmvc架构详解
  7. AI算法工程师手册!
  8. 互联网架构设计漫谈 (2)
  9. vim搜索设置高亮:set hlsearch
  10. 5G 时代真的来了,你准备好了吗?
  11. Android应用快捷方式
  12. 【引用】男人爱你的三个细节
  13. Linux设备驱动 | LED字符设备驱动(platform平台总线)
  14. 修复常见ACPI问题(DSDT等)
  15. 输入网络密码来进入共享计算机,Win7系统与其他电脑共享文件提示输入网络密码如何解决...
  16. java判断对象属性为空_Java判断对象属性全为空
  17. js判断android手机浏览器,【笔记】js判断移动端系统及浏览器
  18. 【今日学长】来自柚子帮学长--留学生自用英语写作润色工具分享
  19. u盘锁定计算机,u盘锁电脑的方法介绍【图解】
  20. 个人作品——豆瓣FM客户端

热门文章

  1. linux_NandFlash_driver_超详细分析 .
  2. get_metrology_object_result 获取计量模型的测量结果
  3. C#中数据流(文件流、内存流、网络流等)相关知识点梳理
  4. 史上超全halcon常见3D算子汇总(一)
  5. linux安装VScode
  6. 功率信号与能量信号的超棒理解!
  7. AD20学习笔记4---网表导入及模块化布局设计
  8. yunos5 linux内核,魅蓝5S、魅蓝5对比看差异 选Android还是YunOS?
  9. halcon区域腐蚀膨胀算子_Halcon算子
  10. 2/19 福建四校联考