这几天一直在练习原生js写效果,需要理清自己的逻辑,做了一个切换多组图片的效果:

css样式:

* {
margin: 0;
padding: 0;
}
body {
background: #303030
}
#box {
width: 850px;
background: #fff;
margin: 100px auto;
padding: 50px 50px;
position: relative;
}
#box:after {
content: '';
display: block;
clear: both;
visibility: hidden;
}
#box .head {
position: absolute;
width: 100%;
height: 40px;
top: 0;
left: 0;
background: #08c37b;
text-align: center;
line-height: 40px;
color: #fff
}
#box .box-1 {
width: 450px;
height: 350px;
background: #fff;
box-shadow: black 0 0 10px;
float: left;
margin: 10px 10px;
}
#box .box-1 img {
width: 100%;
height: 100%;
cursor: pointer;
}
#box .box-2 {
width: 350px;
height: 350px;
background: #fff;
box-shadow: black 0 0 20px;
float: left;
margin: 10px 10px
}
#box .box-2 img {
width: 100%;
height: 100%;
cursor: pointer;
}
#btn {
margin: 0 10px
}
#btn input {
color: #666;
border-radius: 20px;
border: 1px solid #ddd;
padding: 0 10px;
background: transparent;
cursor: pointer;
outline: none;
}

html代码:

<div id="box" class="box">
<div class="head">控制多组图片切换</div>
<div id="btn">
<input type="button" name="" id="prev" value="上一组">
<input type="button" name="" id="next" value="下一组">
</div>
<div class="box-1">
<img src="img/c361272bf7bf2d9d8c896c1e724833c030ae5ccf1bbb6d-zz9Zcu_fw658_03.gif" index=0>
<span></span>
</div>
<div class="box-2">
<img src="img/26dab4661284b418eea0312f097e9ff35910e7dc4fe64-mCTjgV_fw658.jpg" index=0>
<span></span>
</div>
</div>

js代码:

var oBox = document.getElementById("box");
var prev = document.getElementById("prev");
var next = document.getElementById("next");
var oPic1 = document.getElementsByClassName("box-1")[0].getElementsByTagName("img")[0];
var oPic2 = document.getElementsByClassName("box-2")[0].getElementsByTagName("img")[0];
var oBox1 = document.getElementsByClassName('box-1')[0];
var oBox2 = document.getElementsByClassName("box-2")[0];
var aPic1 = ['img/c361272bf7bf2d9d8c896c1e724833c030ae5ccf1bbb6d-zz9Zcu_fw658_03.gif','img/c361272bf7bf2d9d8c896c1e724833c030ae5ccf1bbb6d-zz9Zcu_fw658_06.gif','img/c361272bf7bf2d9d8c896c1e724833c030ae5ccf1bbb6d-zz9Zcu_fw658_09.gif'];
var aPic2 = ['img/26dab4661284b418eea0312f097e9ff35910e7dc4fe64-mCTjgV_fw658.jpg','img/898704cf8eeffe62dba6e00e4a85628ba406647d124f7-oDpOPu_fw658.jpg','img/bf09a3c9b0013268450f191c36fe4661970eaea33847c-ipXKCN_fw658.jpg']
var num = 0;
//初始化
oPic1.src = aPic1[num];
oPic2.src = aPic2[num];
var oSpan1 = document.getElementsByClassName("box-1")[0].getElementsByTagName("span")[0];
var oSpan2 = document.getElementsByClassName("box-2")[0].getElementsByTagName("span")[0];
oSpan1.innerHTML = num+1+ "/" +aPic1.length;
oSpan2.innerHTML = num+1+ "/" +aPic2.length;
oPic1.index = 0;
oPic2.index = 0;
//切换下一组
function nextFun(item,pic) {
var oPic = item.getElementsByTagName("img")[0];
var oSpan = item.getElementsByTagName("span")[0];
oPic.index++;
if(oPic.index < pic.length) {
oPic.src = pic[oPic.index];
}else if(oPic.index == pic.length) {
oPic.index = 0;
oPic.src = pic[oPic.index];
}
oSpan.innerHTML = oPic.index+1+ "/" +pic.length;
}
//切换上一组
function prevFun(item,pic) {
var oPic = item.getElementsByTagName("img")[0];
var oSpan = item.getElementsByTagName("span")[0];
oPic.index--;
if(oPic.index>-1) {
oPic.src = pic[oPic.index];
}else if(oPic.index == -1) {
oPic.index = pic.length-1;
oPic.src = pic[oPic.index]
}
oSpan.innerHTML = oPic.index+1+ "/" +pic.length;
}
//点击图片切换图片
function slider(item,pic) {
var oPic = item.getElementsByTagName("img")[0];
var oSpan = item.getElementsByTagName("span")[0];
oPic.onclick = function() {
this.index++;
if(this.index<pic.length) {
this.src = pic[this.index];
}else if(this.index == pic.length) {
this.index = 0;
this.src = pic[this.index];
}
oSpan.innerHTML = this.index+1+ "/" +pic.length;
}
}
//上一组按钮
next.onclick = function() {
nextFun(oBox1,aPic1);
nextFun(oBox2,aPic2);
};
//下一组按钮
prev.onclick = function() {
prevFun(oBox1,aPic1);
prevFun(oBox2,aPic2);
}
slider(oBox1,aPic1);
slider(oBox2,aPic2);

原生js实现多组图片切换的更多相关文章

  1. 初学js之多组图片切换实例

    需求是以上效果展示.话不多说,直接代码显示,不涉及代码优化.已实现功能为目的. 先看html部分: <body> <div class="dream" id=&q ...

  2. 极简的js点击组图切换效果

    程序员进行前端开发时,时常要用到点击切换组图的动画效果,网上确实有很多此类插件,但是都很麻烦,乌糟糟无数代码,有那个看的时间,自己都能把功能写完了.在这里我提供一段极简的js点击组图切换效果代码,包含 ...

  3. js鼠标滚轮滚动图片切换效果

    效果体验网址:http://keleyi.com/keleyi/phtml/image/12.htm HTML文件代码: <!DOCTYPE html PUBLIC "-//W3C// ...

  4. 原生Js页面滚动延迟加载图片

    原理和过程1.页面滚动加载事件2.获取元素在页面里的top值 根据滚动条的位置 判断何时显示图片3.获取元素集合 加载过的图片从集合里删除 效果预览:http://jsfiddle.net/dtdxr ...

  5. js基础练习--控制多组图片切换

    js基础练习题,一个按钮控制两组图片的切换,做这题的时候我忽然想到了将num1.mun2……都存放在一个数组中,根据索引值匹配到对应相应组的图片,这样不管有多少组图片都简单的搞定切换,可惜js基础都没 ...

  6. 原生js和jquery实现图片轮播特效

    本文给大家分享的是使用原生JS和JQ两种方法分别实现相同的图片轮播特效,十分的实用,也非常方便大家对比学习原生js和jQuery,有需要的小伙伴可以参考下. 1)首先是页面的结构部分对于我这种左右切换 ...

  7. 原生js和jquery实现图片轮播特效(转)

    本文给大家分享的是使用原生JS和JQ两种方法分别实现相同的图片轮播特效,十分的实用,也非常方便大家对比学习原生js和jQuery,有需要的小伙伴可以参考下. 1)首先是页面的结构部分对于我这种左右切换 ...

  8. 原生js实现淘宝图片切换

    这个淘宝图片切换具体效果就是:鼠标移上底部一行中的小图片,上面大图片区域就会显示对应的图片. gif图片看起来还挺酷的,其实实现很简单,用原生js绑定事件改变大图片区域的src. 上代码,html部分 ...

  9. 原生Js封装的产品图片360度展示

    挺简单的一段程序,但是效果不错: 1.把需要展示的36张图片先预加载到浏览器缓存里 2.给展示图片的div添加方法 3.通过鼠标左右移动的像素转换图片 在线效果预览:http://jsfiddle.n ...

随机推荐

  1. 在pycharm中配置Anaconda以及pip源配置

    在学习推荐系统.机器学习.数据挖掘时,python是非常强大的工具,也有很多很强大的模块,但是模块的安装却是一件令人头疼的事情. 现在有个工具--anaconda,他已经帮我们集成好了很多工具了!an ...

  2. 阿里云CentOS系统配置iptables防火墙

    虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FORWORD都是ACCEPT的规则 一.检查iptabl ...

  3. hadoop1.1.0的伪分布搭建步骤

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFuYnVyZW4wMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  4. 11_HTML5_Local_Storage本地存储

    本地存储localStorage是大型cookie,cookie只有4k,

  5. 使用ShareSDK实现第三方授权登录、分享以及获取用户资料效果,项目中包含:源码+效果图+项目结构图

    [Android应用开发详解]第01期:第三方授权认证(一)实现第三方授权登录.分享以及获取用户资料   由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折, ...

  6. 42.angularJS自定义服务

    转自:https://www.cnblogs.com/best/tag/Angular/ 1. 你可以创建自定义服务,链接到你的模块中: <!DOCTYPE html> <html& ...

  7. [NOI2002] Savage 解题报告(扩展欧几里得)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1407 Description 克里特岛以野人群居而著称.岛上有排列成环行的M个山洞.这些 ...

  8. php7-swoole-Class 'swoole_websocket_server' not found 问题

    标签(空格分隔): php 分析 nginx/apache 读取的php.uini 文件 和 cli模式的php.ini 文件不同导致的 swoole是在cli模式下运行的 或许你安装swoole扩展 ...

  9. java中"".equals(A)与A.equals("")一样不?

    不一样如果a为nulla = null;a.equals("")出错nullPointerException如果写为"".equals(a)-->就可以防 ...

  10. animation和transition做动画的区别

    animation做动画,是不需要去触发的,可以定义一开始就执行 transition做动画,是需要人为触发,才能执行的