12个超实用的JQuery代码片段


Posted in Javascript onNovember 02, 2015

本文收集了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);
});

本文收集的这15段非常实用的jQuery代码片段,你可以直接复制黏贴到代码里,但请开发者注意了,要理解代码再使用哦。

Javascript 相关文章推荐
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
Nov 04 Javascript
javascript中数组中求最大值示例代码
Dec 18 Javascript
node.js中的http.response.removeHeader方法使用说明
Dec 14 Javascript
1秒50万字!js实现关键词匹配
Aug 01 Javascript
微信小程序 window_x64环境搭建
Sep 30 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
Mar 15 Javascript
在React中如何优雅的处理事件响应详解
Jul 24 Javascript
详解vue-cli之webpack3构建全面提速优化
Dec 25 Javascript
layui table设置前台过滤转义等方法
Aug 17 Javascript
element-ui中的select下拉列表设置默认值方法
Aug 24 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
Oct 01 Javascript
Vue之Mixins(混入)的使用方法
Sep 24 Javascript
JavaScript Length 属性的总结
Nov 02 #Javascript
基于Jquery实现万圣节快乐特效
Nov 01 #Javascript
JavaScript调用传递变量参数的相关问题及解决办法
Nov 01 #Javascript
javascript跨域总结之window.name实现的跨域数据传输
Nov 01 #Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
Nov 01 #Javascript
JS实现的论坛Ajax打分效果完整实例
Oct 31 #Javascript
JS实现来回出现文字的状态栏特效代码
Oct 31 #Javascript
You might like
PHP memcache扩展的三种安装方法
2009/04/26 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
实例讲解PHP验证邮箱是否合格
2019/01/28 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
记录几个javascript有关的小细节
2007/04/02 Javascript
js 判断checkbox是否选中的操作方法
2012/11/09 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
2015/03/02 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
Python 字符串中的字符倒转
2008/09/06 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
会计实习期自我鉴定
2013/10/06 职场文书
机电工程学生自荐信范文
2013/12/07 职场文书
国家助学金获奖感言
2014/01/31 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
现场施工员岗位职责
2015/04/11 职场文书
高中家长意见怎么写
2015/06/03 职场文书
python如何进行基准测试
2021/04/26 Python
Python中super().__init__()测试以及理解
2021/12/06 Python