关于使用JavaScript实现图片点击切换(附带改变导航图片 方案二)
具体需求见方案一。
这种方案相比方案一更加专业。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#main{
border: solid 1px red;
margin: 20px auto;
width: 500px;
}
#top{
text-align: center;
}
#imgl,#imgr{
margin-bottom: 70px;
}
#img{
margin: 0px 50px;
}
.initClass{
width: 50px;
border: solid 2px #fff;
margin:10px 5px;
}
.focusClass{
width: 50px;
border: solid 2px red;
margin:10px 5px;
}
</style>
<script type="text/javascript" src="js/system.js"></script>
</head>
<body>
<div id="main">
<div id="top">
<img src="data:images/left.png" id="imgl">
<img src="data:images/1.jpg" id="img">
<img src="data:images/right.png" id="imgr">
</div>
<div id="bottom">
<img src="data:images/1.jpg" id="img1" class="focusClass" data-index="1">
<img src="data:images/2.jpg" id="img2" class="initClass" data-index="2">
<img src="data:images/3.jpg" id="img3" class="initClass" data-index="3">
<img src="data:images/4.jpg" id="img4" class="initClass" data-index="4">
<img src="data:images/5.jpg" id="img5" class="initClass" data-index="5">
<img src="data:images/6.jpg" id="img6" class="initClass" data-index="6">
<img src="data:images/7.jpg" id="img7" class="initClass" data-index="7">
</div>
</div>
<script type="text/javascript">
var slide={
arrImg:new Array("images/1.jpg","images/2.jpg","images/3.jpg",
"images/4.jpg","images/5.jpg","images/6.jpg","images/7.jpg"),
initClass:"initClass",
focusClass:"focusClass",
index:1,
arrMax:7,
imgMain:"img"
}
slide.top= {
navEvent: function () {
//上部分大图片显示累加后下标对应的图片
$$(slide.imgMain).src = slide.arrImg[slide.index - 1];
//根据焦点下标值组合成导航图片名称
var n = "img" + slide.index;
//执行对应导航图片的单击事件
$$(n).click();
},
//处理页面上一部分的逻辑
clickRight: function () {
//点击向右按钮处理事件
console.log(slide.index);
//当下标小于或等于最大图片数量时
if (slide.index < slide.arrMax) {
//累加当前焦点下标值
slide.index++;
//执行点击右键时的图片导航效果
slide.top.navEvent();
}
},
clickLeft: function () {
//点击向右按钮处理事件
console.log(slide.index);
if (slide.index > 1) {
//累加当前焦点下标值
slide.index--;
//执行点击左键时的图片导航效果
slide.top.navEvent();
}
}
}
slide.bottom= {
initImgClass: function () {
//初始化全部底部图片的样式
for (var i = 1; i <= slide.arrMax; i++) {
var n = "img" + i;
$$(n).className = slide.initClass;
}
},
initPage: function () {
//处理页面下一部分的逻辑
$$("imgl").onclick=function(){
slide.top.clickLeft();
}
$$("imgr").onclick=function(){
slide.top.clickRight();
}
//获取所有的底部下图片
for (var i = 1; i <= slide.arrMax; i++) {
//为每一张图片绑定点击事件
var n = "img" + i;
$$(n).onclick = function () {
//初始化全部样式
slide.bottom.initImgClass();
//图片元素本身获取焦点样式
this.className = slide.focusClass;
//在上部图片中显示点击小图的对应大图片
$$(slide.imgMain).src=slide.arrImg[this.getAttribute("data-index")-1];
//重新记录焦点图片在数组中的对应下标位置
slide.index=this.getAttribute("data-index");
}
}
}
}
slide.bottom.initPage();
</script>
</body>
</html>
关于使用JavaScript实现图片点击切换(附带改变导航图片 方案二)的更多相关文章
- Js实现图片点击切换与轮播
Js实现图片点击切换与轮播 图片点击切换 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu ...
- JS原生隐藏显示图片,点击切换图片的效果
今天要说的内容,看标题就都能知道了!所有知识点一览无遗啊!咱们今天的东西,是纯纯的原生JS代码, 我先说一下要求, 1.有两个按钮,内容为显示,和换, 2.当点击显示的时候,按钮文字变成隐藏,同时图片 ...
- 3d图片点击切换
效果图: 代码块: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
- vue入门:实现图片点击切换
1.实现功能 2.目录结构 3.代码 <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- CSS3新增文本属性实现图片点击切换效果
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 利用DOM的方式点击切换图片及修改文字
本案例主要学习理解,用到的几个DOM方法 01.getAttribute()方法,获取元素的属性值 02.setAttribute('src',source) 方法,用后边的值修改前边这个元素的属性值 ...
- 一款基于css3的3D图片翻页切换特效
今天给大家分享一款基于css3的3D图片翻页切换特效.单击图片下方的滑块会切换上方的图片.动起你的鼠标试试吧,效果图如下: 在线预览 源码下载 实现的代码. html代码: <div id= ...
- javascript总结36:DOM-点击按钮切换图片案例
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- jquery——左右按钮点击切换一组图片功能
一.最终效果 二.功能分析 1.需求分析 点击左边pre按钮,显示前面三个图片,点击右边的next按钮,显示后面的一组(三个)图片.初始化只显示next按钮,到最后一组只显示pre按钮,中间过程两按钮 ...
随机推荐
- Unity 3D Framework Designing(7)——IoC工厂理念先行
一谈到 『IoC』,有经验的程序员马上会联想到控制反转,将创建对象的责任反转给工厂.IoC是依赖注入 『DI』 的核心,大名鼎鼎的Spring框架就是一个非常卓越的的控制反转.依赖注入框架.遗憾的是, ...
- 【canvas系列】canvas实现"雷达扫描"效果
今天来讲解"雷达扫描"效果demo,来源于QQ群里边有群友说想要个雷达效果,就尝试写了一下. 效果图: demo链接: https://win7killer.github.io/c ...
- Linux 上做免密码登陆
基于密钥验证1.生成一对密钥ssh-keygen -t {rsa|dsa} -f /path/to/keyfile -N 'password'2.将公钥传输至服务器某用户的家目录的.ssh/autho ...
- Jmeter函数组件开发
插件开发方法有两种: 一.在jmeter官网下载jmeter源码,在源码里面新加函数,然后导出jar: 二.不下载源码,直接导入jmeter相应的jar包,即可开发.(推荐) 下面介绍第二种开发方法: ...
- 在SrollView中嵌套GridView或ListView(转)
原文链接:http://blog.csdn.net/gaojinshan/article/details/17055511 我想在同一个界面中,使用两个GridView,两个GridView一起上下滚 ...
- JDBC基础学习(二)—PreparedStatement
一.PreparedStatement介绍 在SQL中包含特殊字符或SQL的关键字(如: ' or 1 or ')时Statement将出现不可预料的结果(出现异常或查询的结果不正确),可用P ...
- 20分钟快速了解Redis
Redis可以说是目前最火爆的NoSQL数据库! 过去几年,Memcached很盛行,现在有很多公司已将Memcached替换成了Redis.当然,很多人替换并不清楚为什么,只是感觉不想让主流抛弃,这 ...
- PHP常用的三种设计模式
本文为大家介绍常用的三种php设计模式:单例模式.工厂模式.观察者模式,有需要的朋友可以参考下. 一.首先来看,单例模式 所谓单例模式,就是确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实 ...
- 读《effective C++》1
条款一:视C++为一个语言联邦 学习C++半个月了,学了他的面向过程编程,面向对象编程(封装性,继承性,多态性),template泛型编程,开始只是觉得C++基础是面向对象,但是学了这么多块开始有点迷 ...
- 利用 Forcing InnoDB Recovery 特性解决 MySQL 重启失败的问题
小明同学在本机上安装了 MySQL 5.7.17 配合项目进行开发,并且已经有了一部分重要数据.某天小明在开发的时候,需要出去一趟就直接把电脑关掉了,没有让 MySQL 正常关闭,重启 MySQL 的 ...