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,一经查实,立即删除!

相关文章

CIS关键工艺技术概览

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

1215 - Cannot add foreign key constraint

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

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…

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

appro的ipnc中只实现了英文的osd叠加&#xff0c;就连小小的ascii码表都没有覆盖全&#xff0c;而且该swosd架构灰常凌乱。 其实无非就是两个功能&#xff0c;一是叠加文字&#xff0c;而是叠加图片&#xff0c;由于考虑到兼容不同的分辨率的视频流&#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是基于模块工作的&#…

jenkins之qq企业邮箱配置

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

mysql-5.7 持久化统计信息详解

一、持久化统计信息的意义&#xff1a; 统计信息用于指导mysql生成执行计划&#xff0c;执行计划的准确与否直接影响到SQL的执行效率&#xff1b;如果mysql一重启 之前的统计信息就没有了&#xff0c;那么当SQL语句来临时&#xff0c;那么mysql就要收集统计信息然后再生成SQL语…

关于传感器”英寸“计量

传感器上的n是指对角线长度为16mm或18mm的n倍 以英寸代指的传感器大小称为靶面尺寸。 在CCD/CMOS出现之前&#xff0c;摄像机是利用一种叫作“光导摄像管&#xff08;Vidicon Tube&#xff09;”的成像器件感光成像的&#xff0c;这是一种特殊设计的电子管&#xff0c;其直径的…

关于USB-AUDIO使用ALSA编程的一点问题

转载自&#xff1a;http://blog.chinaunix.net/uid-25272011-id-3153434.html 最近在调试一款原相PAP7501摄像头中的USB的麦克风&#xff0c;USB层走的应该是标准的UAC协议&#xff0c;具体可以见USB的官网&#xff1a;http://www.usb.org/developers/devclass_docs#approved&a…

Fiddler4入门——手机抓包

一、下载工具包 百度搜索”fiddler 下载“ &#xff0c;安装最新版本 下载的软件安装包为“fiddler_4.6.20171.26113_setup.exe”格式&#xff0c;双击安装。安装成功&#xff0c;在“开始”-“所有程序”&#xff0c;就会看见这样的图标&#xff0c;若是常用的话&#xff0c;也…

(五)DOM4j进行XML文件的解析及生成

DOM4j本身还是需要使用SAX建立解析器&#xff0c;然后通过文档依次找到根节点&#xff0c;再通过根节点查找每一个节点的内容. 1.写操作 import java.io.File;import java.io.FileOutputStream;import java.util.Iterator; import org.dom4j.Document;import org.dom4j.Documen…

Linux系统基础.作业

要求以root用户登录系统&#xff0c;右击桌面打开终端&#xff0c;查看当前登陆Linux系统所使用的用户名 查看哪些用户在系统上工作 修改当前时间为2018年8月26号11:28 查看2015年10月份日历 使用两种方法查看ls命令的使用说明 清除屏幕 ctrlL使用“useradd tom”命令新建tom用…

Alsa中PCM参数设置

分类&#xff1a; LINUX 1) PCM设备的句柄.2) 指定同时可供回放或截获的PCM流的方向3) 提供一些关于我们想要使用的设置选项的信息,比如缓冲区大小,采样率,PCM数据格式等4) 检查硬件是否支持设置选项.4.1) 初始化PCM变量4.2) 分配hwparams结构4.3) 打开PCM设备4.4) 以声卡的全部…

java5

java基础&#xff08;五&#xff09;命名规则&#xff1a; 名字中只能包含->字母、_、数字、$&#xff0c;且开头不能为数字包名必须都小写文件名首字母和后面英文文件单词首字母都要大写变量和方法名 首字母小写&#xff0c;后面英文单词首字母大写java中的方法&#xff1a…

最新历史版本 :H.265

原来对264有深入的研究&#xff0c;现在想详细了解下265啦&#xff0c;愿265尽快广泛的使用起来&#xff0c;人们可以享受无处不在的视觉盛宴。 H.265是ITU-T VCEG 继H.264之后所制定的新的视频编码标准。H.265标准围绕着现有的视频编码标准H.264&#xff0c;保留原来的某些技术…

凯撒密码、GDP格式化输出、99乘法表

1.恺撒密码的编码 sinput(请输入明文:) print(密文为:) for i in s:print(chr(ord(i)3),end)运行结果为&#xff1a; 2.国家名称 GDP总量&#xff08;人民币亿元&#xff09; 中国 &#xffe5;765873.4375 澳大利亚 &#xffe5; 78312.4375 &#xff08;国家名称左对齐&am…