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.load()和Jsp的include的区别
Apr 12 jQuery
jQuery设置图片等比例缩小的方法
Apr 29 jQuery
jQuery正则验证注册页面经典实例
Jun 10 jQuery
jQuery实现的表格前端排序功能示例
Sep 18 jQuery
javaScript和jQuery自动加载简单代码实现方法
Nov 24 jQuery
jQuery实现基本动画效果的方法详解
Sep 06 jQuery
jQuery判断自定义属性data-val用法示例
Jan 07 jQuery
JQuery的加载和选择器用法简单示例
May 13 jQuery
如何使用CSS3和JQuery easing 插件制作绚丽菜单
Jun 18 jQuery
JQuery表单元素取值赋值方法总结
May 12 jQuery
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
jQuery列表动态增加和删除的实现方法
Nov 05 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与SQL注入攻击[二]
2007/04/17 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
JS window.opener返回父页面的应用
2009/10/24 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
详解vue引入子组件方法
2019/02/12 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
python安装Scrapy图文教程
2017/08/14 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
Python语法垃圾回收机制原理解析
2020/03/25 Python
Python创建临时文件和文件夹
2020/08/05 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
教育科研先进个人材料
2014/01/26 职场文书
小学生母亲节演讲稿
2014/05/07 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书