基于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 相关文章推荐
使用JQuery进行跨域请求
Jan 25 Javascript
js作用域及作用域链概念理解及使用
Apr 15 Javascript
将中国标准时间转换成标准格式的代码
Mar 20 Javascript
JS实现从连接中获取youtube的key实例
Jul 02 Javascript
Javascript中的return作用及javascript return关键字用法详解
Nov 05 Javascript
AngularJS 模块详解及简单实例
Jul 28 Javascript
详解Python中logging日志模块在多进程环境下的使用
Dec 26 Javascript
微信小程序实现登录页云层漂浮的动画效果
May 05 Javascript
Angular中使用MathJax遇到的一些问题
Dec 15 Javascript
Vue框架里使用Swiper的方法示例
Sep 20 Javascript
vue-model实现简易计算器
Aug 17 Javascript
JavaScript实现复选框全选功能
Apr 11 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
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
php实现图片上传并进行替换操作
2016/03/15 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
javascript preload&amp;lazy load
2010/05/13 Javascript
JQuery实现简单时尚快捷的气泡提示插件
2012/12/20 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
Javascript基础教程之数据类型转换
2015/01/18 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
详解Webpack DLL用法以及功能
2017/07/11 Javascript
分析javascript原型及原型链
2018/03/18 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
javascript获取元素的计算样式
2019/05/24 Javascript
微信小程序wx.request的简单封装
2019/11/13 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
python 函数内部修改外部变量的方法
2018/12/18 Python
Python中的self用法详解
2019/08/06 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
老同学聚会感言
2014/02/23 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
公司酒会主持词
2015/07/02 职场文书
2016年端午节寄语
2015/12/04 职场文书
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
MySQL连接控制插件介绍
2021/09/25 MySQL
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏