jquery和carousel.min.js实现缩略图轮播

喜欢ヅ旅行 2021-06-26 16:06 754阅读 1赞
  1. @{
  2. Layout = null;
  3. }
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <title>jQuery带缩略图轮播效果</title>
  9. <link href="~/css/style.css" rel="stylesheet" />
  10. </head>
  11. <body style="">
  12. <div class="banner">
  13. <div class="large_box">
  14. <ul>
  15. <li style="display: none;">
  16. <img src="~/images/img1.jpg" width="530" height="350">
  17. </li>
  18. <li style="display: list-item;">
  19. <img src="~/images/img2.jpg" width="530" height="350">
  20. </li>
  21. <li style="display: none;">
  22. <img src="~/images/img3.jpg" width="530" height="350">
  23. </li>
  24. <li style="display: none;">
  25. <img src="~/images/img4.jpg" width="530" height="350">
  26. </li>
  27. <li style="display: none;">
  28. <img src="~/images/img5.jpg" width="530" height="350">
  29. </li>
  30. <li style="display: none;">
  31. <img src="~/images/img6.jpg" width="530" height="350">
  32. </li>
  33. </ul>
  34. </div>
  35. <div class="small_box">
  36. <span class="btn left_btn"></span>
  37. <div class="small_list">
  38. <ul style="width: 720px; margin-left: -120px;">
  39. <li class="">
  40. <img src="~/images/thum1.jpg" width="110" height="73">
  41. <div class="bun_bg"></div>
  42. </li>
  43. <li class="on">
  44. <img src="~/images/thum2.jpg" width="110" height="73">
  45. <div class="bun_bg"></div>
  46. </li>
  47. <li class="">
  48. <img src="~/images/thum3.jpg" width="110" height="73">
  49. <div class="bun_bg"></div>
  50. </li>
  51. <li class="">
  52. <img src="~/images/thum4.jpg" width="110" height="73">
  53. <div class="bun_bg"></div>
  54. </li>
  55. <li class="">
  56. <img src="~/images/thum5.jpg" width="110" height="73">
  57. <div class="bun_bg"></div>
  58. </li>
  59. <li class="">
  60. <img src="~/images/thum6.jpg" width="110" height="73">
  61. <div class="bun_bg"></div>
  62. </li>
  63. </ul>
  64. </div>
  65. <span class="btn right_btn"></span>
  66. </div>
  67. </div>
  68. <script src="~/Scripts/jquery-1.10.2.min.js"></script>
  69. <script src="~/Scripts/carousel.min.js"></script>
  70. <script type="text/javascript"> $(function () { /* 商品轮播图(带缩略图的轮播效果) */ $(".banner").thumbnailImg({ large_elem: ".large_box", small_elem: ".small_list", left_btn: ".left_btn", right_btn: ".right_btn" }); }); </script>
  71. </body>
  72. </html>
  1. (function($){
  2. //默认参数
  3. var defaluts = {
  4. large_elem: "large_elem", //大图
  5. small_elem: "small_elem", //小图
  6. left_btn: "left_btn", //左按钮
  7. right_btn: "right_btn" , //右按钮
  8. state: "on", // 类
  9. speed: "normal", //速度
  10. vis: 4 //项数
  11. };
  12. $.fn.extend({
  13. /* 带缩略图的轮播效果 */
  14. "thumbnailImg": function (options) {
  15. var opts = $.extend({ }, defaluts, options); //使用jQuery.extend 覆盖插件默认参数
  16. //遍历匹配元素的集合
  17. return this.each(function () {
  18. var $this = $(this);
  19. var t = 0;
  20. /* 初始化 */
  21. $(opts.large_elem).find("ul li").eq(0).show();
  22. $(opts.small_elem).find("ul li").eq(0).addClass(opts.state);
  23. var l = $(opts.small_elem).find("ul li").length;
  24. var l_mean;
  25. if(l < opts.vis){
  26. l_mean = 0;
  27. }else{
  28. l_mean = ((parseInt(l / opts.vis) - 1) * opts.vis) + (l % opts.vis);
  29. }
  30. var w = $(opts.small_elem).find("ul li").outerWidth(true); //缩略图项的宽度(包含内边距)
  31. $(opts.small_elem).find("ul").css("width",l * w + "px"); //初始化缩略图总宽度
  32. /* 缩略图点击 */
  33. $(opts.small_elem).find("ul li").click(function(){
  34. $(this).addClass(opts.state).siblings().removeClass(opts.state);
  35. t = $(this).index();
  36. Img($(this).index());
  37. });
  38. /* 左按钮 */
  39. $(opts.left_btn).click(function(){
  40. var i;
  41. $(opts.small_elem).find("ul li").each(function(index){
  42. if($(this).hasClass(opts.state)){
  43. i = index;
  44. }
  45. });
  46. i--;
  47. if(i < 0){
  48. i = l - 1;
  49. }
  50. t = i;
  51. Img(i)
  52. });
  53. /* 右按钮 */
  54. $(opts.right_btn).click(function(){
  55. var i;
  56. $(opts.small_elem).find("ul li").each(function(index){
  57. if($(this).hasClass(opts.state)){
  58. i = index;
  59. }
  60. });
  61. i++;
  62. if(i > l-1){
  63. i = 0;
  64. }
  65. t = i;
  66. Img(i);
  67. });
  68. /* 图片 */
  69. function Img(i){
  70. $(opts.large_elem).find("ul li").eq(i).fadeIn().siblings().hide();
  71. $(opts.small_elem).find("ul li").eq(i).addClass(opts.state).siblings().removeClass(opts.state);
  72. var ml = i * w;
  73. if(ml <= l_mean * w){
  74. $(opts.small_elem).find("ul").stop().animate({
  75. marginLeft: -ml + "px"
  76. },opts.speed)
  77. }else{
  78. $(opts.small_elem).find("ul").stop().animate({
  79. marginLeft: -(l_mean * w) + "px"
  80. },opts.speed)
  81. }
  82. }
  83. var timing = setInterval(function(){
  84. t++;
  85. if(t > l-1){
  86. t = 0;
  87. }
  88. Img(t)
  89. },3000);
  90. $this.hover(function(){
  91. clearInterval(timing);
  92. },function(){
  93. timing = setInterval(function(){
  94. t++;
  95. if(t > l-1){
  96. t = 0;
  97. }
  98. Img(t)
  99. },3000);
  100. });
  101. });
  102. }
  103. });
  104. })(jQuery);

style.css

  1. body, div, ul, li {
  2. margin: 0;
  3. padding: 0;
  4. }
  5. ul {
  6. list-style: none;
  7. }
  8. img {
  9. border: 0;
  10. }
  11. .banner {
  12. margin: 200px auto 0;
  13. width: 530px;
  14. overflow: hidden;
  15. }
  16. .large_box {
  17. margin-bottom: 10px;
  18. width: 530px;
  19. height: 350px;
  20. overflow: hidden;
  21. }
  22. .large_box img {
  23. display: block;
  24. }
  25. .small_box {
  26. width: 530px;
  27. height: 73px;
  28. overflow: hidden;
  29. }
  30. .small_list {
  31. position: relative;
  32. float: left;
  33. width: 480px;
  34. height: 73px;
  35. overflow: hidden;
  36. }
  37. .small_list ul {
  38. height: 73px;
  39. overflow: hidden;
  40. }
  41. .small_list ul li {
  42. position: relative;
  43. float: left;
  44. margin-right: 10px;
  45. width: 110px;
  46. }
  47. .small_list ul li img {
  48. display: block;
  49. }
  50. .small_list ul li .bun_bg {
  51. display: none;
  52. position: absolute;
  53. top: 0;
  54. left: 0;
  55. width: 110px;
  56. height: 73px;
  57. background: #000;
  58. filter: alpha(opacity=60);
  59. -moz-opacity: .6;
  60. -khtml-opacity: .6;
  61. opacity: .6;
  62. }
  63. .small_list ul li.on .bun_bg {
  64. display: block;
  65. }
  66. .btn {
  67. display: block;
  68. width: 20px;
  69. height: 73px;
  70. background-color: #777;
  71. background-repeat: no-repeat;
  72. background-position: center center;
  73. cursor: pointer;
  74. }
  75. .btn:hover {
  76. background-color: #e7000e;
  77. }
  78. .left_btn {
  79. float: left;
  80. margin-right: 10px;
  81. background-image: url(../images/left_btn.png);
  82. }
  83. .right_btn {
  84. float: right;
  85. background-image: url(../images/right_btn.png);
  86. }

如图:

在这里插入图片描述
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,754人围观)

还没有评论,来说两句吧...

相关阅读

    相关 jQuery实现

    我之前用css3实现轮播图过,不过那是一个简单的轮播图,只能来回切换图片。因为那时候我还没有学过javascript,没学过javascript的同学也可以去我主页看看。当然,

    相关 jQuery 实现图片

         自从学习jQuery之后,简直怀疑人生了。      因为,用JavaScript原生代码实现一个效果可能得用几十行代码甚至更多,而用jQuery简单的几行就轻松搞

    相关 略图的淘宝风

    由于项目需要一个类似与淘宝那种的多级联动轮播图。![Center][] 在网上也找到很多类似但都不是设计师所需要的,只能中间写一个。 因为是多级联动,逻辑这一块带