基于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 相关文章推荐
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
Mar 07 Javascript
javascript获取下拉列表框当中的文本值示例代码
Jul 31 Javascript
Bootstrap项目实战之子栏目资讯内容
Apr 25 Javascript
javascript运算符——位运算符全面介绍
Jul 14 Javascript
JavaScript生成.xls文件的代码
Dec 22 Javascript
js实现类bootstrap模态框动画
Feb 07 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
Dec 29 Javascript
利用Promise自定义一个GET请求的函数示例代码
Mar 20 Javascript
浅析Vue下的components模板使用及应用
Nov 27 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
Dec 30 Javascript
html-webpack-plugin修改页面的title的方法
Jun 18 Javascript
React自定义hook的方法
Jun 25 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
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
php获取新浪微博数据API实例
2013/11/12 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
2016/11/16 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
关于递归运算的顺序测试代码
2011/11/30 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
解决option标签selected=&quot;selected&quot;属性失效的问题
2017/11/06 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
angular4笔记系列之内置指令小结
2018/11/09 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
微信小程序项目总结之记账小程序功能的实现(包括后端)
2019/08/20 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
跟老齐学Python之一个免费的实验室
2014/09/14 Python
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
python中的字典操作及字典函数
2018/01/03 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
浅谈python之新式类
2018/08/12 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
初学者学习Python好还是Java好
2020/05/26 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android