基于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 相关文章推荐
在线游戏大家来找茬II
Sep 30 Javascript
网页开发中的容易忽略的问题 javascript HTML中的table
Apr 15 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
Jul 15 Javascript
jQuery 中国省市两级联动选择附图
May 14 Javascript
jquery动态改变div宽度和高度
Feb 09 Javascript
Javascript简写条件语句(推荐)
Jun 12 Javascript
简洁实用的BootStrap jQuery手风琴插件
Aug 31 Javascript
PHP+jquery+ajax实现分页
Dec 09 Javascript
详解vue嵌套路由-params传递参数
May 23 Javascript
sublime text配置node.js调试(图文教程)
Nov 23 Javascript
vue实现a标签点击高亮方法
Mar 17 Javascript
ES6函数实现排它两种写法解析
May 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
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
php数组中删除元素的实现代码
2012/06/22 PHP
JS中==与===操作符的比较
2009/03/21 Javascript
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
js Event对象的5种坐标
2011/09/12 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
JQuery中解决重复动画的方法
2016/10/17 Javascript
js数组去重的hash方法
2016/12/22 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
原生js实现随机点名
2020/07/05 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python判断Abundant Number的方法
2015/06/15 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
Python实现动态图解析、合成与倒放
2018/01/18 Python
Python的UTC时间转换讲解
2019/02/26 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
业务主管岗位职责范本
2013/12/25 职场文书
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS