基于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 相关文章推荐
快速查找数组中的某个元素并返回下标示例
Sep 03 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
Aug 02 Javascript
AngularJS入门教程之链接与图片模板详解
Aug 19 Javascript
原生javascript实现图片放大镜效果
Jan 18 Javascript
Bootstrap表单控件学习使用
Mar 07 Javascript
原生javascript实现分页效果
Apr 21 Javascript
JS实现unicode和UTF-8之间的互相转换互转
Jul 05 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
Oct 24 Javascript
vue组件实现可搜索下拉框扩展
Oct 23 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
Sep 15 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
Vue中nprogress页面加载进度条的方法实现
Nov 13 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使用curl打开https网站的方法
2015/06/17 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
PHP反射API示例分享
2016/10/08 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
Nodejs下DNS缓存问题浅析
2016/11/16 NodeJs
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
JavaScript下拉菜单功能实例代码
2017/03/01 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
[01:52]2014DOTA2西雅图邀请赛 V社开大会你不知道的小秘密
2014/07/08 DOTA
[39:02]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs VGJ.T
2018/04/01 DOTA
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
python tkinter canvas 显示图片的示例
2019/06/13 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
python实现猜单词游戏
2020/05/22 Python
Python变量格式化输出实现原理解析
2020/08/06 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
如何掌握自荐信格式呢
2013/11/19 职场文书
创建卫生先进单位实施方案
2014/03/10 职场文书
教师学期个人总结
2015/02/11 职场文书
校车司机安全责任书
2015/05/11 职场文书
一文搞懂Redis中String数据类型
2022/04/03 Redis