µ±Ç°Î»ÖãºPHPChina ¿ªÔ´ÉçÇøÃÅ»§ - ×ÊѶ - ¼¼ÊõרÀ¸ - ǰ¶Ë¼¼Êõ - ÕýÎÄ

ÓÃjQuery¡¢AjaxÑ¡ÏºÍÕÕÆ¬carousel ¸Ä½øÏÖÓеÄÕ¾µã

±¾ÎĽ²½âÓà Ajax ¼¼Êõ¸Ä½øÒ»¸ö Web 1.0 ¹ºÎïÕ¾µãµÄ²½Öè¡£¿ÉÒÔÏÂÔØ¸Ä½øÖ®Ç°ºÍÖ®ºóµÄʾÀýÓ¦ÓóÌÐòÔ´´úÂë¡£»¹¿ÉÒÔÔÚ×÷ÕßµÄ Web Õ¾µãÉÏ¿´µ½ÕâÁ½¸ö°æ±¾µÄÔËÐÐЧ¹û¡£³ýÁË Ajax ¼¼ÊõºÍ×î¼Ñʵ¼ùÖ®Í⣬»¹ÒªÑ§Ï°ÈçºÎͨ¹ý½¥½øÊ½¸Ä½ø¡¢Ò×ÓÃÐÔºÍÓû§ÌåÑéÉè¼Æ£¨UxD£©Ô­ÀíÓà Ajax ¸Ä½øÓû§ÌåÑé¡£

±¾ÎļÙÉè¶ÁÕß³ä·ÖÁ˽â HTML ºÍ CSS£¬ÖÁÉÙ»ù±¾Á˽â JavaScript ºÍ Ajax ±à³Ì¼¼Êõ¡£Ê¾ÀýÓ¦ÓóÌÐòÊÇֻʹÓÿͻ§¶Ë´úÂë¹¹½¨µÄ£»µ«ÊÇ£¬ÑÝʾµÄ¼¼ÊõÒ²¿ÉÒÔÓ¦ÓÃÓÚÈκηþÎñÆ÷¶ËÓ¦ÓóÌÐò¿ò¼Ü¡£ÒªÏëÔËÐÐʾÀýÕ¾µã£¬ÖÁÉÙÐèÒªÔÚ±¾µØÖ÷»úÉÏÔËÐÐÒ»¸ö»ù±¾µÄ Web ·þÎñÆ÷¡£ÄúÒ²¿ÉÒÔÑо¿Ô´´úÂë²¢ÔÚ×÷ÕßµÄ Web Õ¾µãÉϲ鿴ʾÀýÕ¾µãµÄÔËÐÐЧ¹û¡£

±¾ÏµÁÐµÄµÚ 1 ²¿·ÖºÍµÚ 2 ²¿·Ö½éÉÜÁËʾÀýÓ¦ÓóÌÐò Customize Me Now£¬²¢¿ªÊ¼´Ó Web 1.0 °æ±¾µ½ Ajax Ö§³ÖµÄ Web 2.0 °æ±¾µÄ¸Ä½ø¹ý³Ì¡£ËüÃÇÌÖÂÛÁËÕâÖָĽøµÄÒµÎñÔ­ÒòºÍÒ×ÓÃÐÔÔ­Òò¡£ËüÃÇ»¹°ïÖúÄúÉèÖü¸¸ö¿ª·ÅÔ´Â빤¾ß£¬°üÀ¨ jQuery JavaScript ¿ò¼ÜÒÔ¼°ËüµÄ¼¸¸ö²å¼þ¡£Í¨¹ýʹÓÃÕâЩ¿â£¬°Ñµ¯³öÏûÏ¢¡¢ÀëÕ¾Á´½ÓºÍµ¼º½±ßÀ¸Ì滻Ϊģ̬¶Ô»°¿ò¡¢¹¤¾ßÌáʾºÍ lightbox£¬´Ó¶ø¸Ä½øÁË Customize Me Now µÄÓû§²Ù×÷Á÷¡£ÔÚÕâ¸ö¹ý³ÌÖУ¬²ÉÓÃÁ˽¥½øÊ½¸Ä½øÔ­Àí£»ÔÚ½ûÓà JavaScript µÄÇé¿öÏ£¬¸Ä½øµÄ Web 2.0 Ó¦ÓóÌÐòµÄÒ³Ãæ»á×Ô¶¯ÍË»¯µ½ Web 1.0 ÌåÑé¡£

µÚ 3 ²¿·ÖµÄÄ¿±ê

ÔÚ±¾ÆÚÖУ¬ÎÒÃǽ«°Ñ²úƷϸ½ÚÒ³ÃæµÄÄÚÈݷŵ½Ò»¸öÑ¡Ïʽ½çÃæÖУ¬´Ó¶øÌá¸ßËüµÄ¿É¹ÜÀíÐÔ¡£»¹ÒªÔÚÒ»¸öͼÏñ carousel ÖÐÏÔʾ²úƷͼÏñ£¬´Ó¶øÌá¸ß¶ÔͼÏñµÄ¿ØÖÆÄÜÁ¦¡£Äú½«Ñ§Ï°ÈçºÎͨ¹ý¼òµ¥µÄ Dynamic HTML£¨DHTML£©»ò±È½Ï¸´Ô Ajax ´úÂëÓ¦ÓÃÕâÁ½ÖÖ¼¼Êõ¡£ÎÞÂÛ²ÉÓÃÄÄÖÖ·½·¨£¬¶¼Ó¦Óý¥½øÊ½¸Ä½øÔ­Àí£¬Ê¹Ò³ÃæÔÚ½ûÓà JavaScript ʱÈÔÈ»ÊǿɷÃÎʵġ£ÎªÁËʵÏÖÕâЩĿ±ê£¬½«Ê¹ÓÃÁíÍâÁ½¸ö jQuery ²å¼þ£ºÓÃÓÚʵÏÖͼÏñ»ÃµÆÆ¬µÄ jCarousel ºÍÓÃÓÚʵÏÖÑ¡ÏµÄ jQuery UI Tabs¡£

ΪÁËÀí½â±¾ÆÚÖеĸÅÄÏÈÇë¿´Ò»ÏÂCustomize Me Now 1.1£¬ÕâÊÇԭʾÀýÕ¾µãÉԼӸĽøºóµÄ°æ±¾¡£ÎÒÃǽ«Í¨¹ýÐÞ¸Ä 1.1 °æ´´½¨ Customize Me Now 2.1£¬Õâ¸ö°æ±¾°üº¬Õû¸öϵÁнéÉܵÄËùÓиĽø¡£

Á½ÖÖ²úƷϸ½ÚÒ³Ãæ£ºµ¥Ò³ÃæºÍ¶àÒ³Ãæ

ÔÚµç×ÓÉÌÎñ Web Õ¾µãÖУ¬×ÔӵIJ¿·ÖÖ®Ò»ÊDzúƷϸ½Ú²¿·Ö¡£Õ¾µã»á°Ñ´óÁ¿¹ØÓÚ²úÆ·µÄÐÅÏ¢¼¯ÖÐÔÚÒ»Æð£¬´Ó¼òµ¥µÄ˵Ã÷ºÍ¼¼Êõ¹æ¸ñµ½´ÓÓû§ÉçÇøÊÕ¼¯µÄÄÚÈÝ£¨±ÈÈçÓû§ÆÀÂÛ£©¡£µ±È»£¬»¹ÓвúƷͼÏñ£¬¶øÇÒÿÖÖ²úÆ·³£³£Óжà¸öͼÏñ¡£´ÓÓû§ÌåÑéµÄ½Ç¶ÈÀ´¿´£¬ÄÑÌâÔÚÓÚÏòÓû§ÏÔʾ¾ö¶¨¹ºÂò²úÆ·ËùÐèµÄÊý¾Ý£¬Í¬Ê±±ÜÃâ¹ý¶àµÄÐÅÏ¢À§ÈÅÓû§¡£

ÔÚijÖ̶ֳÈÉÏ£¬Customize Me Now 1.0 ±È½ÏÈÝÒ×½øÐÐ Ajax ¸ÄÔì¡£ËüÏÔʾµÄ²úƷϸ½ÚÄÚÈݺÜÈÝÒ×·ÅÔÚµ¥Ò»Ò³ÃæÉÏ¡£ÔÚ Customize Me Now 2.0 ÖУ¬Í¨¹ýʹÓà jQuery ºÍ Thickbox£¬°ÑÔ­À´µÄÒ³ÃæÌæ»»ÎªÒ»¸öģ̬¶Ô»°¿ò¡£ÕâÓÐÖúÓڸĽø´ÓËÑË÷µ½¹ºÂòµÄÓû§²Ù×÷Á÷³Ì¡£

µ«ÊÇ£¬ÏÖÔÚÐèÇó¸Ä±äÁË¡£Customize Me Now 1.1 ÏÔʾµÄ²úƷϸ½ÚÐÅÏ¢Ô¶Ô¶¶àÓÚ 1.0 °æ¡£ÕâЩÄÚÈݰüÀ¨Ðí¶àºÜ³¤µÄÎı¾¿éºÍÐí¶à´óÕÕÆ¬£¨Í¼ÏñÀ´×ÔÁ÷ÐÐµÄ Web 2.0 ÕÕÆ¬¹²ÏíÕ¾µã Flickr£©¡£ÔÚ Ajax ¼¼Êõ³öÏÖ֮ǰ£¬ÓÐÁ½ÖÖ·½·¨¿ÉÒÔÏÔʾÈç´Ë¶àµÄÄÚÈÝ£ºÒ»¸öºÜ³¤µÄ¹ö¶¯Ò³Ã棨¼ûͼ 1ºÍͼ 2£©£¬»òÕß°ÑÒ³Ãæ·Ö¸îΪ¶à¸öÐ¡Ò³Ãæ£¬Ã¿¸öÎı¾¿é»òÕÕÆ¬¸÷ÓÐÒ»¸öÒ³Ãæ£¨¼ûͼ 3ºÍͼ 4£©¡£

ÔÚ Web ä¯ÀÀÆ÷ÖзÃÎÊ Customize Me Now 1.1£¬±È½ÏһϠProduct Details Ò³ÃæµÄ°æ±¾ A ºÍ B ÒÔ¼°Àϰ汾£¨Customize Me Now 1.0£©Ö®¼äµÄ²îÒ졣ҳüºÍÒ³½ÅÖÐÓÐÕâÈý¸ö°æ±¾µÄÁ´½Ó¡£¿ÉÒÔ¿´µ½£¬°æ±¾ A ºÍ B ÔÚÒ×ÓÃÐÔ·½ÃæµÄÀ§ÄѱÈÀϰ汾´óµÃ¶à¡£ÏÔÈ»£¬¶ÔÓÚ Product Details Ò³ÃæµÄÕâЩа汾£¬Thickbox ģ̬¶Ô»°¿ò²¢²»ºÏÊÊ¡£

°æ±¾ A ²»µ«¿ÉÄÜÀ§ÈÅÓû§£¬»¹»á¸øä¯ÀÀÆ÷ºÍ·þÎñÆ÷µÄ´¦ÀíÔì³ÉÂé·³¡£Óû§»á±»´óÁ¿ÐÅÏ¢ËùÀ§ÈÅ£¨¼ÙÉèËûÃÇ×¢ÒâËùÓÐÐÅÏ¢µÄ»°£©¡£Í¬Ê±£¬ä¯ÀÀÆ÷ºÍ·þÎñÆ÷±ØÐë´¦Àí´óÁ¿Êý¾Ý£¬Ôì³ÉºÜ´ó¸ºµ£¡£Ä¿Ç°£¬Õâ¸öÒ³ÃæÖ»ÓÐ 6 ÕÅÕÕÆ¬£¬ËùÒÔÔÚʹÓÃ¿í´øÁ¬½ÓÊ±Ò³Ãæ×°ÔØËÙ¶ÈÏ൱¿ì¡£µ«ÊÇ£¬Èç¹ûÓÐ 16 ÕÅÉõÖÁ 60 ÕÅÕÕÆ¬£¬»áÔõôÑùÄØ£¿Èç¹û»¹ÓÐ 150 ÌõÓû§ÆÀÂÛ£¬ÓÖ»áÔõôÑùÄØ£¿Èç¹ûÓû§Ê¹ÓõÄÍøÂç±È½ÏÂýÄØ£¿Èç¹ûÍ¬Ê±×°ÔØÓëÒ»¸ö²úÆ·Ïà¹ØµÄËùÓÐÊý¾Ý£¬ÐÔÄܾͻáÑÏÖØÊÜË𣬶øÇÒÓû§Ò²ÄÑÒÔÒ»ÏÂ×ÓÎüÊÕÕâô¶àµÄÄÚÈÝ¡£

°æ±¾ B ÔÚÿ¸öÒ³ÃæÉÏÖ»ÏÔʾÉÙÁ¿ÐÅÏ¢£¬´Ó¶ø±ÜÃâÓû§±»´óÁ¿ÐÅÏ¢À§ÈÅ¡£µ«ÊÇ£¬Ã¿µ±Óû§Òª²é¿´¸ü¶àÐÅϢʱ£¬ËûÃDZØÐëµ¥»÷Á´½Ó²¢µÈ´ý×°ÔØÐÂÒ³Ãæ¡£ÁíÍ⣬°æ±¾ B ÖеÄÿ¸ö×ÓÒ³Ãæ°üº¬´óÁ¿ÈÃÈ˺ýÍ¿µÄÁ´½Ó¡£ËäÈ»Êý¾ÝÉÙÁË£¬µ«Êǵ¼º½¹ý³ÌºÜ¸´ÔÓ¡£

¸ÄÔìµ¥Ò³Ãæ°æ±¾

ÒòΪËùÓÐÄÚÈݶ¼ÔÚÒ»¸öÒ³ÃæÉÏ£¬ËùÒÔºÜÈÝÒ×ÓÃͼÏñ»ÃµÆÆ¬ºÍÑ¡Ïʽ½çÃæ¸Ä½ø°æ±¾ A¡£Õâ²»ÐèÒª Ajax£¬Ö»Ê¹ÓÃÀÏʽµÄ DHTML ¾Í¿ÉÒÔʵÏÖ¡£ÕâÖÖ·½·¨µÄÓŵãÊÇËüʹÓÃÁ˽¥½øÊ½¸Ä½ø¡£Ìṩ¸øä¯ÀÀÆ÷µÄÄÚÈÝÈÔÈ»ÊǺܳ¤µÄ¹ö¶¯Ò³Ã棬µ«ÊÇ JavaScript ´úÂë°ÑËüת»»Îª¸üÏÖ´ú¸üÈÝÒ×ʹÓõĽçÃæ¡£Èç¹ûʹÓò»Ö§³Ö JavaScript µÄä¯ÀÀÆ÷£¬Óû§Ö»ÄÜ¿´µ½Ô­À´µÄÒ³Ãæ¡£µ±È»£¬ÕâÖÖ·½·¨Ã»Óнâ¾öµ¥Ò³Ãæ·½·¨µÄ´ø¿íÎÊÌâ¡£

ÏÂÔØºÍ°²×°¿ª·ÅÔ´Â빤¾ß

ΪÁË¿ªÊ¼ Ajax ¸ÄÔ죬Ê×ÏÈÒªÏÂÔØ jQuery µÄ×îа汾£¬ËüÊÇËùÓÐй¦ÄܵĻù´¡£¨²Î¼û²Î¿¼×ÊÁÏ£©¡£Èç¹ûÄúÒѾ­Ñ§Ï°Á˱¾ÏµÁÐµÄµÚ 1 ²¿·ÖºÍµÚ 2 ²¿·Ö£¬Ó¦¸ÃÒѾ­°²×°ÁË jQuery 1.2.1¡£µ½±àд±¾ÎÄʱ£¬µ±Ç°°æ±¾ÊÇ 1.2.3£¬ÆäÖÐÔö¼ÓÁËһЩ bug ²¹¶¡¡£

»¹ÐèÒª´Ó²Î¿¼×ÊÁÏС½ÚÏÂÔØÁ½¸ö²å¼þ¡£jQuery UI Tabs ÊÇ jQuery UI µÄÒ»²¿·Ö£¬jQuery UI ÊÇÒ»×é¿ÉÅäÖõÄÓû§½çÃæ²¿¼þºÍ×é¼þ¡£jQuery UI Tabs °ÑulÔªËØ×ª»»ÎªÑ¡Ïʽ½çÃæ£¬²¢°ÑÄÚÁªÄÚÈÝºÍ Ajax ±ê¼Çת»»ÎªÕâЩѡÏµÄÄÚÈÝ¡£jCarousel ÊÇÒ»¸öµ¥¶ÀµÄ²å¼þ£¬Ëü°ÑͼÏñ¼¯×ª»»Îª»ÃµÆÆ¬¡£Óë jQuery UI Tabs Ò»Ñù£¬ÕâЩ»ÃµÆÆ¬µÄÄÚÈÝ¿ÉÒÔÊÇÄÚÁªÄÚÈÝ»òÊÇ Ajax¡£

ÏÂÔØÕâЩ×é¼þÖ®ºó£¬°ÑËüÃÇ·ÅÔÚÓ¦ÓóÌÐòĿ¼½á¹¹ÖеÄÊʵ±Î»Öá£Ã¿¸öÏÂÔØ°ü¶¼°üº¬´úÂëʾÀýºÍÆäËû¶àÓàµÄÎļþ£¬¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒª±£Áô»òɾ³ýËüÃÇ¡£Ã¿¸ö JavaScript ¿âµÄ¼ò»¯°æÊÊÓÃÓÚÉú²ú»·¾³£¬µ«ÊÇÄú¿ÉÄÜÏ£Íû»ñµÃÍêÕûµÄÔ´´úÂ룬ÕâÑù¾Í¿ÉÒÔͨ¶Á´úÂ룬¸üºÃµØÁ˽âÿ¸ö×é¼þ£º

  • ¶ÔÓÚ jQuery£¬ÐèÒªµÄΩһÎļþÊǿⱾÉíµÄ¼ò»¯°æ¡£
  • ¶ÔÓÚ jQuery UI Tabs£¬Ó¦¸Ã»ñÈ¡¿âµÄ¼ò»¯°æ¡¢¸½´øµÄ CSS ÎļþºÍÁ½¸öͼÏñ£ºloading.gif ºÍ tab.png¡£ÒòΪ tab.png ¼ÙÉèÄúµÄÕ¾µã²ÉÓð×É«±³¾°£¬¿ÉÄÜÐèÒªÔÚ Adobe Photoshop »òÆäËûͼÏñ±à¼­³ÌÐòÖÐÐÞ¸ÄËü£¬Ê¹ËüµÄÔ²½ÇЧ¹ûÓë Customize Me Now µÄʵ¼Ê±³¾°ÑÕÏàÆ¥Åä¡£
  • ¶ÔÓÚ jCarousel£¬ÐèÒª¿âµÄ¼ò»¯°æºÍ¸½´øµÄ CSS Îļþ£¬ÒÔ¼°¿â¸½´øµÄÈýÖÖÔ¤´ò°üµÄ skin Ö®Ò»µÄÍêÕûĿ¼¡£ÔÚ jCarousel ÖУ¬skin ÓÉÒ»¸ö CSS ÎļþºÍÒ»×éͼÏñ×é³É£¬ÓÃÀ´¿ØÖÆ carousel µÄÊÓ¾õÑùʽ¡£¶ÔÓÚ Customize Me Now£¬ÎÒÃÇʹÓà Tango skin£¬µ«ÊǰÑÄ¿Â¼ÖØÃüÃûΪ ¡°tango-modified¡±£»ÎÒÃǽ«¶ÔĬÈ쵀 Tango ·½°¸×öһЩÐ޸ġ£

ÒÔÉÏÎļþ¾Íλ֮ºó£¬Òª°ÑËüÃDzåÈë detailA.html µÄ¿ªÍ·¡£½á¹û¼ûÇåµ¥ 1£º


Çåµ¥ 1. ²¿Êð jQuery ¼°Æä²å¼þ
<!--jquery assets-->
<script type="text/javascript"
	src="../js/jquery-1.2.3.minjs"></script>

<!--jquery.ui.tabs assets-->
<script type="text/javascript"
	src="./ui.tabs/ui.tabs.pack.js"></script>
<link rel="stylesheet" href="../ui.tabs/ui.tabs.css"
	type="text/css" media="print, projection, screen">

<!--jcarousel assets-->
<script type="text/javascript"
	src="../jcarousel/lib/jquery.jcarousel.pack.js"></script>
<link rel="stylesheet" type="text/css"
	href="../jcarousel/lib/jquery.jcarousel.css" />
<link rel="stylesheet" type="text/css"
	href="../jcarousel/skins/tango-modified/skin.css" />

´´½¨ DHTML ͼÏñ carousel

ÒªÏë´´½¨ DHTML ͼÏñ carousel£¬Ê×ÏÈÒªÐÞ¸Ä jCarousel µÄÍâ¹Û¡£ÒòΪ jCarousel ¿ÉÒÔÅäÖÃΪÏÔʾˮƽ»ò´¹Ö±µÄͼÏñ carousel£¬ËùÒÔËüµÄÑùʽ±í°üº¬ÓÃÀ´ÊµÏÖÕâÁ½ÖÖÀàÐ͵ĹæÔò¡£ÎÒÃÇµÄ»ÃµÆÆ¬ÊÇˮƽµÄ£¬ËùÒÔ¿ÉÒÔɾ³ýÓë´¹Ö±»ÃµÆÆ¬Ïà¹ØµÄËùÓÐ CSS ÉùÃ÷¡£ÁíÍ⣬ÐèÒªÐÞ¸ÄÐí¶àÔªËØµÄ¿í¶È¡¢¸ß¶È¡¢Ìî³äºÍ¿Õ°×±ß¡£ÔÚĬÈÏÇé¿öÏ£¬jCarousel ´´½¨µÄ»ÃµÆÆ¬ÔÚÈκÎʱºò¶¼ÏÔʾÈý¸öСµÄËõÂÔͼ¡£ÔÚÎÒÃÇµÄ»ÃµÆÆ¬ÖУ¬Í¼Ïñ´óµÃ¶à£¨¿í 500 ÏñËØ£©£¬ËùÒÔÓ¦¸Ãÿ´ÎÖ»ÏÔʾһ¸öͼÏñ¡£Íê³ÉÕâЩÐÞ¸ÄÖ®ºó£¬skin.css Ó¦¸ÃÏñÇåµ¥ 2 ÕâÑù£º


Çåµ¥ 2. »ÃµÆÆ¬µÄ CSS ´úÂë
..jcarousel-skin-tango.jcarousel-container {
    -moz-border-radius: 10px;
    background: #F0F6F9;
    border: 1px solid #346F97;
}

..jcarousel-skin-tango.jcarousel-container-horizontal {
    width: 502px;
    padding: 20px 125px !important;
}

.jcarousel-skin-tango .jcarousel-clip-horizontal {
    width:  502px;
    height: 410px;
}

..jcarousel-skin-tango .jcarousel-item {
    width: 502px;
    height: 410px;
}

..jcarousel-skin-tango .jcarousel-item-horizontal {
    margin-right: 125px;
}

..jcarousel-skin-tango .jcarousel-item-placeholder {
    background: #fff;
    color: #000;
}

/**
 *  Horizontal Buttons
 */
..jcarousel-skin-tango .jcarousel-next-horizontal {
    position: absolute;
    top: 43px;
    right: 5px;
    width: 32px;
    height: 32px;
    cursor: pointer;
    background: transparent url(next-horizontal.png) no-repeat 0 0;
}

..jcarousel-skin-tango .jcarousel-next-horizontal:hover {
    background-position: -32px 0;
}

..jcarousel-skin-tango .jcarousel-next-horizontal:active {
    background-position: -64px 0;
}

..jcarousel-skin-tango .jcarousel-next-disabled-horizontal,
..jcarousel-skin-tango .jcarousel-next-disabled-horizontal:hover,
..jcarousel-skin-tango .jcarousel-next-disabled-horizontal:active {
    cursor: default;
    background-position: -96px 0;
}

..jcarousel-skin-tango .jcarousel-prev-horizontal {
    position: absolute;
    top: 43px;
    left: 5px;
    width: 32px;
    height: 32px;
    cursor: pointer;
    background: transparent url(prev-horizontal.png) no-repeat 0 0;
}

..jcarousel-skin-tango .jcarousel-prev-horizontal:hover {
    background-position: -32px 0;
}

..jcarousel-skin-tango .jcarousel-prev-horizontal:active {
    background-position: -64px 0;
}

..jcarousel-skin-tango .jcarousel-prev-disabled-horizontal,
..jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:hover,
..jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:active {
    cursor: default;
    background-position: -96px 0;
}

½ÓÏÂÀ´£¬¶Ô detailAhtml µÄ±ê¼Ç×öÒ»´¦Ð¡Ð޸ġ£Ò³ÃæÔ­À´°æ±¾ÖеÄͼÏñÒѾ­×éÖ¯³ÉÒ»¸öulÔªËØ¡£ÐèÒªÔÚÕâ¸ö HTML ÁбíÍâÌí¼ÓÒ»¸ödiv¡£ÔÚÕâ¸ö°ü×°Æ÷divÖÐÌí¼ÓÒ»¸öֵΪjcarousel-skin-tangoµÄclassÊôÐÔ£¬ÕâÑù¾Í»á°Ñ Tango skin ÖеÄÑùʽ¹æÔòÓ¦ÓÃÓÚÕâ¸ö carousel¡£»¹ÒªÔÚÕâ¸ödivÖÐÌí¼ÓÒ»¸öֵΪimageCarouselµÄidÊôÐÔ£¬Èà jQuery ¿ÉÒÔ½âÎöÎĵµ¶ÔÏóÄ£ÐÍ£¨DOM£©²¢ÕÒµ½Òª×ª»»µÄÔªËØ¡£Íê³ÉÐÞ¸ÄÖ®ºó£¬HTML ÈçÇåµ¥ 3 Ëùʾ£º


Çåµ¥ 3. »ÃµÆÆ¬µÄ HTML ´úÂë
<div id="imageCarousel" class="jcarousel-skin-tango">
	<ul class="productImages">
		<li>
			<img class="product" alt="product photo"
				width="500" height="375" src="http://www.phpchina.com/../img/pizza1.jpg" />
			Photo credit: <a target="_blank"
			href="http://www.flickr.com/photos/kankan/">Kanko*</a>,
			Flickr, Creative Commons Attribution License
		</li>
		<!--additional <li> items, images and photo credits here-->
	</ul>
</div>

×îºó£¬´´½¨»ÃµÆÆ¬µÄ JavaScript ´úÂë¡£ÓÉÓÚÓÐ jCarousel µÄ°ïÖú£¬ÕâÖ»ÐèÒª¼¸ÐдúÂë¡£ÔÚ HTML ÎĵµµÄ¶¥²¿£¬°üº¬µÄ JavaScript ºÍ CSS ÎļþµÄÏÂÃæ£¬Ìí¼ÓÇåµ¥ 4 ËùʾµÄÄÚÁª½Å±¾¿é£º


Çåµ¥ 4. »ÃµÆÆ¬µÄ JavaScript ´úÂë
<script type="text/javascript">
$(document).ready(function() {
 
	$('#imageCarousel').jcarousel({
		scroll: 1
	});
 
});
</script>

Õâ¶Î JavaScript ´úÂë¿´ÆðÀ´¼òµ¥£¬µ«ÊÇËü»áÍê³ÉËùÓи´ÔӵŤ×÷¡£Ëüͨ¹ýµ÷Óà jQuery µÄreadyʼþ´¦Àíº¯Êý£¬Ö¸Ê¾ jQuery µÈ´ýÒ³ÃæµÄ DOM ×°ÔØÍê³É£¬È»ºóÖ´ÐÐÆäËûÈÎÎñ¡£Í¨¹ýµ÷Óà jQuery µÄÑ¡Ôñ·û»úÖÆ£¨$º¯Êý£©£¬Èà jQuery ÕÒµ½idÊôÐÔֵΪimageCarouselµÄ DOM ÔªËØ¡£È»ºó£¬µ÷Óðüº¬Õâ¸ö DOM ½ÚµãµÄ¶ÔÏóÉϵÄjcarousel·½·¨£¬ÕâÈà jCarousel °ÑÕâ¸ö½ÚµãÖеÄËùÓбê¼Çת»»ÎªÒ»¸öͼÏñ»ÃµÆÆ¬¡£ÐèÒªÏòjcarousel·½·¨´«µÝÒ»¸ö²ÎÊý£ºÅäÖòÎÊýµÄÉ¢ÁС£jCarousel µÄ´ó¶àÊýĬÈÏÑ¡ÏîÊǺÏÊʵģ¬ËùÒÔÕâ¸öÉ¢ÁÐÖ»°üº¬Ò»¸ö¼ü-Öµ¶Ô£ºscroll£¬ÖµÎª 1£¬ÕâÈà jCarousel ÿ´ÎÖ»ÏÔʾһ¸öͼÏñ¡£

ÏÖÔÚ£¬Í¼Ïñ»ÃµÆÆ¬Íê³ÉÁË¡£

´´½¨ DHTML Ñ¡Ï

½ÓÏÂÀ´£¬ÎªÒ³ÃæÉϵÄÿ²¿·ÖÄÚÈÝ´´½¨ DHTML Ñ¡Ï¡£Ê×ÏÈ£¬°Ñÿ²¿·ÖÄÚÈݰü×°ÔÚÒ»¸öеÄdivÖУ¬²¢ÔÚÆäÖÐÌí¼ÓΩһµÄidÊôÐÔºÍֵΪtabContentµÄclassÊôÐÔ¡£Ð޸ĺóµÄÄÚÈݼûÇåµ¥ 5¡£ÕâЩ°ü×°Æ÷µÄ×÷ÓÃÊÇΪ jQuery UI Tabs Ìṩ¹³×Ó£¬ÈÃËüÖªµÀ°ÑÄÄЩ±ê¼Çת»»ÎªÑ¡ÏµÄÄÚÈÝ¡£


Çåµ¥ 5. detailA.html ÖÐÎ岿·ÖÄÚÈÝµÄ HTML
<div class="tabContent" id="introduction">

	<h2>Introduction</h2>

	<!--paragraphs of text content here-->
 
</div>

<div class="tabContent" id="moreDetails">

	<h2>More Details</h2>

	<!--paragraphs of text content here-->

</div>

<div class="tabContent" id="userReviews">

	<h2>User Reviews</h2>

	<!--paragraphs of text content here-->

</div>

<div class="tabContent" id="techSpecs">

	<h2>Technical Specifications</h2>

	<!--paragraphs of text content here-->

</div>

<div class="tabContent" id="productImages">

	<h2>Product Images</h2>

	<div id="imageCarousel" class="jcarousel-skin-tango">
    	<ul class="productImages">
			<!--<li> items from your image slideshow here-->
		</ul>
	</div>

</div>

½ÓÏÂÀ´£¬ÔÚ HTML ÎĵµÖÐÌí¼ÓһЩ±ê¼Ç£ºÒ»¸öÎÞÐòµÄÁ´½ÓÁÐ±í¡£Õâ»á³öÏÖÔÚÎĵµ¶¥²¿£¬¾ÍÔÚʵ¼ÊÄÚÈݵĵÚÒ»²¿·ÖÇ°Ãæ¡£jQuery UI Tabs »á°ÑÕâЩ±ê¼Çת»»ÎªÐµÄÄÚÈÝÑ¡Ï½çÃæ¡£¾¡¹ÜÁ´½ÓµÄhrefÊôÐÔ¿´ÆðÀ´ÏñÄÚ²¿ÎĵµÃª£¬µ«ÊÇËüÃÇʵ¼ÊÉÏÓëÇ°Ãæ´´½¨µÄ°ü×°Æ÷divµÄidÊôÐÔÆ¥Åä¡£ÕâЩ±ê¼Ç¼ûÇåµ¥ 6£º


Çåµ¥ 6. detailA.html ÖÐÔö¼ÓµÄ HTML ÄÚÈÝ
<ul class="navTabs">
    <li><a href="#introduction"><span>Introduction</span></a></li>
    <li><a href="#moreDetails"><span>More Details</span></a></li>
    <li><a href="#userReviews"><span>User Reviews</span></a></li>
    <li><a href="#techSpecs"><span>Technical Specifications</span></a></li>
    <li><a href="#productImages"><span>Product Images</span></a></li>
</ul>

½ÓÏÂÀ´£¬´´½¨Á½×éÑùʽ£¬·Ö±ðÓÃÓÚÆôÓúͲ»ÆôÓà JavaScript µÄä¯ÀÀÆ÷¡£ÔÚÆôÓà JavaScript µÄä¯ÀÀÆ÷ÖУ¬Óû§»á¿´µ½ÐµÄÑ¡Ïʽ½çÃæ£¬ËùÒÔÐèÒªµ÷ÕûÑ¡ÏÄÚÈݵÄÍâ¹Û¡£Ê×ÏÈ£¬Ìí¼ÓÒ»¶¨µÄÌî³äºÍ±ß¿ò¡£È»ºó£¬ÔÚÿ¸öÑ¡ÏÖнûÖ¹ÏÔʾh2ÔªËØ£»ÔÚнçÃæÖУ¬ÕâЩ±êÌâ»áÏÔʾΪѡÏµÄÎı¾±êÇ©£¬ËùÒÔ²»ÐèÒªÖØ¸´ÏÔʾ¡£ÕâЩÑùʽ¹æÔòÓ¦¸ÃÌí¼ÓÔÚÈ«¾ÖÑùʽ±íÖС£

½ûÓà JavaScript µÄÓû§²»»á¿´µ½Ñ¡Ïʽ½çÃæ¡£¶ÔÓÚÕâЩÓû§£¬ÐèÒªÒþ²ØÇ°ÃæÌí¼ÓµÄÎÞÐòÁÐ±í£¬É¾³ýÔÚÄÚÈݲ¿·ÖÖÐÌí¼ÓµÄ±ß¿òºÍÌî³ä£¬»Ö¸´ÏÔʾh2ÔªËØ¡£ÐÒÔ˵ÄÊÇ£¬Í¨¹ýʹÓÃnoscript±ê¼ÇºÜÈÝÒ×Íê³ÉÕâЩÈÎÎñ¡£ÎªÁËÔÚ½ûÓà JavaScript µÄä¯ÀÀÆ÷Öи²¸ÇÈ«¾ÖÑùʽ£¬ÔÚnoscript±ê¼ÇÖÐÌí¼ÓһЩ CSS ¹æÔò¡£ÕâЩÑùʽֻÔÚ¹Ø±Õ JavaScript Ö§³ÖµÄÇé¿öÏÂÓ¦Óá£

×îÖÕ½á¹ûÊÇÒ»×éÍâ¹ÛƯÁÁµÄ±ê¼Ç£¬ËüÃÇ»á¸ù¾Ýä¯ÀÀÆ÷µÄ¹¦ÄÜÏÔʾ·Ç³£²»Ò»ÑùµÄ½çÃæ¡£Íê³ÉÖ®ºó£¬Á½¸ö CSS ´úÂë¿é¼ûÇåµ¥ 7 ºÍÇåµ¥ 8£º


Çåµ¥ 7. ÔÚ customizemenow.css ÖÐÌí¼ÓµÄ CSS Ñùʽ
#CMN .tabContent {
	padding: 14px;
	border: 1px solid #97a5b0;
}
#CMN .tabContent h2{
	display: none;
}


Çåµ¥ 8. ÔÚ detailA.html µÄnoscript¿éÖÐÌí¼ÓµÄÑùʽ
<noscript>
	<style type="text/css">
		#CMN .tabContent {
			padding: 0;
			border: 0;
		}
		#CMN .tabContent h2 {
			display: block;
		}
		#CMN ul.nav {
			display: none;
		}
	</style>
</noscript>

×îºó£¬Ìí¼ÓÓÃÀ´´´½¨ DHTML Ñ¡ÏµÄ¶¨ÖÆ JavaScript¡£Îª´Ë£¬ÐèÒªÔÚÇ°Ãæ´´½¨µÄÄÚÁª½Å±¾¿é£¨¼ûÇåµ¥ 4£©ÖÐÌí¼Ó´úÂë¡£Çåµ¥ 9 ¸ø³öÄÚÁª½Å±¾¿é£º


Çåµ¥ 9. detailA.html Öе͍֯ JavaScript
$(document).ready(function() {
 
	/*earlier jCarousel code goes first*/

	/*create tabs from an unordered list using jquery.ui.tabs*/
	$('ul.navTabs').tabs(
		{ fx: { height: 'toggle', opacity: 'toggle' } }
	);
 
});

ÓëʹÓà jCarousel ʱһÑù£¬jQuery UI Tabs µÄ¶¨ÖÆ JavaScript Ò²·Ç³£¼òµ¥¡£Í¬ÑùʹÓà jQuery µÄÑ¡Ôñ·û»úÖÆÑ°ÕÒÒ»¸ö DOM ÔªËØ£¨ÔÚÕâÀïÊÇÎÞÐòµÄÁ´½ÓÁÐ±í£©¡£È»ºó£¬jQuery UI Tabs µÄtabs·½·¨°ÑÕâ¸öul¼°Æäli×ÓÔªËØ×ª»»ÎªÑ¡Ïʽ½çÃæ¡£tabs·½·¨¼ì²éÎÞÐòÁбíÖеÄÁ´½Ó£¬²¢°Ñÿ¸öÑ¡ÏÓë¶ÔÓ¦µÄ°üº¬ÄÚÈݵÄdivÆ¥ÅäÆðÀ´¡£Ã¿¸ödiv×î³õ±»Òþ²Ø£¬Ö±µ½Óû§µ¥»÷¶ÔÓ¦µÄliÔªËØ£¨ÏÔʾΪѡÏ£©¡£Óëjcarousel·½·¨Ò»Ñù£¬¿ÉÒÔͨ¹ý´«µÝ³õʼ»¯²ÎÊýµÄÉ¢ÁÐÀ´¶¨ÖÆtabs·½·¨µÄÐÐΪ¡£ÔÚÕâÀÎÒÃÇÌí¼ÓһЩÊÓ¾õЧ¹û£¬ÈÃÑ¡ÏÔÚä¯ÀÀÆ÷ÖеıíÏÖ¸ü¿á¡£×îºó×¢ÒâÒ»µã£ºÐèÒªÔÚ´´½¨Ñ¡Ï½çÃæÖ®Ç°´´½¨ jCarousel ͼÏñ»ÃµÆÆ¬£»Èç¹ûÏÈ´´½¨Ñ¡Ï½çÃæ£¬jCarousel ¾Í»áÔÚͼÏñ carousel µÄ CSS ÊôÐÔ·½Ãæ²úÉú»ìÂÒ¡£

¼ì²éµ¥Ò³Ãæ°æ±¾

Èç¹û¿´Ò»Ï Customize Me Now 2.1 µÄ Product Details Ò³ÃæµÄ°æ±¾ A£¬¾Í»á¿´µ½ DHTML Ñ¡Ï£¨Í¼ 5£©ºÍͼÏñ carousel£¨Í¼ 6£©µÄÏÔʾЧ¹û¡£ÎªÁË¿´µ½µ­³öºÍ´°Á±Ð§¹ûµÈÊÓ¾õЧ¹û£¬ÔÚ Web ä¯ÀÀÆ÷ÖÐ×°ÔØÒ³Ãæ¡£

Óë 1.1 °æÏà±È£¬2.1 °æµÄ Product Details Ò³Ãæ°æ±¾ A Óм¸¸öÓŵ㡣Ëü¶ÔÓû§Òþ²ØÁËÅÓ´ó¸´ÔÓµÄÐÅÏ¢£¬ÌṩÁ˸ü¼Ó¼ò½àµÄ½çÃæ¡£Ñ¡Ïʽµ¼º½·½·¨Ê¹Óû§Äܹ»ÓÐÌõÀíµØÎüÊÕÀí½â¸÷²¿·ÖÄÚÈÝ¡£Èç¹ûÔÚä¯ÀÀÆ÷ÖнûÓà JavaScript ²¢ÖØÐÂ×°ÔØÒ³Ãæ£¬¾Í»á¿´µ½Óë 1.1 °æ¼¸ºõÍêȫһÑùµÄÒ³Ãæ¡£Õâ¾ÍÊǽ¥½øÊ½¸Ä½øµÄ×÷Óᣵ«²»ÐÒµÄÊÇ£¬Õâ¸ö°æ±¾Ã»Óнâ¾öµ¥Ò³Ãæ·½·¨µÄ´ø¿íÎÊÌâ¡£Óû§ÈÔÈ»±ØÐëÏÂÔØËùÓÐÎı¾ºÍͼÏñ£¬¼´Ê¹ËûÃÇ¿ÉÄܸù±¾²»²é¿´ÕâЩÄÚÈÝ¡£ÏÂÃæ¾ÍÀ´½â¾öÕâ¸öÎÊÌâ¡£

¸ÄÔì¶àÒ³Ãæ°æ±¾

¼ÈÈ»ÒѾ­ÔÚµ¥Ò³Ãæ°æ±¾µÄ Product Details Ò³ÃæÖÐÌí¼ÓÁËÑ¡ÏºÍͼÏñ carousel£¬ÏÂÃæ¾Í¶Ô¶àÒ³Ãæ°æ±¾½øÐÐÏàËÆµÄ¸Ä½ø¡£ÕâÀïµÄ´úÂë±È½Ï¸´ÔÓ£¬ÒòΪѡÏºÍ carousel µÄÄÚÈÝҪͨ¹ý Ajax ¶¯Ì¬µØ×°Ôص½Ò³ÃæÖС£µ«ÊÇ£¬Õâ»á»»À´¸ü¿ìµÄÒ³Ãæ×°ÔØËٶȲ¢½ÚÊ¡´ø¿í¡£¶îÍâµÄÄÚÈÝÖ»ÔÚÐèҪʱ¶¯Ì¬µØ×°ÔØ¡£

´´½¨ Ajax ͼÏñ carousel

ÒªÏëÓöàÒ³ÃæµÄ Product Details ÄÚÈÝ´´½¨Ò»¸öͼÏñ carousel£¬µÚÒ»²½Êǹ¹½¨Ò»¸öÐ嵀 JavaScript Object Notation£¨JSON£©Îĵµ¡£JSON ÊÇÒ»ÖÖÓë XML ÏàËÆµÄÊý¾Ý´«Êä¸ñʽ£¬µ«ÊǸüÇáÁ¿¡£ÕâÖÖ¸ñʽ·Ç³£ÊÊºÏ Ajax£¬ÒòΪ jQuery ºÍÆäËû Ajax ¿ò¼Ü¿ÉÒÔ¿É¿¿µØ°Ñ JSON Îĵµ×ª»»Îª JavaScript ¶ÔÏ󣬶øÇÒËٶȷdz£¿ì¡£ÎÒÃÇµÄ JSON Îĵµ²»°üº¬Èκαê¼Ç£¬Ö»°üº¬Òª×ª»»Îª»ÃµÆÆ¬µÄͼÏñµÄ URL ºÍÔªÊý¾Ý¡£´´½¨Õâ¸öÎĵµÖ®ºó£¬°ÑËü±£´æÎª detailB5-fragment.html£¬¼ûÇåµ¥ 10£º


Çåµ¥ 10. detailB5-fragment.html ÖÐµÄ JSON Êý¾Ý
{"items": [
	{
		"url": "pizza1.jpg",
		"width": "500",
		"height": "375",
		"creditURL": "kankan",
		"creditLabel": "Kanko*"
	},
	{
		"url": "pizza2.jpg",
		"width": "500",
		"height": "374",
		"creditURL": "lenore-m",
		"creditLabel": "L. Marie"
	},
	{
		"url": "pizza3.jpg",
		"width": "500",
		"height": "375",
		"creditURL": "roadhunter",
		"creditLabel": "Topato"
	},
	{
		"url": "pizza4.jpg",
		"width": "500",
		"height": "369",
		"creditURL": "sgt_spanky",
		"creditLabel": "Kevitivity"
	},
	{
		"url": "pizza5.jpg",
		"width": "500",
		"height": "368",
		"creditURL": "fooey",
		"creditLabel": "fo¨¦öÞoooey"
	},
	{
		"url": "pizza6.jpg",
		"width": "500",
		"height": "334",
		"creditURL": "pancakejess",
		"creditLabel": "jsLander"
	}
]}

½ÓÏÂÀ´£¬°´ÕÕÇ°Ãæ´¦Àí detailA.html µÄ·½Ê½£¨²Î¼ûÇåµ¥ 1£©£¬ÔÚ detailB1.html µÄ¶¥²¿Ìí¼Ó jQuery¡¢jQuery UI Tabs ºÍ jCarousel Îļþ¡£È»ºó£¬Ïò detailB1.html£¨ËüΪͼÏñ»ÃµÆÆ¬´´½¨Õ¼Î»·û£©µÄÎĵµÌåÌí¼Ó HTML£»jCarousel ½«ÓÃͼÏñÄÚÈÝÌî³äÕâ¸ö¿ÕµÄÎÞÐòÁÐ±í¡£Õ¼Î»·ûµÄ HTML ¼ûÇåµ¥ 11£º


Çåµ¥ 11. detailB1.html ÖеÄռλ·û
<div class="tabContent" id="productImages">
 
	<h2>Product Images</h2>
 
	<div id="imageCarousel" class="jcarousel-skin-tango">
    	<ul class="productImages">
		</ul>
	</div>
 
</div>

×îºó£¬ÔÚ HTML ÎĵµÍ·ÖÐÕâЩÎļþÏÂÃæµÄ½Å±¾¿éÖÐÌí¼Ó¶¨ÖÆµÄ JavaScript ´úÂë¡£Õâ¸ö½Å±¾¿é¼ûÇåµ¥ 12£º


Çåµ¥ 12. detailB1.html ÖÐµÄ JavaScript ´úÂë
<script type="text/javascript">

window.alert = function() {
	return;
};

$(document).ready(function() {
 
	/*
		create an image slideshow from a JS array of URLs using
		jcarousel
	*/
	var itemLoadCallback = function(carousel, state) {
		if (state != 'init') {
			return;
		}
		jQuery.getJSON("detailB5-fragment.html", function(data){
	 		itemAddCallback(carousel, carousel.first,
				carousel.last, data.items);
		});
	};

	var itemAddCallback = function(carousel, first, last, data) {
	    for (i = 0, j = data.length; i < j; i++) {
	        carousel.add(i, getItemHTML(data[i]));
	    }
	    carousel.size(data.length);
	};

	var getItemHTML = function(d) {
		return '<img class="product" alt="product photo" width="' +
			d.width + '" height="' +
			d.height + '" src="../img/' +
			d.url + '" />Photo credit: <a target="_blank"' +
			' href="http://www.flickr.com/photos/' +
			d.creditURL + 's/">' +
			d.creditLabel + '</a>, Flickr, ' +
			'Create Commons Attribution License'
		;
	};

	jQuery('#imageCarousel').jcarousel({
		itemLoadCallback: itemLoadCallback,
		scroll: 1
	});
 
	jQuery('ul.productImages').css("width","3012px");
 
});
</script>

Õâ¶Î JavaScript ±ÈÇ°Ãæ´´½¨µÄ´úÂë¶¼¸´ÔÓ¡£Ëü°üº¬ÒÔϺ¯Êý£º

  • itemLoadCallback¡£Ê¹Óà Ajax ´ÓÇ°Ãæ´´½¨µÄ JSON Îĵµ¶ÁÈ¡Êý¾Ý£¬È»ºó°ÑÊý¾Ý´«µÝ¸øitemAddCallback¡£
  • itemAddCallBack¡£½âÎöitemLoadCallback×°ÔØµÄ JSON Êý¾Ý²¢°Ñÿ¸öͼÏñÌí¼Óµ½ carousel ÖС£
  • getItemHTML¡£°Ñ JSON Êý¾Ýת»»³É²åÈë DOM ËùÐèµÄ jCarousel ±ê¼Ç¡£

ΪÁ˵÷ÓÃÕâЩº¯Êý£¬Òª°ÑitemLoadCallback×÷ΪѡÏîÉ¢ÁеÄÒ»²¿·Ö´«µÝ¸øjcarousel·½·¨¡£Õâ¸æËß jCarousel£¬ËüÓ¦¸ÃÓà Ajax Êý¾Ý¶¯Ì¬µØ¹¹½¨»ÃµÆÆ¬£¬¶ø²»ÊÇʹÓà DOM ÖÐÏÖÓеıê¼Ç¡£itemLoadCallbackºÍËüµÄ¸¨Öúº¯Êý»á×Ô¶¯Íê³ÉÕâ¸öÈÎÎñ¡£µ«ÊÇ£¬jCarousel ÔÚ²ÉÓÃÕâÖÖ·½Ê½Ê±»á²úÉúÁ½¸öÆæ¹ÖµÄÏÖÏó¡£

Ê×ÏÈ£¬jCarousel ËÆºõ»á´íÎ󵨼ÆËã¶¯Ì¬×°ÔØµÄÄÚÈÝµÄ CSS ÊôÐÔ¡£½á¹ûÊÇÔÚ»ÃµÆÆ¬ÖÐÓм¸¸öͼÏñ¸ù±¾²»³öÏÖ¡£µ÷ÊÔ±íÃ÷£¬jCarousel Ū´íÁ˰üº¬Í¼ÏñµÄulµÄ¿í¶È¡£Äú¿ÉÒÔ»¨Ê±¼äµ÷ÊÔÕâ¸öÎÊÌâ²¢À©Õ¹ jCarousel ´úÂëÀ´¾ÀÕýËü£¬µ«ÊÇÓÐÒ»¸ö¸ü¼ò±ãµÄ·½·¨£ºÔÚ¹¹½¨ carousel Ö®ºó£¬Óà jQuery µÄcss·½·¨µ÷ÕûËüµÄ¿í¶È£¬Ê¹ËüÓë Product Details °æ±¾ A ÖзǶ¯Ì¬Éú³ÉµÄ carousel µÄ¿í¶ÈÆ¥Åä¡£

jCarousel µÄµÚ¶þ¸öÎÊÌâÓëµÚÒ»¸öÎÊÌâÏà¹Ø£ºÒòΪ jCarousel ¶Ô DOM ÔªËØ¿í¶ÈµÄ¼ÆËã²»ÕýÈ·£¬ËùÒÔÿµ±Óû§µ÷Õûä¯ÀÀÆ÷´°¿Ú´óСʱ£¬Ëü»áÏÔʾһ¸ö´íÎóÏûÏ¢¡£Õâ¸ö´íÎóÏûÏ¢ÒÔ JavaScript ¾¯¸æ¿òµÄÐÎʽ³öÏÖ£¬Õâ¾ø¶Ô²»ÊǺܺõÄÓû§ÌåÑé¡£ÒªÏë¾ÀÕýÕâÖÖÐÐΪ£¬¿ÉÒÔÓÃÒ»¸öÑÆº¯ÊýÌæ»» JavaScript ÄÚÖõÄwindow.alert·½·¨¡£

´´½¨ Ajax Ñ¡Ï

ÒªÏëÔÚ¶àÒ³ÃæµÄ Product Details ÉÏʹÓà jQuery UI Tabs£¬Ó¦¸Ã»ìºÏʹÓÃÄÚÁªÄÚÈݺͶ¯Ì¬µÄ Ajax ÄÚÈÝ¡£Óà detailB1.html Îļþ×÷ΪËùÓÐÄÚÈݵİü×°Æ÷Ò³Ãæ£¨ÄÚÈÝÒÔǰ°üº¬ÔÚ detailB2.html¡¢detailB3.html ºÍ detailB4.html ÖУ©¡£Í¨¹ý Ajax °ÑÕâЩÎļþµÄÄÚÈÝ×°ÔØµ½ detailB1.html ÖеÄÎÊÌâÊÇ£¬Ã¿¸öÒ³Ãæ¶¼°üº¬Ò»¸öÍêÕûµÄ HTML Îĵµ£»¶øÎÒÃÇÕæÕýÐèÒªµÄÊÇÿ¸öÒ³ÃæÓÐÒ»¸ö¶ÔÓ¦µÄdiv¡£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬ÎÒÃÇÒª´´½¨ÕâÐ©Ò³ÃæµÄÁíÒ»¸ö°æ±¾£º¸´ÖÆÃ¿¸öÎļþ£¬ÐÞ¸ÄÎļþÃû£¬É¾³ý¶àÓàµÄ±ê¼Ç¡£½á¹ûÊÇÈý¸öÐÂÎļþ£¬detailB2-fragment.html¡¢detailB3-fragment.html ºÍ detailB4-fragment.html¡£ÕâЩÎļþÓëÇåµ¥ 13ÏàËÆ¡£µ±È»£¬ÔÚÕæÊµ»·¾³ÖУ¬¿ÉÒÔÓ÷þÎñÆ÷¶ËÄ£°åÒýÇæÉú³ÉÍêÕû HTML °æºÍƬ¶Î°æÁ½ÖÖÄÚÈÝ¡£ÀýÈ磬Ruby on Rails µÈ¿ò¼Ü¿ÉÒÔ¸ù¾ÝÇëÇóÊÇÕý³£ÇëÇó»¹ÊÇ Ajax µ÷Óã¬×Ô¶¯µØ¶ÔÏàͬµÄÄÚÈÝÓ¦Óò»Í¬µÄ°ü×°Æ÷¡£µ«ÊÇ£¬ÒòΪÕâ¸öʾÀýֻʹÓÿͻ§¶Ë´úÂ룬ËùÒÔÎÒÃÇÓõ¥¶ÀµÄÎļþÄ£ÄâÕâÖÖЧ¹û¡£


Çåµ¥ 13. HTML Ƭ¶ÎÎļþµÄ±ê¼Ç
<div class="tabContent" id="moreDetails">
 
	<h2>More Details</h2>

	<!--paragraphs of text content here-->

</div>

½ÓÏÂÀ´£¬ÐèÒªÐÞ¸Ä detailB1.html ÖеÄһЩ±ê¼Ç¡£ÔÚ Customize Me Now 1.1 ÖУ¬Õâ¸öÒ³Ãæ°üº¬Ò»¸ö¸¨Öúµ¼º½²Ëµ¥£¬°ïÖúÓû§ÔÚÒ³ÃæÖ®¼äÒÆ¶¯£¬¼ûÇåµ¥ 14¡£¶ÔÕâЩ±ê¼Ç×öһЩÐ޸ģ¬Èà jQuery UI Tabs °ÑËüת»»ÎªÑ¡Ï½çÃæ¡£Ð޸ĺóµÄ±ê¼Ç¼ûÇåµ¥ 15¡£


Çåµ¥ 14. detailB1.html ÖÐÔ­À´µÄµ¼º½²Ëµ¥±ê¼Ç
<ul class="nav">
	<li><a href="detailB1.html">Introduction</a></li>
	<li><a href="detailB2.html">More Details</a></li>
	<li><a href="detailB3.html">User Reviews</a></li>
	<li><a href="detailB4.html">Technical Specifications</a></li>
	<li class="last"><a href="detailB5a.html">Photos</a></li>
</ul>


Çåµ¥ 15. detailB1.html ÖÐÐ޸ĺóµÄ Ajax Ñ¡Ï±ê¼Ç
<ul class="nav">
    <li><a href="detailB1.html"><span>Introduction</span></a></li>
    <li><a href="detailB2.html"><span>More Details</span></a></li>
    <li><a href="detailB3.html"><span>User Reviews</span></a></li>
    <li><a href="detailB4.html"><span>Technical Specifications</span></a></li>
    <li class="last"><a href="detailB5a.html"><span>Product Images</span></a></li>
</ul>

½ÓÏÂÀ´£¬ÔÚÒ³ÃæÉϵÄÄÚÁª½Å±¾¿éÖÐÌí¼Ó JavaScript ´úÂë¡£Íê³ÉÖ®ºó£¬½Å±¾¿éÀàËÆÓÚÇåµ¥ 16£º


Çåµ¥ 16. ÓÃÀ´´´½¨ Ajax Ñ¡ÏµÄÄÚÁª½Å±¾¿é
$(document).ready(function() {
 
	/*transform urls for tabs with inline content*/
	$('ul.nav > li:first > a').attr("href", "#introduction");
	$('ul.nav > li:last > a').attr("href", "#productImages");

	/*transform urls for tabs with ajax content*/
	$('ul.nav > li:not(:first):not(:last) > a').each(function (i) {
		var el = $(this);
		el.attr("href", el.attr("href").replace(".html",
			"-fragment.html"));
	});
 
	/*earlier jCarousel code goes here*/
 
	/*
		replace ul classname of "nav" with "navTabs" to
		reset styling to a blank state
	*/
	$('ul.nav').attr({"class":"navTabs"});

	/*create tabs from an unordered list using jquery.ui.tabs*/
	$('ul.navTabs').tabs(
		{ fx: { height: 'toggle', opacity: 'toggle' } }
	);
 
});

ÓÃÀ´´´½¨ Ajax Ñ¡ÏµÄ JavaScript ´úÂë±ÈÇ°ÃæµÄ DHTML Ñ¡Ï´úÂ븴ÔӵöࡣͬÑù£¬ÕâÒ²ÊÇÒòΪÎÒÃÇÐèÒª½¥½øÊ½¸Ä½ø¡£ÔÚÇ°ÃæÐ޸ĸ¨Öúµ¼º½²Ëµ¥µÄ±ê¼Çʱ£¨¼ûÇåµ¥ 15£©£¬Ã»ÓÐÐÞ¸ÄÁ´½Ó URL¡£ÕâÑùµÄ»°£¬ÔÚ¹Ø±Õ JavaScript Ö§³Öʱ£¬ÕâЩÁ´½ÓÈÔÈ»±íÏÖÕý³£¡£µ«ÊÇ£¬ÎªÁË´´½¨ Ajax Ñ¡Ï£¬ÕâЩÁ´½ÓÐèҪת»»Îª jQuery UI Tabs ¿ÉÒÔÀí½âµÄ¸ñʽ¡£¶ÔÓÚ°üº¬ÄÚÁªÄÚÈÝµÄ Introduction ºÍ Product Images Ñ¡Ï£¬hrefÊôÐÔ²ÉÓÃ#wrapperDivIDAttribute¸ñʽ¡£¶ÔÓÚÆäËûÈý¸öÑ¡Ï£¨ÆäÄÚÈÝÊÇͨ¹ý Ajax »ñµÃµÄ£©£¬hrefÊôÐÔÐèÒªÒýÓÃÇ°Ãæ´´½¨µÄ HTML Ƭ¶ÎÎļþ¡£ÐÒÔ˵ÄÊÇ£¬jQuery ºÜÈÝÒ×ת»»ÕâЩÁ´½Ó¡£

Ò²ºÜÈÝÒ×Ð޸ĸ¨Öúµ¼º½²Ëµ¥µÄclassÊôÐÔ¡£Ðí¶àÑùʽ¹æÔòÓë×é³É²Ëµ¥µÄulÏà¹ØÁª¡£ÔÚ°ÑliÔªËØ×ª»»ÎªÑ¡Ïʱ£¬ÐèҪȡÏûÔ­À´µÄÑùʽ¡£Îª´Ë£¬Ê¹Óà jQuery °ÑulÔªËØµÄclassÊôÐÔÖµÓÉnav¸ÄΪnavTabs¡£Íê³ÉÖ®ºó£¬¿ÉÒÔÓà jQuery Ñ¡Ôñ·û»úÖÆ£¨$º¯Êý£©Ñ¡ÔñÕâ¸öulÔªËØ²¢¶ÔËüÓ¦ÓÃtabs·½·¨¡£

ÏÖÔÚ»ù±¾ÉÏÍê³ÉÁË£¬µ«ÊÇ»¹ÓÐһЩ CSS ÎÊÌâÒª´¦Àí¡£Ê×ÏÈ£¬ÐèÒª¸²¸ÇËùÓв»Ó¦¸ÃÓ¦ÓÃÓÚÒ³ÃæµÄ Ajax °æ±¾µÄÑùʽ¡£Îª´Ë£¬ÓëÇ°ÃæÒ»ÑùÔÚÒ³Ãæ¶¥²¿Ìí¼ÓÒ»¸önoscriptÑùʽ¿é¡£µ«ÊÇ£¬ÕâÒ»´ÎÐèÒªÓÃÒ»¸ö¶îÍâµÄÑùʽ¹æÔòÒþ²ØÇ°ÃæÌí¼ÓµÄÑÆÍ¼Ïñ»ÃµÆÆ¬±ê¼Ç¡£Íê³ÉÖ®ºó£¬noscriptÑùʽ¿éÈçÇåµ¥ 17 Ëùʾ£º


Çåµ¥ 17. detailB1.html µÄ noscript Ñùʽ
<noscript>
	<style type="text/css">
		#CMN .tabContent {
			padding: 0;
			border: 0;
		}
		#CMN .tabContent h2 {
			display: block;
		}
		#CMN #productImages {
			display: none;
		}
	</style>
</noscript>

×îºó£¬ÐèÒª½â¾ö jQuery Tabs UI °Ñ Ajax ÄÚÈݲåÈëÑ¡Ï½çÃæÊ±µÄÒ»¸ö¹ÖÒìÏÖÏó¡£Èç¹ûÔÚ Web ä¯ÀÀÆ÷Öп´¿´Õâ¸öÒ³Ãæ£¬»á¿´µ½Ñ¡ÏºÍ Ajax Ñ¡ÏÄÚÈÝÖ®¼äµÄ±ß¿òºñ¶ÈÊÇÔ¤ÆÚºñ¶ÈµÄÁ½±¶¡£ÕâÊÇÒòΪ jQuery UI Tabs °Ñÿ²¿·Ö Ajax ÄÚÈÝ·ÅÔÚÒ»¸ö¾ßÓж¥±ß¿òµÄ°ü×°Æ÷divÖУ»µ«ÊÇ£¬ÔÚ°ü×°Æ÷ÄÚ²¿£¬ÒѾ­¶Ô HTML Ƭ¶ÎÓ¦ÓÃÁ˱߿ò£¬ËùÒԻῴµ½Ë«Öر߿ò¡£ÎªÁ˾ÀÕýÕâ¸öÎÊÌ⣬ÔÚ HTML Ƭ¶ÎÎļþµÄ°ü×°Æ÷divÖÐÌí¼ÓÁíÒ»¸öÀ࣬ȻºóÌí¼ÓÒ»¸öÑùʽ¹æÔò£¬´Ó¾ßÓÐÕâ¸öÀàµÄÔªËØÉÏɾ³ý¶¥±ß¿ò¡£´úÂë¼ûÇåµ¥ 18 ºÍÇåµ¥ 19£º


Çåµ¥ 18. ¾ÀÕýË«ÖØ±ß¿òÎÊÌâµÄ CSS ÉùÃ÷
#CMN .tabContent.noTop {
	border-top: 0;
}


Çåµ¥ 19. Ó¦ÓÃÓÚ HTML Ƭ¶ÎÎļþµÄ CSS Àà
<div class="tabContent noTop" id="moreDetails">
 
	<h2>More Details</h2>

	<!--paragraphs of text content here-->

</div>

¼ì²é¶àÒ³Ãæ°æ±¾

ÏÖÔÚ£¬¿ÉÒÔÔÚ Web ä¯ÀÀÆ÷Öв鿴 2.1 °æµÄ Product Details Ò³Ãæ°æ±¾ B¡£ËüµÄÍâ¹ÛºÍ±íÏÖÓ¦¸ÃºÜÏñ°æ±¾ A£¨Í¼ 5ºÍͼ 6£©¡£µ«ÊÇÔÚÄ»ºó£¬°æ±¾ B µÄЧÂʸߵöࡣÔÚÓû§µ¥»÷¶ÔÓ¦µÄÑ¡Ï֮ǰ£¬²¢²»×°ÔØ Ajax ÄÚÈÝ£¬Õâ»á½ÚÊ¡´ø¿í¡£µ«ÊÇ£¬Õâ²¢²»»á½ÚÊ¡´«ÊäͼÏñËùÐèµÄ´ø¿í¡£°´ÕÕ¶¨ÖÆ Ajax ´úÂëµÄ¹¤×÷·½Ê½£¬»áĬÈÏ×°ÔØ jCarousel »ÃµÆÆ¬ÖеÄËùÓÐͼÏñ¡£¾¡¹ÜÈç´Ë£¬Ò³ÃæµÄ×°ÔØÊ±¼äÈÔÈ»µÃµ½Á˸Ľø¡£Ö±µ½ÏÔÊ¾Ò³ÃæµÄÆäÓಿ·ÖÖ®ºó£¬ä¯ÀÀÆ÷²Å»áÏò·þÎñÆ÷ÇëÇóÕâЩͼÏñ¡£¶ÔÓÚʹÓÃÂýËÙÁ¬½ÓµÄÓû§£¬Õâ»áÏÔÖø¸Ä½øÓû§ÌåÑé¡£

»¹¿ÉÒÔ½øÒ»²½¸Ä½øÕâ¸öÒ³Ãæ£ºÈÃä¯ÀÀÆ÷ÔÚÓû§Ñ¡Ôñ Product Images Ñ¡Ï֮ǰ²»×Ô¶¯×°ÔØÍ¼Ïñ¡£ÕâÑùµÄ»°£¬Èç¹ûÓû§²»´òËã²é¿´Í¼Ïñ£¬¾Í²»±ØÀË·Ñ´ø¿íÀ´×°ÔØËüÃÇ¡£ÕâÑùµÄ½â¾ö·½°¸»áÔö¼Ó JavaScript ´úÂëµÄ¸´ÔÓÐÔ£¬µ«ÊÇÈç¹û²úÆ·µÄͼÏñ±È½Ï¶à£¬ÕâÑù×ö¾ÍÊÇÖµµÃµÄ¡£

µ±¹Ø±Õ JavaScript Ö§³Öʱ£¬Product Details µÄ°æ±¾ A ºÍ B Ö®¼äµÄ¸ù±¾²îÒì¾Í»á±íÏÖ³öÀ´¡£°æ±¾ A »áÍË»¯Îªµ¥Ò»¹ö¶¯Ò³Ã棬¶ø°æ±¾ B ÍË»¯Îª¶àÒ³Ãæ°æ±¾¡£

½áÊøÓï

ÔÚ±¾ÏµÁÐµÄµÚ 3 ²¿·ÖÖУ¬Ñ§Ï°ÁËÈçºÎÓ¦Óý¥½øÊ½¸Ä½øÔ­ÀíʵÏÖÏÖ´úµÄ±ãÓÚʹÓÃµÄ Ajax ½çÃæ¡£»¹½øÒ»²½Á˽âÁË jQuery ¼°Æä²å¼þ¡£¿ÉÒÔʹÓÃÔÚ±¾ÎÄÖÐѧµ½µÄ¼¼ÄܽøÒ»²½¸Ä½øÄúµÄÕ¾µã¡£ÀýÈ磬¿ÉÒÔʹÓà jQuery Cookie ²å¼þÈÃä¯ÀÀÆ÷ÔÚÓû§ÏÂÒ»´Î·ÃÎÊÒ³ÃæÊ±¼ÇסԭÀ´Ñ¡ÔñµÄÑ¡Ï¡£»¹¿ÉÒÔÔÚ Purchase Confirmation Ò³ÃæÉϹ¹½¨Ñ¡Ïʽ½çÃæ£º½»²æÏúÊÛ¡¢¶©µ¥ÖطźÍÕʵ¥ÖطŸ÷ÓÐÒ»¸öÑ¡Ï¡£¸Ä½øµÄ»ú»áÊÇÎÞÏ޵ġ£

ÔÚÕæÊµ»·¾³ÖУ¬¿ÉÄܸù±¾Óò»µ½¹¹½¨ Product Details Ò³ÃæµÄÈý¸ö°æ±¾¡£¶ÔÓÚÕâÑùµÄ¼òµ¥¹¦ÄÜ£¬ÕâÑù×ö»¨µÄʱ¼äÌ«¶àÁË¡£ÁíÍ⣬»ìºÏʹÓò»Í¬µÄ½çÃæ»á°ÑÓû§ÅªºýÍ¿¡£¾¡¹ÜÈç´Ë£¬±¾ÎÄ˵Ã÷ÁËÔÚ jQuery µÈ¿ª·ÅÔ´Â빤¾ßµÄ°ïÖúÏ£¬ºÜÈÝÒ×ʵÏÖ Ajax¡¢½¥½øÊ½¸Ä½øºÍÒÔÓû§ÎªÖÐÐĵÄÉè¼Æ¡£

¶¥:9 ²È:9
¶Ô±¾ÎÄÖеÄʼþ»òÈËÎï´ò·Ö:
µ±Ç°Æ½¾ù·Ö£º-0.8 £¨20´Î´ò·Ö£©
¶Ô±¾Æª×ÊѶÄÚÈݵÄÖÊÁ¿´ò·Ö:
µ±Ç°Æ½¾ù·Ö£º0.71 £¨17´Î´ò·Ö£©
¡¾ÒѾ­ÓÐ26È˱í̬¡¿
4Ʊ
¸Ð¶¯
1Ʊ
·¹ý
2Ʊ
¸ßÐË
3Ʊ
Äѹý
3Ʊ
¸ãЦ
1Ʊ
·ßÅ­
8Ʊ
ÎÞÁÄ
4Ʊ
ͬÇé
ÉÏһƪ£ºW3C¿ªÊ¼ÎªHTMLÓïÑÔ¼ÓÈëÓ²¼þ²Ù×÷¹¦ÄÜÏÂһƪ£ºjson¸ñʽ»¯,ͳһ¸ñʽ?,ǰ¶ËÓëºó¶ËµÄÃ
²é¿´È«²¿»Ø¸´¡¾ÒÑÓÐ0Î»ÍøÓÑ·¢±íÁË¿´·¨¡¿ÆÀÂÛÇø
·¢±íÆÀÂÛ

ÍøÓÑÆÀÂÛ½ö¹©ÍøÓѱí´ï¸öÈË¿´·¨£¬²¢²»±íÃ÷±¾ÍøÍ¬ÒâÆä¹Ûµã»ò֤ʵÆäÃèÊö¡£