基于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 相关文章推荐
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
Mar 10 Javascript
js表数据排序 sort table data
Feb 18 Javascript
JS实现下拉框的动态添加(附效果)
Apr 03 Javascript
JavaScript日期时间格式化函数分享
May 05 Javascript
EasyUI实现第二层弹出框的方法
Mar 01 Javascript
JavaScript通过select动态更换图片的方法
Mar 23 Javascript
vue2.0中goods选购栏滚动算法的实现代码
May 17 Javascript
react-router browserHistory刷新页面404问题解决方法
Dec 29 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
Mar 12 Javascript
微信小程序中时间戳和日期的相互转换问题
Jul 09 Javascript
Layui选项卡制作历史浏览记录的方法
Sep 28 Javascript
使用Karma做vue组件单元测试的实现
Jan 16 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安装为Apache DSO
2006/10/09 PHP
PHP 常见郁闷问题答解
2006/11/25 PHP
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
2009/07/01 PHP
又一个php 分页类实现代码
2009/12/03 PHP
PHPMailer 中文使用说明小结
2010/01/22 PHP
使用php实现截取指定长度
2013/08/06 PHP
php不使用copy()函数复制文件的方法
2015/03/13 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
javascript中的prototype属性使用说明(函数功能扩展)
2010/08/16 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
Python 文件处理注意事项总结
2017/04/10 Python
python 接口返回的json字符串实例
2018/03/27 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
Django Rest framework之认证的实现代码
2018/12/17 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
python里运用私有属性和方法总结
2019/07/08 Python
python函数不定长参数使用方法解析
2019/12/14 Python
python实现扫雷游戏
2020/03/03 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
python 递归相关知识总结
2021/03/03 Python
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
爱游人:Travelliker
2017/09/05 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
幼儿园美术教学反思
2014/01/31 职场文书
总经理司机岗位职责
2014/02/06 职场文书
物流管理毕业生自荐信范文
2014/03/15 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
如何写通讯稿
2015/07/22 职场文书