平滑滾動到錨點
這個功能很常見,在網站底部添加一個讓訪客快速回到頁面頂部的功能,下面是實現這個功能的示例代碼:
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" }); return false ; }); }); |
縮放圖片
雖然圖片應該在服務器端縮放,不過如果服務器端未做縮放,需要再客戶端縮放的時候,可以使用下面這個方便的代碼片段:
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 ()
{ 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 }); |
滾動時自動加載內容
很多網站使用了流行的瀑布圖佈局,這種類型的網站在頁面滾動的時候會自動加載內容。下面這段代碼讓你能夠把這個功能搬到你的網站上。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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); }); |
檢測密碼強度
在表單功能中,經常會有檢測用戶輸入的密碼強度的功能,下面這個代碼片段使用正則表達式來檢測密碼是否足夠安全,當然記得在服務端也進行表單驗證。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
$( '#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 ; }); |
均衡元素的高度
使用純 CSS代碼實現均衡元素的高度比較困難,而下面這段 jQuery 代碼會根據最高的元素來均衡所有的 Div 元素。
1
2
3
4
5
6
7
|
var maxHeight
= 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
|
function parseJson(){ //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 function getPosts(data){ //Start
a for loop with a limit of 5 for ( var i
= 0; i < 5; i++){ var strPost
= '<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
|
var nextimage
= "/images/some-image.jpg" ; $(document).ready( function (){ window.setTimeout( function (){ var img
= $( "<img>" ).attr( "src" ,
nextimage).load( function (){ //all
done }); },
100); }); |
讓整個 Div 可點擊
這是實現鏈接的父 Div 也能夠點擊的簡單方法,HTML 示例代碼如下:
1
2
3
4
|
下面的 jQuery 代碼讓整個 Div 可點擊:
1
2
3
4
|
$( ".myBox" ).click( function (){ window.location=$( this ).find( "a" ).attr( "href" );
return false ; }); |