基于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 相关文章推荐
Javascript 判断函数类型完美解决方案
Sep 02 Javascript
使用js修改客户端注册表的方法
Aug 09 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
Dec 28 Javascript
你所未知的3种Node.js代码优化方式
Feb 25 Javascript
探寻JavaScript中this指针指向
Apr 23 Javascript
老司机带你解读jQuery插件开发流程
May 16 Javascript
JavaScript中const、var和let区别浅析
Oct 11 Javascript
JavaScript reduce和reduceRight详解
Oct 24 Javascript
微信小程序联网请求的轮播图
Jul 07 Javascript
深入理解vue $refs的基本用法
Jul 13 Javascript
React中如何引入Angular组件详解
Aug 09 Javascript
JS+JQuery实现无缝连接轮播图
Dec 30 jQuery
非常棒的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
PHP5 安装方法
2006/10/09 PHP
php flush类输出缓冲剖析
2008/10/19 PHP
关于php连接mssql:pdo odbc sql server
2011/07/20 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
2017/07/27 PHP
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
JavaScript实现身份证验证代码
2016/02/17 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
Nodejs 搭建简单的Web服务器详解及实例
2016/11/30 NodeJs
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
Angular 项目实现国际化的方法
2018/01/08 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
angular多语言配置详解
2019/05/16 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
Python实现爬取逐浪小说的方法
2015/07/07 Python
Django的信号机制详解
2017/05/05 Python
python3+PyQt5泛型委托详解
2018/04/24 Python
python通过链接抓取网站详解
2019/11/20 Python
弄清Pytorch显存的分配机制
2020/12/10 Python
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
Ariat英国官网:为世界顶级马术运动员制造最优质的鞋类和服装
2020/02/14 全球购物
Java程序员面试题
2013/07/15 面试题
幼儿园教师考核制度
2014/02/01 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
2014年民政工作总结
2014/11/26 职场文书
特岗教师个人总结
2015/02/10 职场文书
个人求职信格式范文
2015/03/20 职场文书
关于分班的感言
2015/08/04 职场文书
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js