js jquery做的图片连续滚动代码

核心代码如下,大家可以参考


代码如下:

<script src="/js/jquery.js"></script> 
<script> 
$(document).ready(function(){

$(".bannerbutton li").each( 
                     function(){ 
                            $(this).click( 
                                   function(){ 
                                          bannerGo($(this).attr("num")); 
                                   } 
                            ) 
                     } 
              ) 
       $(".img li:last").html($(".img li:first").html()); 
}); 
var active=1;//当前显示第1个 
var picNum=4;//4个图转换 
var time=500;//移动速度 
var intTime=3000;//自动转换间隔时间 
var width=568; //图片宽 
var perDistance=57;//每次移动距离 
var tagObj=0; 
var marquee; 
var autoMarquee; 
var distance; 
var tmpDistance=0; 
var listLeft=0; 
var tagLeft=0; 
var move=false;

function bannerGo(tag){ 
       if(active != tag){ 
              if(!move){ 
              listLeft=parseInt($(".banner ul.img").css("left")); 
              distance=(tag-active)*width; 
              tmpDistance=0; 
              perTime=parseInt(time*perDistance/distance); 
              if(tag>active){ 
                     tagLeft=listLeft-distance; 
                     marquee=setInterval("Marquee(1)",perTime) 
              }else{ 
                     tagLeft=listLeft-distance; 
                     marquee=setInterval("Marquee(0)",perTime) 
              } 
              active=Number(tag); 
              if(active==picNum+1) 
                     active=1; 
              move=true; 
              } 
       } 
}

function Marquee(t){ 
       var x=false; 
       if(t==0){ 
              listLeft=listLeft+perDistance; 
              if((tagLeft-listLeft)>=perDistance){ 
                     $(".banner ul.img").css("left",listLeft+"px"); 
              }else{ 
                     $(".banner ul.img").css("left",tagLeft+"px"); 
                     x=true; 
              } 
       }else{ 
              listLeft=listLeft-perDistance; 
              if((tagLeft-listLeft)<=perDistance){ 
                     $(".banner ul.img").css("left",listLeft+"px"); 
              }else{ 
                     $(".banner ul.img").css("left",tagLeft+"px"); 
                     x=true; 
              } 
       } 
       if(x){ 
              clearInterval(marquee); 
              tmpDistance=0; 
              listLeft=0; 
              tagLeft=0; 
              move=false; 
              $(".bannerbutton li").css("background","url(/images/index/b2.gif) no-repeat"); 
              $(".bannerbutton li[@num="+active+"]").css("background","url(/images/index/b1.gif) no-repeat"); 
              if(tagObj==picNum+1){ 
              $(".banner ul.img").css("left","0"); 
              active=1; 
              } 
       } 
}

function autoMarquee(){ 
       tagObj=Number(active)+1; 
       bannerGo(tagObj); 
}

function autoMarqueeStart(){ 
       if(!move){ 
       marquee=setInterval("autoMarquee()",intTime) 
       }else{ 
       setTimeout("autoMarqueeStart()",time); 
       }


autoMarqueeStart(); 
</script> 
<style> 
*{margin:0;padding:0;border:0} 
li{float:left;} 
ul{list-style-type:none;} 
.banner{height:228px;width:568px;overflow:hidden;} 
.bannerbutton li{ 
       width:23px; 
       height:22px; 
       background:url(/images/index/b2.gif) no-repeat; 
       cursor:pointer; 
       line-height:22px; 
       text-align: center; 
       color: #fff; 
       font-weight: bold; 

.banner .img li{float:left;} 
.banner .img { 
       position: relative;width:5600px; 

body,td,th { 
       font-size: 12px; 

body { 
       margin-left: 0px; 
       margin-top: 0px; 
       margin-right: 0px; 
       margin-bottom: 0px; 

</style> 
<div class="banner"> 
        <ul class="bannerbutton" style="position:absolute;z-index:2;top:200px;;left:10px;"> 
                                   <li num=1 style="background:url(/images/index/b2.gif);">1</li> 
                                   <li num=2>2</li> 
                                   <li num=3>3</li> 
                                   <li num=4>4</li> 
       </ul> 
  <ul class="img" style="left:0px;"> 
                            <li><img src="/images/temp/bn1.jpg" width="568" height="228"></li> 
                            <li><img src="http://zsrimg.ikafan.com/upload/image/2007-11-17_17-30-42.jpg" width="568" height="228"></li> 
                            <li><img src="http://zsrimg.ikafan.com/upload/image/4bb7eaf902000mnl.jpg" width="568" height="228"></li> 
                            <li><img src="http://zsrimg.ikafan.com/upload/image/Products/2007-11-16_22-11-15.jpg" width="568" height="228"></li> 
                            <li></li> 
   </ul> 
</div>

(0)

相关推荐

  • 基于jquery实现点击左右按钮图片横向滚动

    点击左右按钮图片横向滚动jquery,一次滚动四个,图片滚动完成,自动回到第一个版面: 效果图如下: 复制代码 代码如下: <!DOCTYPE html> <html lange="en"> <head> <title>点击左右按钮图片横向滚动</title> <meta charset=utf-8" /> <style type="text/css"> * { margi

  • jQuery中$.fn的用法示例介绍

    $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效. 如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个jquery实例都可以引用这个方法了. 那么你可以这样子:$("#div").abc(); jQuery为开发插件提拱了两个方法,分别是: jQuery.extend(object);为扩展jQuery类本身.为类添加新的方法. jQuery.fn.extend(object);给jQue

  • jQuery插件开发的两种方法及$.fn.extend的详解

    jQuery插件开发分为两种: 1 类级别 类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQuery.extend(object); 复制代码 代码如下: $.extend({ add:function(a,b){return a+b;} , minus:function(a,b){return a-b;} }); 页面中调用: 复制代码 代码如下: var i = $.add(3,2); var j

  • 浅谈jquery中的each方法$.each、this.each、$.fn.each

    jquery.each 方法 方法一 $("img").each(function(i,elem){ // i 下标 从零开始, // elem == this // $(elem).toggleClass("example"); $(this).toggleClass("example"); }); 方法二 $.each([1,2,3,4],function(){ //$(this)==数组中的每一个数组(如果数组是对象,就是对象) }); 方

  • jquery中$.fn和图片滚动效果实现的必备知识总结

    前言 图片滚动效果相信对大家来说都不陌生,烂大街的效果图如下所示,js实现代码很短,不过如果想做的话,必须掌握jquery.IIFE.setInterval等基础以及$.fn用法: jquery中$.fn用法 $.fn是jquery的命名空间,如果对jquery源码有过学习,就不难发现源码中有如下代码: jquery.fn=jquery.prototype={ init:function(selector,context){ /* *code */ } } 所以说jquery.fn也就是jque

  • jquery $.fn $.fx是什么意思有什么用

    $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效. 如扩展$.fn.abc() 那么你可以这样子:$("#div").abc(); 通常使用extend方法扩展,详细请看API. $.fx是指jquery的特效. 如果使用显示.滑动.淡入淡出.动画等. $.fx.off可以关闭动画,其实是直接显示结果. jquery的extend和fn.extend jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(object

  • jquery 单行滚动、批量多行滚动、文字图片翻屏滚动效果代码

    以下代码,运行后,需要刷新下,才能加载jquery,要不然看不到效果.1.单行滚动效果 无标题文档 ul,li{margin:0;padding:0} #scrollDiv{width:300px;height:25px;line-height:25px;border:#ccc 1px solid;overflow:hidden} #scrollDiv li{height:25px;padding-left:10px;} function AutoScroll(obj){ $(obj).find

  • 基于jQuery的图片左右无缝滚动插件

    在线演示:http://demo.jb51.net/js/2012/myslideLeftRight/打包下载:http://www.jb51.net/jiaoben/44973.html核心代码: 复制代码 代码如下: (function($){ $.fn.extend({ "slidelf":function(value){ value = $.extend({ "prev":"", "next":""

  • 基于jQuery图片平滑连续滚动插件

    * 此插件要求运行在jQuery v1.3 或更高版本上 * 插件可以实现图片平滑向上或向左滚动 * 如果您需要更多的效果或在使用中本插件存在BUG,可以给在彦磊的博客上留言,彦磊将尽自己最大努力完善此插件 * 您留言前请先到:http://gmarwaha.com/jquery/jcarousellite/ 上面下载jcarousellite插件 * 来和彦磊图片平滑滚动的插件相互补充使用以获取更多的图片效果 * 彦磊图片平滑滚动插件只是对jcarousellite插件的补充 * * * 技术

  • 利用jQuery简单实现产品展示图片左右滚动功能(示例代码)

    最近要做一个产品展示功能,由于产品比较多,一屏展示不完,所以想要做一个通过点击进行翻页的效果,在网上找了几个都不大好用,最后只能自己动手写了. 效果如下所示: 原理比较简单:将要滚动显示的区域的CSS的override设为hidden,宽度设成一个比较大的值,如4000px,然后每次点击上一页或下一页的按钮时,计算当前页数,如果已经到了最后一页,则回到第一页,滚动是通过控制div的left属性实现的,需要两个div,外面的div的position设为retative,里面的DIV的positio

随机推荐