基于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中单选框和复选框获取值的方式
Nov 06 Javascript
基于jquery的loading效果实现代码
Nov 05 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
Oct 24 Javascript
js确定对象类型方法
Mar 30 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
Oct 30 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
Jun 06 Javascript
详解Angular-Cli中引用第三方库
May 21 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
Jul 13 Javascript
理解javascript async的用法
Aug 22 Javascript
工作中常用到的ES6语法
Sep 04 Javascript
jquery实现垂直无限轮播的方法分析
Jul 16 jQuery
vue实现点击追加选中样式效果
Nov 01 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 魔术函数使用说明
2010/05/14 PHP
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
PHP+MySQL存储数据常见中文乱码问题小结
2016/06/13 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
Python发送email的3种方法
2015/04/28 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
python实现redis三种cas事务操作
2017/12/19 Python
Python格式化输出%s和%d
2018/05/07 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
2020/01/28 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
python def 定义函数,调用函数方式
2020/06/02 Python
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python