简单的轮播图

男娘i 2022-06-06 01:05 324阅读 0赞

最近一直在研究Ajax与后台的交互,今晚看了一下轮播图如何与结合Ajax与后台进行实时的数据连接。
首先我讲一下我做轮播图的思路吧。首先html的代码如下:

  1. <div id="loading">loading...</div><!--在DOM结构还没完全加载出来是呈现-->
  2. <!--#imagePanel是用于放图片和按钮的面板-->
  3. <div id="imagePanel">
  4. <!--a标签时用于放图片-->
  5. <a href="#" id="imageLink">
  6. <img src="./images/jiuzhaigou1.jpg" alt="轮播图_1" id="image">
  7. </a>
  8. <!--#imageTitle用于放序列按钮-->
  9. <div id="imageTitle">
  10. </div>
  11. </div>

然后是基本的css样式,如下:

  1. #imagePanel { width: 480px; height: 180px; position: relative; }
  2. #imageTitle { margin: 0; padding:0; height: 18px; position: absolute; bottom: 0; right: 0; /* background-color: red; */ background-color: #fff; overflow: hidden; }
  3. a.button { display: block; width: 18px; height: 18px; background-color: #000; text-decoration: none; color: #fff; font-size: 10px; text-align: center; line-height: 18px; margin: 1px; float: right; }

(a.button这个样式是用于动态添加的序列按钮上)以上样式可以自行修改变得更美观吧,我比较懒就意思意思吧哈哈哈哈。
主要是讲功能的实现
我这里用的是jQuery,所以要引入jquery库。
需要实现的功能:图片的自动切换(changeImg());
动态生成按钮并点击可以跳到相应的图(createTitle);
向讲一下图片自动切换的函数吧。实现原理很简单,主要通过jquery的animate方法实现,改变dom结构中图片的src即可。

  1. function changeImage(imgID){
  2. clearTimeout(timer);//清除定时器
  3. $("#image").animate({
  4. opacity:'toggle'
  5. },'fast');//通过改变当前图片的透明度(变为0)实现当前图片消失
  6. if(imgID>imgUrl.length) imgID=1;//当imgID大于图片总数时,从头再来轮播
  7. $("#image").attr('src',imgUrl[imgID]);//设置当前img元素的src
  8. $("#imageLink").attr("href",imgLink[imgID]);
  9. $("#image").animate({
  10. opacity:'toggle'
  11. },'slow');//通过设置imgID这个数字的图片 的opacity为1实现呈现图片效果
  12. $("a.button").css("background-color",'#000');//设置全部按扭背景初始化
  13. $('#link'+imgID).css("background-color",'#FF6600');//为 当前图片对应的按钮设置不同的背景
  14. timer=setTimeout('changeImage('+(imgID+1)+')',5000);//设置一个定时器,每隔一段时间就自增执行一次这个函数
  15. }

动态生成按钮函数:

  1. function createTitle(){
  2. var linkHtml='';
  3. for(var i=imgUrl.length;i>0;i--){ linkHtml+='<a href="javascript:changeImage('+i+')" class="button" id="link'+i+'">'+i+'</a>';//动态生成的所有按钮,通过a元素实现按钮 }
  4. return linkHtml;
  5. }

基本上的代码全了,再加上一些代码即可,如下是全部的代码:

  1. var imgUrl=new Array();
  2. var imgAlt=new Array();
  3. var imgLink=new Array();
  4. imgUrl[0]='images/pic1.jpg';
  5. imgLink[0]='#1';
  6. imgUrl[1]='images/pic2.jpg';
  7. imgLink[1]='#2';
  8. imgUrl[2]='images/pic3.jpg';
  9. imgLink[2]='#1';
  10. imgUrl[3]='images/pic4.jpg';
  11. imgLink[3]='#1';
  12. imgUrl[4]='images/pic5.jpg';
  13. imgLink[4]='#1';
  14. imgUrl[5]='images/pic6.jpg';
  15. imgLink[5]='#1';
  16. var imgID=1;
  17. var timer;
  18. $(function(){
  19. $("#loading").hide();
  20. $("#imageTitle").html(createTitle());
  21. changeImage(1);
  22. })
  23. function changeImage(imgID){
  24. $("#image").animate({
  25. opacity:'toggle'
  26. },'fast');
  27. if(imgID>imgUrl.length) imgID=1;
  28. $("#image").attr('src',imgUrl[imgID]);
  29. $("#imageLink").attr("href",imgLink[imgID]);
  30. $("#image").animate({
  31. opacity:'toggle'
  32. },'slow');
  33. $("a.button").css("background-color",'#000');
  34. $('#link'+imgID).css("background-color",'#FF6600');
  35. timer=setTimeout('changeImage('+(imgID+1)+')',5000);
  36. }
  37. function createTitle(){
  38. var linkHtml='';
  39. for(var i=imgUrl.length;i>0;i--){
  40. linkHtml+='<a href="javascript:changeImage('+i+')" class="button" id="link'+i+'">'+i+'</a>';
  41. }
  42. return linkHtml;
  43. }
  44. </script>

对于与后台动态交换,主要就是从后台获取所有照片的信息(主要是src资源位置)。这一点可以通过Ajax向后台获取信息,后台反回响应即可。

——菜鸟一个,有不同意见可以留言00000—-

发表评论

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

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

相关阅读

    相关 简单实现

    轮播图介绍 轮播图是在首页上展示信息的一种方式。为了让用户不用滚动屏幕就能看到更多内容,设计师们利用轮播图来最大化信息密度。轮播图有多种形状和大小,但本文中谈及的轮播...

    相关 简单实现

    看上网上的教程,然后自己做了一个简单的轮播图案例: 图片是从京东上轮播图扣下来的图片。(自己抠图的时候,记得改下代码中盒子的宽度和图片的宽度一致,以及鼠标放上去的时候targ

    相关 简单实现

    简单轮播图的实现 \简单轮播图的实现的思路 1. 所谓的简单轮播图就是指每一个数字按钮对应一张图片,并能够点击数字按钮实现图片的跳转。 2. 其实轮播图就是一个ul列表

    相关 简单

    这篇文章侧重于js方面在轮播时的应用, 这里先交代一下大致的思路: 主要通过对style.left以及对定时器的使用来实现轮播效果 做一个简单的轮播图,我们要解决的主

    相关 简单

    最近一直在研究Ajax与后台的交互,今晚看了一下轮播图如何与结合Ajax与后台进行实时的数据连接。 首先我讲一下我做轮播图的思路吧。首先html的代码如下: <d