非常实用的12个jquery代码片段


Posted in Javascript onNovember 02, 2015

jQuery里提供了许多创建交互式网站的方法,在开发Web项目时,开发人员应该好好利用jQuery代码,它们不仅能给网站带来各种动画、特效,还会提高网站的用户体验。

本文收集了12段非常实用的jQuery代码片段,你可以直接复制黏贴到代码里,但请开发者注意了,要理解代码再使用哦。下面就让我们一起来享受jQuery代码的魅力之处吧。

1. 导航菜单背景切换效果

在项目的前端页面里,相对于其它的导航菜单,激活的导航菜单需要设置不同的背景。这种效果实现的方式有很多种,下面是使用JQuery实现的一种方式:

<ul id='nav'>
  <li>导航一</li>
  <li>导航二</li>
  <li>导航三</li>
</ul>
//注意:代码需要修饰完善
$('#nav').click(function(e) {
 // 要知道siblings的使用
$(e.target).addClass('tclass').siblings('.tclass').removeClass('tclass');;
  });

2.反序访问JQuery对象里的元素

在某些场景下,我们可能需要反序访问通过JQuery选择器获取到的页面元素对象,这个怎么实现呢?看下面代码:

//要掌握JQuery对象的get方法 以及数组的reverse方法即可
var arr = $('#nav').find('li').get().reverse();
$.each(arr,function(index,ele){
   .... ...
 });

3.访问IFrame里的元素

在大多数情况下,IFrame并不是好的解决方案,但由于各种原因,项目中确实用到了IFrame,所以你需要知道怎么去访问IFrame里的元素

var iFrameDOM = $("iframe#someID").contents();
//然后,就可以通过find方法来遍历获取iFrame中的元素了
iFrameDOM.find(".message").slideUp();

4. 管理搜索框的值

现在各大网站都有搜索框,而搜索框通常都有默认值,当输入框获取焦点时,默认值消失。而一旦输入框失去焦点,而输入框里又没有输入新的值,输入框里的值又会恢复成默认值,如果往输入框里输入了新值,则输入框的值为新输入的值。这种特效用JQuery很容易实现:

$("#searchbox")
  .focus(function(){$(this).val('')})
  .blur(function(){
    var $this = $(this);
   // '请搜索...'为搜索框默认值
   ($this.val() === '')? $this.val('请搜索...') : null;
 });

5.部分页面加载更新

为了提高web性能,有更新时我们通常不会加载整个页面,而只是仅仅更新部分页面内容,如图片的延迟加载等。页面部分刷新的特效在JQuery中也很容易实现:

setInterval(function() {  //每隔5秒钟刷新页面内容
   //获取的内容将增加到 id为content的元素后
   $("#content").load(url);
 }, 5000);

6.采用data方法来缓存数据

在项目中,为了避免多次重复的向服务器请求数据,通常会将获取的数据缓存起来以便后续使用。通过JQuery可以很优雅的实现该功能:

var cache = {};
 $.data(cache,'key','value'); //缓存数据
 //获取数据
 $.data(cache,'key');

7.采配置JQuery与其它库的兼容性

如果在项目中使用JQuery,$ 是最常用的变量名,但JQuery并不是唯一一个使用$作为变量名的库,为了避免命名冲突,你可以按照下面方式来组织你的代码:

//方法一: 为JQuery重新命名为 $j

var $j = jQuery.noConflict();
$j('#id').... 
//方法二: 推荐使用的方式

(function($){
  $(document).ready(function(){
    //这儿,你可以正常的使用JQuery语法
  });
})(jQuery);

8.克隆table header到表格的最下面

为了让table具有更好的可读性,我们可以将表格的header信息克隆一份到表格的底部,这种特效通过JQuery就很容易实现:

var $tfoot = $('<tfoot></tfoot>'); 
$($('thead').clone(true, true).children().get().reverse()).each(function(){
  $tfoot.append($(this));
});
$tfoot.insertAfter('table thead');

9. 根据视窗(viewport)创建一个全屏宽度和高度(width/height)的div

下面代码完全可以让你根据viewport创建一个全屏的div。这对在不同窗口大小下展示modal或对话框时非常有效:

$('#content').css({
  'width': $(window).width(),
  'height': $(window).height(),
});
// make sure div stays full width/height on resize
$(window).resize(function(){
  var $w = $(window);
  $('#content').css({
   'width': $w.width(),
   'height': $w.height(),
  });
});

10 测试密码的强度

在某些网站注册时常常会要求设置密码,网站也会根据输入密码的字符特点给出相应的提示,如密码过短、强度差、强度中等、强度强等。这又是怎么实现的呢?看下面代码:

<input type="password" name="pass" id="pass" /> 
<span id="passstrength"></span>
//下面的正则表达式建议各位收藏哦,项目上有可能会用得着
$('#pass').keyup(function(e) {
   //密码为八位及以上并且字母数字特殊字符三项都包括
   var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
 //密码为七位及以上并且字母、数字、特殊字符三项中有两项,强度是中等 
   var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
   var enoughRegex = new RegExp("(?=.{6,}).*", "g");
   if (false == enoughRegex.test($(this).val())) {
       $('#passstrength').html('More Characters');
   } else if (strongRegex.test($(this).val())) {
       $('#passstrength').className = 'ok';
       $('#passstrength').html('Strong!');
   } else if (mediumRegex.test($(this).val())) {
       $('#passstrength').className = 'alert';
       $('#passstrength').html('Medium!');
   } else {
       $('#passstrength').className = 'error';
       $('#passstrength').html('Weak!');
   }
   return true;
});

11.使用JQuery重绘图片的大小

关于图片大小的重绘,你可以在服务端来实现,也可以通过JQuery在客户端实现。

$(window).bind("load", function() {
   // IMAGE RESIZE
   $('#product_cat_list img').each(function() {
     var maxWidth = 120;
     var maxHeight = 120;
     var ratio = 0;
     var width = $(this).width();
     var height = $(this).height();
     if(width > maxWidth){
      ratio = maxWidth / width;
      $(this).css("width", maxWidth);
      $(this).css("height", height * ratio);
      height = height * ratio;
     }
     var width = $(this).width();
     var height = $(this).height();
     if(height > maxHeight){
      ratio = maxHeight / height;
      $(this).css("height", maxHeight);
      $(this).css("width", width * ratio);
      width = width * ratio;
     }
   });
   //$("#contentpage img").show();
   // IMAGE RESIZE
});

12.滚动时动态加载页面内容

有些网站的网页内容不是一次性加载完毕的,而是在鼠标向下滚动时动态加载的,这是怎么做到的呢?看下面代码:

var loading = false;
$(window).scroll(function(){
 if((($(window).scrollTop()+$(window).height())+250)>=$(document).height()){
   if(loading == false){
      loading = true;
      $('#loadingbar').css("display","block");
      $.get("load.php?start="+$('#loaded_max').val(), function(loaded){
        $('body').append(loaded);
        $('#loaded_max').val(parseInt($('#loaded_max').val())+50);
        $('#loadingbar').css("display","none");
        loading = false;
      });
   }
 }
});
$(document).ready(function() {
 $('#loaded_max').val(50);
});

以上内容是小编给大家分享的非常实用的12个jquery代码片段,有需要的朋友可以直接拿去使用了。

Javascript 相关文章推荐
Jquery 例外被抛出且未被接住原因介绍
Sep 04 Javascript
Jquery获取元素的父容器对象示例代码
Feb 10 Javascript
原生javascript实现图片按钮切换
Jan 12 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
Oct 08 Javascript
node.js 动态执行脚本
Jun 02 Javascript
15款最好的Bootstrap在线编辑器
Aug 03 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
Dec 28 Javascript
原生js实现选项卡功能
Mar 08 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
Apr 19 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
Sep 19 Javascript
10分钟学会js处理json的常用方法
Dec 06 Javascript
如何优化vue打包文件过大
Apr 13 Vue.js
jQuery+CSS3折叠卡片式下拉列表框实现效果
Nov 02 #Javascript
jquery 表单验证之通过 class验证表单不为空
Nov 02 #Javascript
纯javascript移动优先的幻灯片效果
Nov 02 #Javascript
JS实现点击按钮获取页面高度的方法
Nov 02 #Javascript
基于jQuery实现自动轮播旋转木马特效
Nov 02 #Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
Nov 02 #Javascript
jquery实现网页的页面平滑滚动效果代码
Nov 02 #Javascript
You might like
PHP数组内存耗用太多问题的解决方法
2010/04/05 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
HTML5附件拖拽上传drop &amp; google.gears实现代码
2011/04/28 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
JS实现的网页背景闪电闪烁效果代码
2015/10/17 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
JavaScript自学笔记(必看篇)
2016/06/23 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
浅谈小程序 setData学问多
2019/02/20 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
一篇文章带你从零快速上手Rollup
2020/09/07 Javascript
浅谈python新手中常见的疑惑及解答
2016/06/14 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
Python对象转换为json的方法步骤
2019/04/25 Python
set在python里的含义和用法
2019/06/24 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
2020/06/22 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
中专自我鉴定范文
2013/10/16 职场文书
高中生期末评语大全
2014/01/28 职场文书
理工大学毕业生自荐信范文
2014/02/22 职场文书
关心下一代工作先进事迹
2014/08/15 职场文书
2014年检察院个人工作总结
2014/12/09 职场文书
唐山大地震的观后感
2015/06/05 职场文书