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解析获取JSON数据
Apr 08 jQuery
jQuery EasyUI之验证框validatebox实例详解
Apr 10 jQuery
jQuery实现下拉菜单的实例代码
Jun 19 jQuery
jQuery实现键盘回车搜索功能
Jul 25 jQuery
jQuery中extend函数简单用法示例
Oct 11 jQuery
基于jQuery中ajax的相关方法汇总(必看篇)
Nov 08 jQuery
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
Nov 14 jQuery
jQuery中元素选择器(element)简单用法示例
May 14 jQuery
jQuery实现当拉动滚动条到底部加载数据的方法分析
Jan 24 jQuery
jquery html添加元素/删除元素操作实例详解
May 20 jQuery
jquery简易手风琴插件的封装
Oct 13 jQuery
jquery插件懒加载的示例
Oct 24 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获取url的函数代码
2011/08/02 PHP
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
php操作access数据库的方法详解
2017/02/22 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
ThinkPHP5框架中使用JWT的方法示例
2020/06/03 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
node中的session的具体使用
2018/09/14 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
小程序getLocation需要在app.json中声明permission字段
2019/04/04 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
Python中下划线的使用方法
2015/03/27 Python
Python中分数的相关使用教程
2015/03/30 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
Python 实现数据结构-堆栈和队列的操作方法
2019/07/17 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
暑期社会实践学生的自我评价
2014/01/09 职场文书
致长跑运动员加油稿
2014/02/20 职场文书
护理学专业求职信
2014/06/29 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
高一军训口号
2015/12/25 职场文书
导游词之唐山景点
2019/12/18 职场文书
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle