欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

多种JQuery循环滚动文字图片效果代码_jquery

程序员文章站 2022-05-08 08:35:33
...
自己模仿JQ插件的写法写了一个循环滚动列表插件,支持自定义上、下、左、右四个方向,支持平滑滚动或者间断滚动两种方式,都是通过参数设置。JQ里面有些重复的地方,暂时没想到更好的方法去精简。不过效果还是可以的,如下(效果图上传后都加速了,实际效果比这个要慢很多):

多种JQuery循环滚动文字图片效果代码_jquery

html代码如下:



循环滚动列表
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery
  • 多种JQuery循环滚动文字图片效果代码_jquery

css样式如下:

@charset "utf-8";
/* 简单reset */
body, ul, li {
 margin: 0;
 padding: 0;
}
body {
 font: 14px/24px Microsoft YaHei;
 color: #333;
}
ul { list-style: none; }
a {
 color: #333;
 outline: none;
 text-decoration: none;
}
a:hover { color: #2986dd; }
img { border: none; }
.clearfix:after {
 visibility: hidden;
 display: block;
 font-size: 0;
 content: " ";
 clear: both;
 height: 0;
}
.clear {
 display: block;
 clear: both;
 height: 0;
 font-size: 0;
 line-height: 0;
 content: ".";
 overflow: hidden;
}
.wrap {
 width: 900px;
 padding-top: 30px;
 margin: 0 auto;
}
.boxs {
 padding: 15px;
 margin: 0 auto 30px;
 background-color: #e4fbff;
}
.box01 { width: 870px; }
.box02 {
 float: left;
 width: 400px;
}
.box03 {
 float: right;
 width: 400px;
}
.box04 { width: 720px; }
/* 具体样式 ---------- */
/* 通用必需样式 */ /* PS:有些重要样式在js里先写好了,下面id容器、ul和li标签的样式比较重要 */ 
.autoBox {
 position: relative;
 margin: 0 auto;
 overflow: hidden;
}
.autoBox ul {
 position: absolute;
 list-style: none;
 z-index: 2;
}
/* 第一、四个列表 */ /* PS:左右滚动型列表需要css定义高度,li标签可以有margin值 */
#autoScroll01, #autoScroll04 {
 width: auto;
 height: 174px;
}
#autoScroll01 ul li, #autoScroll04 ul li {
 float: left;
 width: 128px;
 height: 168px;
 padding: 3px;
 margin: 0 5px;
 _display: inline;
}
#autoScroll01 li a, #autoScroll04 li a {
 display: block;
 padding: 3px;
 border: 1px solid #dbdbdb;
 box-shadow: 0 0 3px rgba(170, 223, 252, 0.5);
}
#autoScroll01 li a:hover, #autoScroll04 li a:hover {
 border-color: #71ddff;
 box-shadow: 0 0 3px rgba(77, 185, 245, .90);
}
#autoScroll01 li img, #autoScroll04 li img {
 display: block;
 width: 120px;
 height: 160px;
}
/* 第二、三个列表 */ /* PS:上下滚动型列表需要css定义宽度,li标签尽量不要设置margin值 */
#autoScroll02, #autoScroll03 {
 width: 100%;
 height: auto;
}
#autoScroll02 ul li {
 height: 30px;
 line-height: 30px;
 overflow: hidden;
}
#autoScroll03 ul li {
 height: 40px;
 line-height: 40px;
 overflow: hidden;
}
#autoScroll02 li a, #autoScroll03 li a {
 display: block;
 width: 100%;
 height: 24px;
 line-height: 24px;
 margin: 3px 0;
 text-overflow: ellipsis;
 white-space: nowrap;
 overflow: hidden;
}
#autoScroll03 li a { margin: 8px 0; }

js代码如下:

/** 
 * Name : 循环滚动列表 
 **/
 (function(jQuery){
  $.fn.autoScroll = function (o) {
  o = $.extend({         //设置默认参数 
   direction: 'left',
   interval: null,
   speed: null,
   distance: null,        
   liWidth: null,
   liHeight: null,         
   showNum: null
  },o || {});
  return this.each(function(){     //回调开始
   var $ts = $(this),
    $ul = $ts.children("ul"),
    $li = $ul.children("li"),
    len = $li.length;
   if (o.direction == 'up' || o.direction == 'down' ){   //根据类型设置css
    $ts.css({ "width": "100%", "height": o.showNum * o.liHeight });
    $ul.css({ "width": "100%", "height": len * o.liHeight });
    $li.css({ "float": "none", "width": "100%", "height": o.liHeight, "margin": 0,"padding": 0 });
   };   
   if (o.direction == 'left' || o.direction == 'right' ){  //其实也可以在css里写好
    $ts.css({ "width": o.showNum * o.liWidth });
    $ul.css({ "width": len * o.liWidth });
    $li.css({ "float": "left" });
   };
   switch (o.direction){          //分四种情况,进行事件调用
    case 'left': sroLeft();
    break;
    case 'right':sroRight();
    break;
    case 'up':  sroUp();
    break;
    case 'down': sroDown();
    break; 
   };
   function sroLeft(){           //向左滚动事件
    $ul.css("left", 0); 
    var left;
    function leftMoving(){
     var dis = -o.distance,
      dif = -o.liWidth * (len - o.showNum);
      left = parseFloat($ul.css("left"));
     if (left 


兼容到IE6+,jq库用1.7+的都没问题 。