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 相关文章推荐
cssQuery()的下载与使用方法
Jan 12 Javascript
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
Mar 18 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
Apr 30 Javascript
理解JavaScript中的对象 推荐
Jan 09 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
Jan 17 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
Apr 17 Javascript
jQuery 全选/反选以及单击行改变背景色实例
Jul 02 Javascript
javascript 动态样式添加的简单实现
Oct 11 Javascript
浅谈Node.js:fs文件系统模块
Dec 08 Javascript
node.js实现复制文本到剪切板的功能
Jan 23 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
Jan 26 Javascript
vue的全局变量和全局拦截请求器的示例代码
Sep 13 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 imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
举例讲解PHP面对对象编程的多态
2015/08/12 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
微信小程序实现顶部导航特效
2019/01/28 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
Python 多进程和数据传递的理解
2017/10/09 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
python如何提升爬虫效率
2020/09/27 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
简历自我评价模版
2014/01/31 职场文书
教师个人鉴定材料
2014/02/08 职场文书
明星员工获奖感言
2014/08/14 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS
springboot中的pom文件 project报错问题
2022/01/18 Java/Android