12 个非常实用的 jQuery 代码片段
jQuery是一个非常流行而且实用的JavaScript前端框架,本文并不是介绍jQuery的特效动画,而是分享一些平时积累的12个jQuery实用代码片段,希望对你有所帮助。
- 导航菜单背景切换效果
在项目的前端页面里,相对于其它的导航菜单,激活的导航菜单需要设置不同的背景。这种效果实现的方式有很多种,下面是使用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){
- .... ...
- });
- 管理搜索框的值
现在各大网站都有搜索框,而搜索框通常都有默认值,当输入框获取焦点时,默认值消失。而一旦输入框失去焦点,而输入框里又没有输入新的值,输入框里的值又会恢复成默认值,如果往输入框里输入了新值,则输入框的值为新输入的值。这种特效用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可以很优雅的实现该功能:
- 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 代码片段的更多相关文章
- 经验分享:10个简单实用的 jQuery 代码片段
尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...
- 10个简单实用的 jQuery 代码片段
尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库. 今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 1.平滑滚动到 ...
- 一些实用的JQuery代码片段收集
本文将展示50个非常实用的JQuery代码片段,这些代码能够给你的JavaScript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够 ...
- 十条很实用的jQuery代码片段
本文转自:http://developer.51cto.com/art/201604/509093.htm 作者:核子可乐译来源:51CTO 原文标题:10 jQuery Snippets for E ...
- 几个非常实用的JQuery代码片段
jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多).jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用). ...
- 一些实用的JQuery代码片段收集(筛选,搜索,样式,清除默认值,多选等)
//each遍历文本框 清空默认值 $(".maincenterul1").find("input,textarea").each(function () { ...
- 很实用的JQuery代码片段(转)
1 元素屏幕居中 jQuery.fn.center = function () { this.css("position","absolute"); this. ...
- js动态判断密码强度&&实用的 jQuery 代码片段
// 网上拷贝的代码,效果不太好需要自己调整<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...
- 可以直接拿来用的15个jQuery代码片段
jQuery里提供了许多创建交互式网站的方法,在开发Web项目时,开发人员应该好好利用jQuery代码,它们不仅能给网站带来各种动画.特效,还会提高网站的用户体验. 本文收集了15段非常实用的jQue ...
随机推荐
- 深入浅出!从语义角度分析隐藏在Unity协程背后的原理
Unity的协程使用起来比较方便,但是由于其封装和隐藏了太多细节,使其看起来比较神秘.比如协程是否是真正的异步执行?协程与线程到底是什么关系?本文将从语义角度来分析隐藏在协程背后的原理,并使用C++来 ...
- docker查看容器的网络ip
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id 可直 ...
- UITextField的简易封装
UITextField的简易封装 效果 源码 https://github.com/YouXianMing/UI-Component-Collection 中的 UITextFieldView // ...
- nginx 413 500报错
采用nginx作反向代理,出现了一个诡异的问题,小文件可以提交,大文件会报500内部错误.这个是什么原因导致的呢? 查wiki可知,上传文件大小相关的有三个配置 client_body_buffer_ ...
- 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)
方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold&q ...
- 深度学习在推断阶段(inference)的硬件实现方法概述
推断(Inference),就是深度学习把从训练中学习到的能力应用到工作中去. 精心调整权值之后的神经网络基本上就是个笨重.巨大的数据库.为了充分利用训练的结果,完成现实社会的任务,我们需要的是一个能 ...
- 禁止MT在公式后面自动添加一个空格
开始 > 运行,或者win+R,然后输入 regedit,打开注册表编辑器.展开到HKEY_CURRENT_USER\Software\Design Science\DSMT6\WordComm ...
- 代理服务器polipo;socks5代理转http代理
安装: brew install polipo 使用: To have launchd start polipo now and restart at login: brew services sta ...
- IDEA重写toString()模板,转成json格式
1.类中Alt + Insert,弹出下框 2.点击新增 public java.lang.String toString() { final java.lang.StringBuilder sb = ...
- Pitch,Yaw,Roll的概念
在航空中,pitch, yaw, roll下图所示. pitch是围绕X轴旋转,也叫做俯仰角. yaw是围绕Y轴旋转,也叫偏航角. roll是围绕Z轴旋转,也叫翻滚角. 在3D系统中,假设视点 ...