`
huanglz19871030
  • 浏览: 248715 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

一个基于jquery的banner轮播

 
阅读更多

一个banner轮播广告。

JavaScript代码
  1. <script type= "text/javascript"  src= "http://www.dabaii.com/demo/20100907/js/jquery.js" ></script>   
  2. <script type= "text/javascript" >    
  3. //dabai.chen 2010-12.02 for zhenai.com index    
  4.     
  5. //无插件 banner切换效果    
  6. $( function (){   
  7.      //获取可点触发编号    
  8.     $( '#bannerTextBox' ).find( 'li' ).mouseover( function (){   
  9.                          //停止自动切换    
  10.                         clearInterval(t1);   
  11.                          //获取编号自定义值 以获取对应图片    
  12.                          var  i = $( this ).attr( 'set' );   
  13.                          //调用切换效果,切换到当前鼠标焦点编号的banner    
  14.                         changeBanner( 'x' ,i);   
  15.                          //设置当前编号的颜色     
  16.                         setListNo.apply( this ,[ 'x' ]);   
  17.                  }).mouseout( function (){   
  18.                          //鼠标离开编号 自动开始继续切换    
  19.                         t1 = setInterval(changeBanner, '3000' );   
  20.     })   
  21. //定义可触发编号 该变量用来自动切换过程中累加计算 用于判断是否到达最好一个banner位置    
  22. var  bannerListIndex = 1;   
  23.     
  24. //设置编号 参数setNo 用来判断方法是setInterval自动触发的还是 mouseover手动触发    
  25. function  setListNo(setNo){   
  26.      //清空历史的选中位置    
  27.     $( '#bannerTextBox' ).find( ".thisHover" ).removeClass( 'thisHover' );   
  28.      //如果是setInterval自动触发    
  29.      if (setNo!= "x" ){   
  30.              //通过 定义可触发编号bannerListIndex 累加参数判断选中位置    
  31.             $( '#bannerTextBox' ).find( "li" ).eq(setNo).addClass( "thisHover" );   
  32.         }   
  33.      //如果是手动触发    
  34.      else {   
  35.              //通过设置当前鼠标点击对象设置 选中位置    
  36.             $( this ).addClass( "thisHover" );     
  37.         }   
  38.     }   
  39.     
  40. //切换方法 参数o 用来判断是否是手动出发  i 用来记录手动出发位置,以便真确定义显示图片    
  41. function  changeBanner(o,i){   
  42.         $( "#bannerImgesBox" ).find( 'a' ).hide();   
  43.          if (o !=  'x' ){   
  44.             setListNo(bannerListIndex);   
  45.             $( "#bannerImgesBox" ).find( 'a' ).eq(bannerListIndex).fadeIn( "slow" );   
  46.         } else {   
  47.                
  48.             $( "#bannerImgesBox" ).find( 'a' ).eq(i).fadeIn( "slow" );   
  49.             bannerListIndex = i;   
  50.             }   
  51.          // 累加bannerListIndex 于判断是否到达最后一个banner位置     
  52.         bannerListIndex++;   
  53.          if (bannerListIndex > 2 ){   
  54.             bannerListIndex = 0   
  55.         }   
  56.     }   
  57. //changeBanner();    
  58. var  t1 = setInterval(changeBanner, '3000' );   
  59. })   
  60. </script>  

 

其实这类banner广告图主要思路都是一样的。

1.定义一个切换的方法。

2.定义一个方法保证切换的时候 下面的  1  2  3  之类的选中位置正确

我这里用的fadeIn() 方法来实现效果。 如果喜欢可以改成其他的。

demo:http://dabaii.com/demo/20101203/index.html

 

2010.12.10:ps:最近同事发现1.2版本jQ下面有问题。主要原因是jquery1.2没有通过each 方法给数组对象绑定时间的时候产生不会闭包效果。所以直接绑定事件的时候始终会执行最后一个。

其实在代码设计的时候 按道理也应该使用each 方法,这样就不需要在 切换对象 上添加一个属性 去获取了。

JavaScript代码
  1. //获取编号自定义值 以获取对应图片   
  2. var  i = $( this ).attr( 'set' );  

如果用each来循环绑定时间,就不需要这个多余的步骤了。下面是修改后的事件绑定。

JavaScript代码
  1. //获取可点触发编号   
  2.     $('#bannerTextBox' ).find( 'li' ).each( function (w){  
  3.         $(this ).mouseover( function (){  
  4.                         //停止自动切换   
  5.                         clearInterval(t1);  
  6.                         //调用切换效果,切换到当前鼠标焦点编号的banner   
  7.                         changeBanner('x' ,w);  
  8.                         //设置当前编号的颜色    
  9.                         setListNo.apply(this ,[ 'x' ]);  
  10.                  }).mouseout(function (){  
  11.                         //鼠标离开编号 自动开始继续切换   
  12.                         t1 = setInterval(changeBanner,'3000' );  
  13.     })  
  14.           
  15.         })  

通过each 的自带索引参数就可以确定但前点击的是第几个。

最后通过测试,发现1.2的jpqery 的数组对象有的情况下还是会产生闭包的。具体我也不知道怎么去判断。所以建议只要是数组对象需要给每个元素绑定时间都调用each方法。

转载自 : http://www.dabaii.com/  不错的js+css前段技术博客

 

分享到:
评论

相关推荐

    jQuery广告banner轮播效果

    3. **定时器与事件监听**:为了实现自动轮播,我们需要设置一个定时器(如`setInterval`),在指定的时间间隔后触发下一张图片的显示。同时,我们还需要监听用户的交互,如点击左右箭头,以便手动切换图片。 4. **...

    jquery banner切换

    在"codefans.net"这个文件名中,可能是一个网站的URL或者代码资源库,它可能包含实现jQuery banner切换的源代码示例、教程或讨论。访问这个链接可以获取更具体的实现细节和示例代码,以便在实际项目中应用。在实际...

    jquery全屏banner自动轮播切换

    "jquery全屏banner自动轮播切换"是指使用jQuery库来创建一个自动在全屏背景下切换图片或内容的Banner效果。 首先,要实现这个功能,我们需要对jQuery的基本语法有一定的了解。jQuery简化了DOM操作、事件处理和动画...

    通栏大banner轮播

    综上所述,通栏大banner轮播是现代网页设计中的一个重要组成部分,其通过jQuery实现的动态效果和交互性,不仅提升了网站的视觉吸引力,也优化了用户的浏览体验。通过熟练掌握HTML、CSS和jQuery,开发者可以创造出...

    jQuery一个banner多格子轮播切换

    在"jQuery一个banner多格子轮播切换"这个主题中,我们将深入探讨如何使用jQuery来实现一个具有多格子展示效果的Banner轮播切换功能。 首先,我们需要理解轮播切换的基本原理。轮播切换通常是通过在一组图片或内容...

    banner轮播

    例如,在文件名为`BannerDemo`的压缩包中,可能包含了一个Banner轮播的示例项目。这个项目可能包含了HTML文件(用于结构)、CSS文件(用于样式)和JavaScript文件(用于逻辑),开发者可以通过查看和学习这个示例,...

    jquery Banner轮播选项卡

    本文将详细介绍如何通过HTML、CSS和JavaScript(主要使用jQuery)来创建一个简单的Banner轮播选项卡。 首先,在HTML结构中,我们需要创建一个包裹层(.wraper),它用于包含所有轮播组件,以便我们可以对其进行相对...

    banner无缝轮播jquery效果

    本文将详细解析一个使用jQuery实现的简洁易懂的Banner无缝轮播效果,并对代码进行逐行分析。 #### 二、核心知识点 ##### 2.1 响应式布局 为了适应不同屏幕尺寸的设备,该示例代码实现了响应式布局。具体实现方法是...

    jquery banner焦点图小图标提示全屏滚动轮播

    本文将详细解析如何利用jQuery创建一个全屏自动向左滚动的焦点图幻灯片,同时带有小图标导航和鼠标悬停提示功能。 首先,我们需要在HTML结构中设置基本的元素。一个全屏轮播通常包括一个容器div,用于包含所有幻灯...

    banner轮播效果累计6种

    【标题】"Banner轮播效果累计6种"指的是在网页设计中常见的Banner(横幅广告)展示方式,这种效果能够以动态的形式展示多张图片或信息,提高用户体验和页面的吸引力。通常,轮播效果包括自动播放、手动切换、指示器...

    基于JQuery的Banner漂亮的前台页面

    本项目"基于JQuery的Banner漂亮的前台页面"正是这样一个旨在实现独特视觉效果的示例,它利用了JQuery的Banner插件来创建一个具有撕裂效果的图片滚动展示。这个效果使图片看起来像是被动态地撕开,增加了页面的互动性...

    banner轮播图

    【banner轮播图】是一种常见的网页设计元素,用于在网站的首页或重要位置展示多张宣传图片,以吸引用户注意力并引导他们浏览更多的内容。在本案例中,我们讨论的是一个包含4张轮播图片的组件,具备左右旋转功能,这...

    Jquery Banner图片切换demo下载

    标题“Jquery Banner图片切换demo下载”涉及到的是一个基于jQuery实现的网页横幅(Banner)图片轮播功能的示例代码。这个项目可能是为网站设计者或开发者提供的一种快速实现动态图片展示效果的工具。 首先,jQuery...

    基于jQuery实现的全屏banner焦点图自动轮播切换效果源码.zip

    【描述】与【标题】相呼应,进一步强调这是一个基于jQuery的代码实现,它提供了全屏大小的Banner区域,并且具有焦点图的自动轮播切换效果。这种效果通常用于网站的首页,以吸引用户的注意力并展示重要的信息或产品。...

    手机端banner轮播效果

    在移动设备上,Banner轮播效果是网页设计中常见的元素,用于展示多个广告或重要信息。这个效果使得有限的屏幕空间能高效地呈现多张图片或内容,吸引用户的注意力并提供交互体验。以下是对手机端Banner轮播效果的详细...

    jquery全屏banner图片淡出淡进自动轮播切换代码

    综上所述,"jquery全屏banner图片淡出淡进自动轮播切换代码"是一个综合了 jQuery 技术、HTML 结构、CSS 样式和动态效果的网页设计实践,它不仅涉及到基本的编程技巧,还涵盖了解决方案的用户体验和性能优化。...

    Banner - 广告轮播

    Banner广告轮播是一种常见的网页设计元素,用于展示多个广告或促销信息,通常以滑动或自动切换的形式呈现,为用户提供动态且丰富的视觉体验。在网页设计中,Banner广告轮播通常位于页面的显眼位置,如顶部、中部或...

    基于JQuery的Banner大图片横向切换效果

    通过以上步骤,我们可以创建出一个功能完备且视觉效果出色的基于JQuery的Banner大图片横向切换效果。这个效果不仅能够提升网站的专业性,还能有效引导用户关注重要信息,是网页设计中不可或缺的一部分。在实际应用中...

    支付宝 淘宝 banner轮播图效果

    这种效果通常由JavaScript库实现,特别是jQuery,一个广泛使用的JavaScript库,能简化DOM操作和动画效果。在这个场景中,我们将探讨如何使用jQuery来创建一个全屏图片幻灯片,模拟支付宝2013版的淡入淡出切换效果。 ...

Global site tag (gtag.js) - Google Analytics