jQuery自动或手动图片切换效果


Posted in jQuery onOctober 11, 2017

学习JS的时候本来积攒了很多有趣的小例子,但是苦于没有找到一些好的平台来展示这些JS效果。今天发现了RunJS这个分享代码的平台,迫不及待得想跟大家分享。

    在浏览各大商城网站的时候,或者某些网站的首页,都会展示与本网站相关的一些实时切换的图片, 本文就给大家分享一个用jQuery实现图片自动切换的例子。    

主页核心代码(Default.aspx):

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>jQuery实现图片切换</title>  
    <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> 
    <script type="text/javascript" src="js/tupianqiehuan.js"></script> 
    <link rel="stylesheet" type="text/css" href="css/tupianqiehuan.css"> 
</head> 
<body> 
    <div class="wrapper"> 
        <h1>jquer实现图片切换</h1> 
        <div id="focus"> 
            <ul> 
                <li><a href="#" target="_blank"><img src="images/01.jpg" alt="" /></a></li> 
                <li><a href="#" target="_blank"><img src="images/02.jpg" alt="" /></a></li> 
                <li><a href="#" target="_blank"><img src="images/03.jpg" alt="" /></a></li> 
                <li><a href="#" target="_blank"><img src="images/04.jpg" alt="" /></a></li><span style="white-space:pre">                 </ul> 
        </div> 
    </div> 
</body> 
</html>

CSS代码(tupianqiehuan.css):  

*{margin:0;padding:0;} 
body{font-size:12px;color:#222;font-family:Verdana,Arial,Helvetica,sans-serif;background:#f0f0f0;} 
.clearfix:after{content: ".";display: block;height: 0;clear: both;visibility: hidden;} 
.clearfix{zoom:1;} 
ul,li{list-style:none;} 
img{border:0;} 
.wrapper{width:800px;margin:0 auto;padding-bottom:50px;} 
h1{height:50px;line-height:50px;font-size:22px;font-weight:normal;font-family:"Microsoft YaHei",SimHei;margin-bottom:20px;} 
/* focus */ 
#focus{width:800px;height:280px;overflow:hidden;position:relative;} 
#focus ul{height:380px;position:absolute;} 
#focus ul li{float:left;width:800px;height:280px;overflow:hidden;position:relative;background:#000;} 
#focus ul li div{position:absolute;overflow:hidden;} 
#focus .btnBg{position:absolute;width:800px;height:20px;left:0;bottom:0;background:#000;} 
#focus .btn{position:absolute;width:780px;height:10px;padding:5px 10px;right:0;bottom:0;text-align:right;} 
#focus .btn span{display:inline-block;_display:inline;_zoom:1;width:25px;height:10px;_font-size:0;margin-left:5px;cursor:pointer;background:#fff;} 
#focus .btn span.on{background:#fff;} 
#focus .preNext{width:45px;height:100px;position:absolute;top:90px;background:url(http://sandbox.runjs.cn/uploads/rs/475/xaqlrnnr/sprite.png) no-repeat 0 0;cursor:pointer;} 
#focus .pre{left:0;} 
#focus .next{right:0;background-position:right top;}

JS代码(tupianqiehuan.js):

$(function() { 
  var sWidth = $("#focus").width(); //获取焦点图的宽度(显示面积) 
  var len = $("#focus ul li").length; //获取焦点图个数 
  var index = 0; 
  var picTimer; 
   
  //以下代码添加数字按钮和按钮后的半透明条,还有上一页、下一页两个按钮 
  var btn = "<div class='btnBg'></div><div class='btn'>"; 
  for(var i=0; i < len; i++) { 
    btn += "<span></span>"; 
  } 
  btn += "</div><div class='preNext pre'></div><div class='preNext next'></div>"; 
  $("#focus").append(btn); 
  $("#focus .btnBg").css("opacity",0.5); 
 
  //为小按钮添加鼠标滑入事件,以显示相应的内容 
  $("#focus .btn span").css("opacity",0.4).mouseover(function() { 
    index = $("#focus .btn span").index(this); 
    showPics(index); 
  }).eq(0).trigger("mouseover"); 
 
  //上一页、下一页按钮透明度处理 
  $("#focus .preNext").css("opacity",0.2).hover(function() { 
    $(this).stop(true,false).animate({"opacity":"0.5"},300); 
  },function() { 
    $(this).stop(true,false).animate({"opacity":"0.2"},300); 
  }); 
 
  //上一页按钮 
  $("#focus .pre").click(function() { 
    index -= 1; 
    if(index == -1) {index = len - 1;} 
    showPics(index); 
  }); 
 
  //下一页按钮 
  $("#focus .next").click(function() { 
    index += 1; 
    if(index == len) {index = 0;} 
    showPics(index); 
  }); 
 
  //本例为左右滚动,即所有li元素都是在同一排向左浮动,所以这里需要计算出外围ul元素的宽度 
  $("#focus ul").css("width",sWidth * (len)); 
   
  //鼠标滑上焦点图时停止自动播放,滑出时开始自动播放 
  $("#focus").hover(function() { 
    clearInterval(picTimer); 
  },function() { 
    picTimer = setInterval(function() { 
      showPics(index); 
      index++; 
      if(index == len) {index = 0;} 
    },4000); //此4000代表自动播放的间隔,单位:毫秒 
  }).trigger("mouseleave"); 
   
  //显示图片函数,根据接收的index值显示相应的内容 
  function showPics(index) { //普通切换 
    var nowLeft = -index*sWidth; //根据index值计算ul元素的left值 
    $("#focus ul").stop(true,false).animate({"left":nowLeft},300); //通过animate()调整ul元素滚动到计算出的position 
    $("#focus .btn span").stop(true,false).animate({"opacity":"0.4"},300).eq(index).stop(true,false).animate({"opacity":"1"},300);//为当前的按钮切换到选中的效果  
  } 
});

具体效果可以参看 效果演示         

这里先给大家一个开胃菜,后面会抽时间简单说一下如何在 RunJS上发布自己的小程序以及使用RunJS的一些小技巧。

jQuery 相关文章推荐
如何编写jquery插件
Mar 29 jQuery
JS/jquery实现一个网页内同时调用多个倒计时的方法
Apr 27 jQuery
关于jQuery.ajax()的jsonp碰上post详解
Jul 02 jQuery
jQuery操作DOM_动力节点Java学院整理
Jul 04 jQuery
jQuery中each循环的跳出和结束实例
Aug 16 jQuery
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
Mar 28 jQuery
jQuery 导航自动跟随滚动的实现代码
May 30 jQuery
JQuery实现简单的复选框树形结构图示例【附源码下载】
Jul 16 jQuery
jQuery 查找元素操作实例小结
Oct 02 jQuery
jQuery插件simplePagination的使用方法示例
Apr 28 jQuery
jquery更改元素属性attr()方法操作示例
May 22 jQuery
基于ajax及jQuery实现局部刷新过程解析
Sep 12 jQuery
jQuery使用bind函数实现绑定多个事件的方法
Oct 11 #jQuery
jQuery中过滤器的基本用法示例
Oct 11 #jQuery
jQuery中extend函数简单用法示例
Oct 11 #jQuery
jQuery实现的事件绑定功能基本示例
Oct 11 #jQuery
解决JQuery全选/反选第二次失效的问题
Oct 11 #jQuery
jQuery实现的form转json经典示例
Oct 10 #jQuery
认识jQuery的Promise的具体使用方法
Oct 10 #jQuery
You might like
php 保留字列表
2012/10/04 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
PHP异常类及异常处理操作实例详解
2018/12/19 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
{}与function(){}选用空对象{}来存放keyValue
2012/05/23 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
JavaScript实现仿网易通行证表单验证
2015/05/25 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
2020/03/26 Javascript
python中的常量和变量代码详解
2018/07/25 Python
python多进程读图提取特征存npy
2019/05/21 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
高中自我鉴定范文
2013/11/03 职场文书
七一党建活动方案
2014/01/28 职场文书
2014国庆65周年领导讲话稿(3篇)
2014/09/21 职场文书
个人四风问题对照检查材料思想汇报
2014/10/06 职场文书
2015年底工作总结范文
2015/05/15 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python
APP界面设计技巧和注意事项
2022/04/29 杂记