js图片切换

1.不同方式的图片切换

功能点:
  1.页面默认循环切换,循环切换按钮获得焦点
  2.点击顺序切换时,顺序切换按钮获得焦点
    点击上一张时,当图片为第一张时,图片不再进行切换,图片张数和描述也不在变动;
    点击下一张时,当图片为最后一张时,图片不再进行切换,图片张数和描述也不在变动;
  2.点击上一张按钮时触发的事件
    点击上一张时,当图片为第一张时,图片切换到最后一张,图片张数和描述显示为对应图片的张数和描述;
    点击下一张时,当图片为最后一张时,图片切换到第一张,图片张数和描述显示为对应图片的张数和描述;
  3.点击左右按钮是图片内容/张数/描述进行相应的变动
开发思路:
  1.实现图片循序切换:
    声明变量num,使其初始值为0
    上一张按钮:每点击一次,使num减1,当num的值小于0时,使其值等于图片数组的长度减1;
    下一张按钮:每点击一次,使num加1,当num的值大于等于图片数组的长时,使其值0.
  2.实现图片顺序切换:
    上一张按钮:每点击一次,使num减1,当num的值小于0时,使其值等于0;
    下一张按钮:每点击一次,使num加1,当num的值大于等于图片数组的长时,使其值等于图片数组的长度减1.
  3.点击左右按钮触发的事件:
    根据num来改变相应的数值和索引值
  4.实现切换方式的切换:通过判断状态按钮的className来执行相应的事件函数

<div class="box"><input type="button" name="btn1" id="btn1" value="循环切换"  class="act"/><input type="button" name="btn2" id="btn2" value="顺序切换" /><div class="box1"><a href="javascript:;" id="lf_btn">&lt;</a><a href="javascript:;" id="rt_btn">&gt;</a><p>计算中...</p><img src=""/><p>计算中...</p></div>
</div>
*{margin: 0;padding: 0;    
}
.box{width: 500px;margin: 50px auto 0;text-align: center; 
}
input{width: 80px;height: 30px;background: #C0C0C0;border: none;margin: 0 5px;
}
.act{background: palevioletred;
}
.box1{width: 100%;height: 300px;position: relative;margin-top: 20px;background: #ccc;
}
.box1 img{width: 100%;height: 100%;
}
a{position: absolute;top: 50%;width: 50px;height: 50px;text-align: center;color: #fff;font-weight: bold;line-height: 50px;border-radius: 50%;text-decoration: none;background: #C0C0C0;opacity: .6;margin-top: -25px;font-size: 40px;
}
#lf_btn{left: 0;
}
#rt_btn{right: 0;
}
p{width: 100%;background: rgba(0,0,0,.5);height: 30px;color: #fff;position: absolute;left: 0;line-height: 30px;
}
p:nth-of-type(1){top: 0;
}
p:nth-of-type(2){bottom: 0;
}
a:hover{pacity: .8;
}
var lf_btn=document.getElementById("lf_btn");
var rt_btn=document.getElementById("rt_btn");
var oImg=document.getElementsByTagName("img")[0];
var aBtns=document.getElementsByTagName("input");
var arr=[["../demo/鑫/img/1.jpg","../demo/鑫/img/2.jpg","../demo/鑫/img/3.jpg","../demo/鑫/img/4.jpg","../demo/鑫/img/5.jpg"],["图片一","图片二","图片三","图片四","图片五"]];
var ps=document.getElementsByTagName("p");
var num=0;
var len=arr[0].length;
//页面初始化
fn1();
function fn1(){oImg.src=arr[0][num];ps[0].innerText=num+1+'/'+len;ps[1].innerText=arr[1][num];
}
//图片左右切换
//上一张
fn2();
function fn2(){lf_btn.onclick=function(){num--;if(num<0){num=len-1;}fn1();}//下一张rt_btn.οnclick=function(){num++;if(num>=len){num=0;}fn1();}
}//切换方式转换
//循环切换
var that=null;
function clear(that){for (var i=0;i<aBtns.length;i++) {aBtns[i].className=" ";}that.className="act";
}
aBtns[0].οnclick=function(){//上一张clear(this);fn2();
}//顺序切换
aBtns[1].οnclick=function(){clear(this);//上一张lf_btn.οnclick=function(){num--;if(num<0){num=0;}fn1();}//下一张rt_btn.οnclick=function(){num++;if(num>=len){num=len-1;}fn1();}}

 2.自定义属性图片切换

HTML

<div id="box"><img src=""/><ul id="btns"></ul>
</div>

CSS

*{margin: 0;padding: 0;    
}
#box{margin: 20px 0 0 30px;position: relative;width: 400px;text-align: center;
}
#box ul{width: 100%;text-align: center;
}
#box li{list-style: none;display: inline-block;width: 40px;height: 10px;background: #C0C0C0;margin:0 2px;
}
#box img{width: 400px;height: 200px;
}
#box .act{background: palevioletred;
}

JS部分

var oImg=document.getElementsByTagName("img")[0];
var oBtn=document.getElementById("btns");
var Btns=document.getElementsByTagName("li");
var str="";
var imgs=["http://tse4.mm.bing.net/th?id=OIP.eyrAJHrqfyG4JDdYH2R57gEsDg&w=214&h=160&c=7&qlt=90&o=4&pid=1.7","http://tse2.mm.bing.net/th?id=OIP.jYyuulCIIlC-0U8vLeZcPQEsCo&w=300&h=168&c=7&qlt=90&o=4&pid=1.7","http://tse3.mm.bing.net/th?id=OIP.nxOcHfdj3G4tfdQ1da34ngEXDf&w=223&h=174&c=7&qlt=90&o=4&pid=1.7","http://tse3.mm.bing.net/th?id=OIP.yfBtP9Yis8AFz3MIBMiEhgEyDM&w=300&h=200&c=7&qlt=90&o=4&pid=1.7","http://tse1.mm.bing.net/th?id=OIP.jAS8cEFr324zQBQjlfg1EAEyDM&w=297&h=193&c=7&qlt=90&o=4&pid=1.7"];
//页面初始化
//生成切换按钮
for (var i=0;i<imgs.length;i++) {str+="<li></li>";
}
oBtn.innerHTML=str;
oImg.src=imgs[0];
Btns[0].className="act";//按钮点击切换图片,主要运用自定义属性
for (var i=0;i<Btns.length;i++) {Btns[i].index=i;Btns[i].onclick=function(){for (var i=0;i<Btns.length;i++) {Btns[i].className=" ";}this.className="act";oImg.src=imgs[this.index];}
}

 

转载于:https://www.cnblogs.com/yangxue72/p/7514766.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络摄象机常用传输协议

多播路由是一个很好的技术&#xff0c;在Internet上实现了对数据的“广播”&#xff0c;不同于广播的是&#xff0c;由于广播风暴的问题&#xff0c;路由器是禁止广播数据跨路由传送的。而多播则很好的解决了这个问题。现在M$软件如&#xff1a;Netmeeting&#xff0c;WMS就广泛…

CIS关键工艺技术概览

相机作为一种媒介&#xff0c;可以记录光所体现的物体&#xff0c;使人们能够主观或客观地表达各种情感和思想。当代人类身处于一个所谓的“数字游牧时代”&#xff0c;人们携带各类移动数码设备&#xff0c;生活不受时空的限制。在当今时代&#xff0c;相较于胶片相机&#xf…

Properties

Properties配置文件说明 Properties类对应.properties文件。文件内容是键值对&#xff0c;键值对之间使用""或空格隔开。开头是"#"的表示注释Properties类在加载.properties文件时使用的iso8859-1的编码。所以这个文件中的中文要特殊处理&#xff1a;如果这…

1215 - Cannot add foreign key constraint

2019独角兽企业重金招聘Python工程师标准>>> 参考网页 https://blog.csdn.net/yiwangxiblog/article/details/52269527 https://blog.csdn.net/ytm15732625529/article/details/53729155 原因--亲测 两张表的存储引擎不一致。主键所在表和外键所在表的存储引擎改成一…

陈敏敏-130242014024-实验一

实验报告一 课程 软件体系结构与设计 实验名称 软件设计的网络环境 第 页 专业 软件工程 班级 1班 学号 130242014024 姓名 陈敏敏 实验日期&#xff1a; 2017 年 9 月 14 日 报告退发 (订正 、 重做) 一、实验目的 1.复习软件工程的重要概念&…

音频编码

http://jsjdmtjs.jpk.dlpu.edu.cn/jxzy/kecheng/4-2.html

jquery 滚动条位置的

$(#fixedHead).width()//div的宽度 $(#fixedHead)[0].scrollWidth//滚动条的宽度 两者的差为滚动条的宽度var b1$("#div1").height();//div的高度 var b2$(this)[0].scrollTop;//滚动条距离顶端的位置 var b3$(this)[0].scrollHeight;//滚动区的高度 b3b1b2滚动条到底…

Css3实现波浪线效果1

一、波浪线 &#xff0c;常用 .info::before {content: ;position: absolute;top: 30px;width: 100%;height: 0.25em;background:linear-gradient(135deg, transparent, transparent 45%, #008000, transparent 55%, transparent 100%),linear-gradient(45deg, transparent, tr…

ZZUOJ 10508: 数列游戏IV

题目链接&#xff1a;http://acm.zzu.edu.cn:8000/problem.php?id10508 题目大意&#xff1a;给定一个序列&#xff0c;长度为N&#xff0c;每次询问为一组区间[Li,Ri],输出Li到Ri中出现恰好两次的不同数的个数. N,M<2*10^5&#xff0c;序列中元素<10^9 解题思路&#x…

dm368ipnc 重写架构中的swosd 实现中文osd

appro的ipnc中只实现了英文的osd叠加&#xff0c;就连小小的ascii码表都没有覆盖全&#xff0c;而且该swosd架构灰常凌乱。 其实无非就是两个功能&#xff0c;一是叠加文字&#xff0c;而是叠加图片&#xff0c;由于考虑到兼容不同的分辨率的视频流&#xff0c;所以处理的分支相…

JAVA加密算法系列-AesCBC

package ***;import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec;import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;/** * AES 是一种可逆加密算法&#xff0c;对用户的敏感信息加密处理 * 对原始数…

dubbo系列(一)

进入官网之后&#xff0c;找到 http://dubbo.apache.org/en-us/docs/user/quick-start.html 有一个链接跳转到这里 http://dubbo.apache.org/en-us/docs/admin/install/provider-demo.html 使用git将项目下载下来 修改如下Service实现类 1 /*2 * Licensed to the Apache Softw…

基于Flask实现后台权限管理系统 - 表设计

1.1. 设计 1.1.1. 用户表 用户表记录系统中的所有用户&#xff0c;是权限管理系统最基本的部分&#xff0c;和其他权限表都有一定的关联关系&#xff0c;同时&#xff0c;一个还有一个重要的功能&#xff1a;系统登陆。 名称 数据类型 允许空值 默认值 描述 ID VARCHAR …

DM8168的McSPI/McASP/McBSP接口

McSPI接口 SPI管脚&#xff1a; 管脚 类型 描述 SPI_SCLK I/O SPI串行时钟&#xff08;MASTER时&#xff1a;输出&#xff1b;SLAVE&#xff1a;输入&#xff09; SPI_D0 I/O 能被配置为输入或输出&#xff08;MOSI&#xff1a;master out&#xff0c;slave in或MISO&…

Sencha ID的注册

sencha id的注册用不着翻墙&#xff0c;直接访问下面的地址https://www.sencha.com/forum/register.php输入你的个人信息敞开来注册&#xff0c;我的注册名为charlie2018w非常顺利的过程你免费注册的id只能用30天。拥有这个id你就可以在eclipse或者sencha artchitect3或者webst…

ansible安装

1、简介 ansible是新出现的自动化运维工具&#xff0c;基于Python开发&#xff0c;集合了众多运维工具&#xff08;puppet、cfengine、chef、func、fabric&#xff09;的优点&#xff0c;实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的&#…

《大道至简》第一章伪代码

o愚公移山伪代码 Import.java Import.java Punlic class yugongyishan { Public static void main (string [] args) { while(山不平&#xff0c;&#xff0c;) {毕力平险&#xff0c;指通豫南&#xff0c;达于汉阴&#xff1b;叩石垦壤&#xff0c;箕㮥于渤海之尾&#xff1b;…

Verilog Matlab 联合仿真

一、概述 在进行仿真时&#xff0c;有时候一部分参考模型&#xff08;reference model&#xff09;来自于Matlab&#xff0c;这就需要通过某种方法调用并运行Matlab的参考模型。verilog并不支持直接调用Matlab&#xff0c;但是可以通过DPI接口调用C函数&#xff0c;而Matlab又预…

转 alsa录音放音执行流程详解

前言&#xff1a; linux中&#xff0c;无论是oss还是alsa体系&#xff0c;录音和放音的数据流必须分析清楚。先分析alsa驱动层&#xff0c;然后关联到alsa库层和应用层。 链接分析&#xff1a; core/pcm_native.c文件中.mmap snd_pcm_mmap调用snd_pcm_mmap_data(substream, fi…

jenkins之qq企业邮箱配置

一、配置qq企业邮箱 1、登录jenkins后台管理&#xff0c;选择 系统管理 ☞ 系统设置 2、SMTP server配置 3、邮件通知配置 配置ssl等参数 点击 高级 4、发送邮件测试 总结&#xff1a;邮箱配置不成程分析 1、管理员账号和默认发送账号不一致。2、smtp服务器设置不正确;qq企业…