基于javascript实现图片切换效果


Posted in Javascript onApril 17, 2016

本文实例为大家分享了js实现图片切换效果,供大家参考,具体内容如下
用js实现点击按钮,图片切换的效果:

<div class="box" id="box">
    <div class="img_box" id="img_box">
      <img src="../raw/b1.jpg" class="image" >
      <img src="../raw/b2.jpg" class="image" >
      <img src="../raw/b3.jpg" class="image" >
      <img src="../raw/b4.jpg" class="image" >
    </div>
    <div id="left" class="switch"></div>
    <div id="right" class="switch"></div>
  </div>

结构:用一个固定宽高的div来做最外层的容器,设置overflow为hidden,

然后内层img_box设置宽度为四倍box的宽度,高度相同,也就是说img_box里面盛放四张img,但是可见的只有一张,下面的两个div,left和right是充当按钮实现点击切换图片,切换图片也就是改变img_box的left属性,所以img_box应该设置position为absolute,为了方便起见,box的position设置为relation,这样img_box就是相对box进行定位了。四张图片设置float为left,宽度和高度与box相同.

CSS代码:

*{
  margin: 0;
  padding: 0;
}
.box{
  width: 800px;
  height: 400px;
  margin: 20px auto;
  position: relative;
  overflow: hidden;
}
.img_box{
  height: 400px;
  width: 3200px;
  position: absolute;
  -moz-transition: 0.5s;
  -webkit-transition: 0.5s;
}
img{
  width: 800px;
  height: 400px;
  float: left;
}
.switch{
  width: 200px;
  height: 100%;
  position: absolute;

}
#left{
  left: 0px;
  top: 0px;
  background: -moz-linear-gradient(left, rgba(84, 84, 84, 0.50), rgba(20%,20%,20%,0));
  background: -webkit-linear-gradient(left, rgba(84, 84, 84, 0.50), rgba(20%,20%,20%,0));
}
#right{
  right:0px;
  top: 0px;
  background: -moz-linear-gradient(left, rgba(20%,20%,20%,0), rgba(84, 84, 84,0.5));
  background: -webkit-linear-gradient(left, rgba(20%,20%,20%,0), rgba(84, 84, 84,0.5));
}
#left:hover{
  background: -moz-linear-gradient(left, rgba(0, 0, 0,0.5), rgba(20%,20%,20%,0));
  background: -webkit-linear-gradient(left, rgba(0, 0, 0,0.5), rgba(20%,20%,20%,0));
}
#right:hover{
  background: -moz-linear-gradient(left, rgba(20%,20%,20%,0), rgba(0, 0, 0,0.5));
  background: -webkit-linear-gradient(left, rgba(20%,20%,20%,0), rgba(0, 0, 0,0.5));
}

left和right用到了背景颜色和透明度渐变的属性,只添加了火狐浏览器和webkit浏览器,另外现在有的IE浏览器是IE和webkit双内核如360安全浏览器

background: -moz-linear-gradient(left, rgba(84, 84, 84, 0.50), rgba(20%,20%,20%,0));

background: -webkit-linear-gradient(left, rgba(84, 84, 84, 0.50), rgba(20%,20%,20%,0));

为了实现切换的时候平滑过渡,所以添加了transition属性:

-moz-transition: 0.5s;

-webkit-transition: 0.5s;

js代码:

var box;
var count=1;
window.onload=function(){
  box=document.getElementById("img_box");
  var left=document.getElementById("left");
  var right=document.getElementById("right");
  left.addEventListener("click",_left);
  right.addEventListener("click",_right);
  document.body.addEventListener("mouseover",demo);
}
function _right(){
  var dis=0;
  if(count<4){
    dis=count*800;
  }else{
    dis=0;
    count=0;
  }
  box.style.left="-"+dis+"px";
  count+=1;
}
function _left(event){
  var dis=0;
  if(count>1){
    dis=(2-count)*800;
  }else{
    dis=-3*800;
    count=5;
  }
  box.style.left=dis+"px";
  count-=1;
}

用全局变量count来记录当前显示的第几张图片,当点击切换按钮的时候根据count来计算应该显示第几张照片,然后计算并设置img_box的left属性即可。

以上就是为大家介绍的js实现图片切换效果的代码,希望能够帮助大家实现图片切换效果。

Javascript 相关文章推荐
jquery 跨域访问问题解决方法(笔记)
Jun 08 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
Mar 11 Javascript
JavaScript中神奇的call()方法
Mar 12 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
Dec 04 Javascript
分享使用AngularJS创建应用的5个框架
Dec 05 Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 Javascript
JS解决iframe之间通信和自适应高度的问题
Aug 24 Javascript
五步轻松实现JavaScript HTML时钟效果
Mar 25 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
Oct 20 Javascript
快速了解Node中的Stream流是什么
Feb 13 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
Sep 27 Javascript
JavaScript对象原型链原理解析
Jan 22 Javascript
非常棒的jQuery图片轮播效果
Apr 17 #Javascript
jQuery实现的倒计时效果实例小结
Apr 16 #Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
Apr 16 #Javascript
jQuery实现无限往下滚动效果代码
Apr 16 #Javascript
jQuery遍历json的方法分析
Apr 16 #Javascript
jquery对dom节点的操作【推荐】
Apr 15 #Javascript
Jquery attr()方法 属性赋值和属性获取详解
Apr 15 #Javascript
You might like
用PHP调用Oracle存储过程的方法
2008/09/12 PHP
Yii框架中memcache用法实例
2014/12/03 PHP
利用PHP抓取百度阅读的方法示例
2016/12/18 PHP
浅谈PHPANALYSIS提取关键字
2019/03/08 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
javascript history对象详解
2017/02/09 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
vue router返回到指定的路由的场景分析
2020/11/10 Javascript
在Django框架中编写Contact表单的教程
2015/07/17 Python
Python使用pymysql小技巧
2017/06/04 Python
python决策树之C4.5算法详解
2017/12/20 Python
Python中存取文件的4种不同操作
2018/07/02 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
python IDLE 背景以及字体大小的修改方法
2019/07/12 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
Python编写单元测试代码实例
2020/09/10 Python
电子商务专业自我鉴定
2013/12/18 职场文书
灰雀教学反思
2014/04/28 职场文书
大学生党员承诺书
2014/05/20 职场文书
学校百日安全生产活动总结
2014/07/05 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
二年级学生期末评语
2014/12/26 职场文书
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android