基于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 相关文章推荐
JS验证控制输入中英文字节长度(input、textarea等)具体实例
Jun 21 Javascript
Javascript控制div属性动态变化实例分析
Oct 08 Javascript
js检测iframe是否加载完成的方法
Nov 26 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
Feb 22 Javascript
vue.js学习之vue-cli定制脚手架详解
Jul 02 Javascript
Javascript es7中比较实用的两个方法示例
Jul 21 Javascript
JavaScript判断日期时间差的实例代码
Mar 01 Javascript
深入koa-bodyparser原理解析
Jan 16 Javascript
微信小程序实现多图上传
Jun 19 Javascript
Jquery如何使用animation动画效果改变背景色的代码
Jul 20 jQuery
openlayers4.6.5实现距离量测和面积量测
Sep 25 Javascript
vue3.0自定义指令(drectives)知识点总结
Dec 27 Vue.js
非常棒的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生成可点击刷新的验证码简单示例
2016/05/13 PHP
PHP实现的简单排列组合算法应用示例
2017/06/20 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
js 格式化时间日期函数小结
2010/03/20 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
JS触摸与手势事件详解
2017/05/09 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
jQuery实现轮播图源码
2019/10/23 jQuery
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
js实现简易ATM功能
2020/10/27 Javascript
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
投标单位介绍信
2014/01/09 职场文书
21岁生日感言
2014/02/27 职场文书
创建学习型党组织实施方案
2014/03/29 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
假释思想汇报范文
2014/10/11 职场文书
大四学生个人总结
2015/02/15 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
Python加密技术之RSA加密解密的实现
2022/04/08 Python