最近在看jquery书时,看到一个比较有趣的东西:图片轮换。这里和大家分享下我看完后写的一个demo。实现图片轮换要完成三部分模块:html部分、css部分、jqury部分。下面分步详细说明。
1.html部分:

  1. <div class="showContainer">
  2. <div class="showHead">
  3. <div id="headName" class="headItem">五月天专辑</div>
  4. <div id="pageInfo" class="headItem">
  5. <ul>
  6. <li class="selected"></li>
  7. <li></li>
  8. <li></li>
  9. </ul>
  10. </div>
  11. <div id="controlBtns" class="headItem">
  12. <span><<</span><span>>></span>
  13. </div>
  14. </div>
  15.  
  16. <div class="showContent">
  17. <div class="showContentList">
  18. <ul>
  19. <!--第一板-->
  20. <li>
  21. <img src="../imgs/fastSong.jpg" alt="Alternate Text" />
  22. <div>伤心的人别听慢歌....</div>
  23. <span>播放:523,4455</span>
  24. </li>
  25. <li>
  26. <img src="../imgs/goldchildren.jpg" alt="Alternate Text" />
  27. <div >神的孩子都在跳舞....</div>
  28. <span>播放:123,4455</span>
  29. </li>
  30. <li>
  31. <img src="../imgs/poetryAfter.png" alt="Alternate Text" />
  32. <div>后青春期的诗....</div>
  33. <span>播放:133,4445</span>
  34. </li>
  35. <li>
  36. <img src="../imgs/secondLive.jpg" alt="Alternate Text" />
  37. <div>第二人生....</div>
  38. <span>播放:183,4655</span>
  39. </li>
  40.  
  41. <!--第二板-->
  42. <li>
  43. <img src="../imgs/liveForLove.jpg" alt="Alternate Text" />
  44. <div>我为爱而生....</div>
  45. <span>播放:423,4355</span>
  46. </li>
  47. <li>
  48. <img src="../imgs/enough.jpg" alt="Alternate Text" />
  49. <div>知足。怎么去拥有 一道彩虹....</div>
  50. <span>播放:723,4955</span>
  51. </li>
  52.  
  53. </ul>
  54. </div>
  55. </div>
  56. </div>

基本上就是三个部分:按钮控区#controlBtns,.图片展示区.showContent,当前板块#pageInfo。

2.css部分。主要是控制好图片展示区的样式。图片列表父容器.showContent的
position设为relative,overflow为hidden。其子元素showContentList的position设为absolute,列表ul的white-space设为nowrap。为了方便大家快速查看效果,我把完整的css也附上来:

  1. body {
  2. font-size:14px;
  3. }
  4.  
  5. ul {
  6. margin:0;
  7. padding:0;
  8. }
  9.  
  10. ul li {
  11. float:left;
  12. list-style:none;
  13. }
  14.  
  15. .main {
  16. height:500px;
  17. width:1100px;
  18. border:1px solid #808080;
  19. border-radius:2px;
  20. margin:10px auto;
  21. }
  22.  
  23. .showContainer {
  24. height:200px;
  25. width:770px;
  26. margin:10px auto;
  27. }
  28.  
  29. .showContainer .showHead {
  30. height:35px;
  31. width:100%;
  32. background-color:#2B6CAD;
  33. opacity:0.7;
  34. border-top-left-radius:2px;
  35. border-top-right-radius:2px;
  36. }
  37.  
  38. .showContainer .headItem {
  39. float:left;
  40. margin-top:10px;
  41. padding-left:5px;
  42. }
  43.  
  44. #headName {
  45. width:130px;
  46. font-size:16px;
  47. color:white;
  48. font-weight:bold;
  49. }
  50.  
  51. #pageInfo {
  52. width:80px;
  53. }
  54.  
  55. #pageInfo ul li {
  56. width:12px;
  57. height:12px;
  58. border-radius:10px;
  59. background-color:#E7E7E7;
  60. text-align:center;
  61. margin-right:2px;
  62. }
  63.  
  64. #pageInfo ul li.selected {
  65. background-color:#41403C;
  66. }
  67.  
  68. #controlBtns {
  69. width:65px;
  70. height:20px;
  71. border:1px solid #41403C;
  72. border-radius:4px;
  73. background-color:white;
  74. line-height:20px;
  75. }
  76. #controlBtns span {
  77. cursor:pointer;
  78. display:block;
  79. float:left;
  80. height:20px;
  81. width:30px;
  82. text-align:center;
  83. }
  84.  
  85. #controlBtns span:first-child {
  86. border-right:1px solid #41403C;
  87. }
  88.  
  89. #controlBtns span:hover {
  90. color:red;
  91. font-weight:bold;
  92. }
  93.  
  94. .showContainer .showContent {
  95. height:180px;
  96. width:100%;
  97. overflow:hidden;
  98. position:relative;
  99. }
  100.  
  101. .showContent .showContentList {
  102. position:absolute;
  103. height:100%;
  104. }
  105.  
  106. .showContainer .showContentList ul {
  107. height:180px;
  108. white-space:nowrap;
  109. }
  110.  
  111. .showContainer ul li{
  112. height:180px;
  113. width:187px;
  114. margin-right:2px;
  115. /*margin-left:2px;*/
  116. margin-top:5px;
  117. }
  118.  
  119. .showContainer ul li img {
  120. height:120px;
  121. width:180px;
  122. cursor:pointer;
  123. border:1px solid #808080;
  124. }
  125.  
  126. .showContainer ul li div {
  127. font-weight:bold;
  128. margin:5px 0;
  129. }

3. js部分。利用jquery的animate方法实现起来确实简单代码如下:

  1. $(function () {
  2. var currentIndex = 1;
  3. var cellNum = 4;
  4. var contentWidth = $('.showContent').width();
  5. var $list = $('.showContentList'); //列表对象 即滚动的容器
  6. var banCount = Math.ceil($list.find('li').length / cellNum); //计算总的板数
  7.  
  8. $('#controlBtns span').click(function () {
  9. var index = $(this).index();
  10. if ($list.is(":animated")) { //防止出现连续多次点击后,仍然滑动的情况
  11. return;
  12. }
  13. if (index == 0) { //上一板
  14. if (currentIndex == 1) {
  15. currentIndex = banCount;
  16. $list.animate({ left:'-' contentWidth*(banCount-1) }, 'normal');
  17. }
  18. else {
  19. currentIndex --;
  20. $list.animate({ left: ' =' contentWidth }, 'normal');
  21. }
  22.  
  23. }
  24. else {
  25. if(currentIndex == banCount)
  26. {
  27. currentIndex=1;
  28. $list.animate({ left: '0' }, 'normal');
  29. }
  30. else
  31. {
  32. currentIndex ;
  33. $list.animate({ left: '-=' contentWidth }, 'normal');
  34. }
  35.  
  36. }
  37.  
  38. /*显示当前所在版的*/
  39. $('#pageInfo ul li').eq(currentIndex - 1).addClass('selected')
  40. .siblings().removeClass('selected');
  41.  
  42. });
  43.  
  44. });

  js代码都比较简单,就不做多的解释了。就这样,比较简单的图片轮换效果就实现。效果如图:

Jquery实现图片轮换效果的更多相关文章

  1. jQuery仿迅雷图片轮换效果

    jQuery仿迅雷图片轮换效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...

  2. Image Wall - jQuery & CSS3 图片墙效果

    今天我们要为您展示如何基于 jQuery 和 CSS3 创建一个整洁的图片墙效果.我们的想法是在页面上洒上一些大小不同的缩略图,并在当我们点击图片时候显示丝带,会显示一些描述,再次点击缩略图时,丝带将 ...

  3. 仿FLASH的图片轮换效果

    css布局代码(test.css): body { background: #ccc;} ul { padding: 0; margin: 0;} li { list-style: none;} im ...

  4. 如何用Jquery做图片展示效果

    一. 前言 到底用JQuery做出怎样的展示效果? 让我们先来看一下!网页加载时,如图所示: 二.本人思路 这个效果初学者看起来好像有点复杂,其实不太难,关键是理清思路,从后端的数据库中找出我们要展示 ...

  5. jQuery实现图片放大镜效果

    实现图片放大镜的原理: 给放大镜元素一个对应的html元素为<div class='right'> 设置这个div的宽高固定为某个值(350px,350px) 设置div的css为超出部分 ...

  6. jquery 鼠标图片经过效果

    <script> //鼠标图片经过效果 $(function(){ $(".jione_box ").css("background-color", ...

  7. 第74天:jQuery实现图片导航效果

    图片导航效果 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  8. jquery带小图的图片轮换效果

    右边显示大图,左边显示小图 <style> ul{ list-style:none; padding:0px; margin:0px;} li{ list-style:none; padd ...

  9. JS 阶段练习~ 仿flash的图片轮换效果

    结合了所学的简单运动框架~  做这样一个综合小实例~~ -------------------------主要问题: 1.getByClassName  IE低版的兼容性 2.DOM不够严谨 … 各种 ...

随机推荐

  1. php编写tcp服务器和客户端程序

    这是我从别的地方看到的. 1.修改php.ini,打开extension=php_sockets.dll 2.客户端程序 SocketClient.php <?php set_time_limi ...

  2. NOI 1.5 42:画矩形

    描述 根据参数,画出矩形. 输入 输入一行,包括四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列):第三个参数是一个字符,表示用来画图的矩形符号:第 ...

  3. zjuoj 3773 Paint the Grid

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3773 Paint the Grid Time Limit: 2 Secon ...

  4. 18.有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?

    方法1(对于PHP5及更高版本): $readcontents = fopen("http://www.phpres.com/index.html", "rb" ...

  5. [C#开发小技巧]解决WinForm控件TabControl闪烁问题

    在用C#开发WinForm程序时,常发现TabControl出现严重的闪烁问题,这主要是由于TabControl控件在实现时会绘制默认的窗口背景.其实以下一段简单的代码可以有效的缓解该问题的发生.这就 ...

  6. Node.js Express 框架 POST方法

    POST 方法 以下实例演示了在表单中通过 POST 方法提交两个参数,我们可以使用 server.js 文件内的 process_post 路由器来处理输入: index.htm 文件代码修改如下: ...

  7. MAC下彻底解决mysql无法插入和显示中文

    一.场景呈现 Mac 下Eclipse+mysql开发j2ee的时候,在页面像数据库中插入中文数据的时候,数据库会报错.而且即使插入成功,在控制台或者其他可视化数据库操作软件看数据发现都是??,错误的 ...

  8. 快速排序算法 java 实现

    快速排序算法 java 实现 快速排序算法Java实现 白话经典算法系列之六 快速排序 快速搞定 各种排序算法的分析及java实现 算法概念 快速排序是C.R.A.Hoare于1962年提出的一种划分 ...

  9. .net 事务处理的三种方法

    方法1:直接写入到sql 中 在存储过程中使用 BEGIN TRANS, COMMIT TRANS, ROLLBACK TRANS 实现 begin trans declare@orderDetail ...

  10. c#DataGridView数据绑定示例——格式化单元格的内容(转)

    转自http://blog.csdn.net/testcs_dn/article/details/37834063 c#DataGridView数据绑定示例 格式化单元格的内容 在使用DataGrid ...