平滑滚动到锚点
这个功能很常见,在网站底部添加一个让访客快速回到页面顶部的功能,下面是实现这个功能的示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // HTML: // <h1 id="anchor">Lorem Ipsum</h1> // <p><a href="#anchor" class="topLink">Back to Top</a></p>
$(document).ready(function() { $("a.topLink").click(function() { $("html, body").animate({ scrollTop: $($(this).attr("href")).offset().top + "px" }, { duration: 500, easing: "swing" }); returnfalse; }); }); |
缩放图片
虽然图片应该在服务器端缩放,不过如果服务器端未做缩放,需要再客户端缩放的时候,可以使用下面这个方便的代码片段:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | $(window).bind("load", function() { // IMAGE RESIZE $('#product_cat_list img').each(function() { varmaxWidth = 120; varmaxHeight = 120; varratio = 0; varwidth = $(this).width(); varheight = $(this).height();
if(width > maxWidth){ ratio = maxWidth / width; $(this).css("width", maxWidth); $(this).css("height", height * ratio); height = height * ratio; } varwidth = $(this).width(); varheight = $(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 }); |
滚动时自动加载内容
很多网站使用了流行的瀑布图布局,这种类型的网站在页面滚动的时候会自动加载内容。下面这段代码让你能够把这个功能搬到你的网站上。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | varloading = 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); }); |
检测密码强度
在表单功能中,经常会有检测用户输入的密码强度的功能,下面这个代码片段使用正则表达式来检测密码是否足够安全,当然记得在服务端也进行表单验证。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $('#pass').keyup(function(e) { varstrongRegex = newRegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\W).*$", "g"); varmediumRegex = newRegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g"); varenoughRegex = newRegExp("(?=.{6,}).*", "g"); if(false== enoughRegex.test($(this).val())) { $('#passstrength').html('More Characters'); } elseif(strongRegex.test($(this).val())) { $('#passstrength').className = 'ok'; $('#passstrength').html('Strong!'); } elseif(mediumRegex.test($(this).val())) { $('#passstrength').className = 'alert'; $('#passstrength').html('Medium!'); } else{ $('#passstrength').className = 'error'; $('#passstrength').html('Weak!'); } returntrue; }); |
均衡元素的高度
使用纯 CSS代码实现均衡元素的高度比较困难,而下面这段 jQuery 代码会根据最高的元素来均衡所有的 Div 元素。
1 2 3 4 5 6 7 | varmaxHeight = 0;
$("div").each(function(){ if($(this).height() > maxHeight) { maxHeight = $(this).height(); } });
$("div").height(maxHeight); |
修复 IE6 PNG 问题
至今,IE6 在国内仍然占据了大量的份额,因此在 Web 开发中仍然需要考虑 IE6 的兼容问题。比较常用的 IE6 PNG 图片问题,下面这段代码可以方便的修复。
1 2 3 4 5 | $('.pngfix').each( function() { $(this).attr('writing-mode', 'tb-rl'); $(this).css('background-image', 'none'); $(this).css( 'filter', 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="path/to/image.png",sizingMethod="scale")'); }); |
解析 JSON 字符串
使用 jQuery 解析 JSON 数据并不复杂。下面是一个高效解析 JSON 数据并将其追加到您的网页的例子。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | functionparseJson(){ //Start by calling the json object, I will be using a //file from my own site for the tutorial //Then we declare a callback function to process the data $.getJSON('hcj.json',getPosts);
//The process function, I am going to get the title, //url and excerpt for 5 latest posts functiongetPosts(data){ //Start a for loop with a limit of 5 for(vari = 0; i < 5; i++){ varstrPost = '<h2>' + data.posts[i].title + '</h2>' + '<p>' + data.posts[i].excerpt + '</p>' + '<a href="' + data.posts[i].url + '" title="Read ' + data.posts[i].title + '">Read ></a>'; //Append the body with the string $('body').append(strPost); } } }
//Fire off the function in your document ready $(document).ready(function(){ parseJson(); }); |
隔行换色
这是一个很老的功能了,在大的列表或表格中,隔行颜色可以大大提高内容的可读性。下面的代码可以非常简单实现这个功能。
$('div:odd').css("background-color", "#F4F4F8"); $('div:even').css("background-color", "#EFF1F1"); |
预加载图片
你是否注意到 facebook 相册的图片加载速度特别快?那是因为在你看到这些图片之前已经预加载到你的浏览器缓存中了。下面是实现这个类似功能的代码示例:
1 2 3 4 5 6 7 8 | varnextimage = "/images/some-image.jpg"; $(document).ready(function(){ window.setTimeout(function(){ varimg = $("<img>").attr("src", nextimage).load(function(){ //all done }); }, 100); }); |
让整个 Div 可点击
这是实现链接的父 Div 也能够点击的简单方法,HTML 示例代码如下:
1 2 3 4 | <div class="myBox"> blah blah blah. <a href="http://google.com">link</a> </div> |
下面的 jQuery 代码让整个 Div 可点击:
1 2 3 4 | $(".myBox").click(function(){ window.location=$(this).find("a").attr("href"); returnfalse; }); |
本篇转自:http://www.cnblogs.com/lhb25/p/10-useful-jquery-code-snippets.html
分页地址连接:http://www.cnblogs.com/lhb25/archive/2012/08/08/ajax-jquery-pagination-plugin-tutorial.html