jQuery手动点击实现图片轮播特效


Posted in Javascript onApril 20, 2020

本文写了一个轮播图练练手,先写了一个手动点击轮播的轮播图,随后我会慢慢接着深入写自动轮播图和鼠标悬浮图片停止移动轮播图等。

下面来看看最终做的手动点击轮播效果:

 jQuery手动点击实现图片轮播特效

一、原理说明

(1)首先是轮播图的架构,我采用了一个最外边的大div包住两个小div,一个小div里面放四张图片,另一个小div里面放四个数字按钮

(2)对最外边的大div设置的宽度为图片的宽度,超出大div宽度的都需要隐藏,但是对于盛放图片的小div设置宽度为2000px,大一点方便四张图左浮动布局

(3)当数字按钮点击时,获取按钮的索引值,这样就可以知道每张图片左移多少宽度

jQuery手动点击实现图片轮播特效

从上面的图可以看出,四张图片是浮动起来横着的布局,当数字按钮被点击时,图片就要按照数字按钮的索引值引动N个图片的宽度到达父框架里面展示,因为父框架外面的图片都会被隐藏掉~~~~~如果你还看不懂原理的话,我只能吐血了~~~~

二、下面来看主体程序

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8" />
 <title>轮播图①(手动点击轮播)</title>
 <link type="text/css" rel="stylesheet" href="css/layout.css" />
 </head>
 <body>
 <div class="slideShow">
 <!--图片布局开始-->
 <ul>
 <li><a href="#"><img src="img/picture01.jpg" /></a></li>
 <li><a href="#"><img src="img/picture02.jpg" /></a></li>
 <li><a href="#"><img src="img/picture03.jpg" /></a></li>
 <li><a href="#"><img src="img/picture04.jpg" /></a></li>
 </ul>
 <!--图片布局结束-->
 
 <!--按钮布局开始-->
 <div class="showNav">
 <span class="active">1</span>
 <span>2</span>
 <span>3</span>
 <span>4</span>
 </div>
 <!--按钮布局结束-->
 </div>
 <script src="js/jquery-1.11.3.js"></script>
 <script src="js/layout.js"></script>
 </body>
</html>

上面布局我已经在原理中说明了,感兴趣的自己看原理~~~~

三、CSS样式

*{
 margin: 0;
 padding: 0;
}
ul{
 list-style: none;
}
.slideShow{
 width: 346px;
 height: 210px; /*其实就是图片的高度*/
 border: 1px #eeeeee solid;
 margin: 100px auto;
 position: relative;
 overflow: hidden; /*此处需要将溢出框架的图片部分隐藏*/
}
.slideShow ul{
 width: 2000px;
 position: relative; /*此处需注意relative : 对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置,如果没有这个属性,图片将不可左右移动*/
}
.slideShow ul li{
 float: left; /*让四张图片左浮动,形成并排的横着布局,方便点击按钮时的左移动*/
 width: 346px;
}
.slideShow .showNav{ /*用绝对定位给数字按钮进行布局*/
 position: absolute;
 right: 10px;
 bottom: 5px;
 text-align:center;
 font-size: 12px; 
 line-height: 20px;
}
.slideShow .showNav span{
 cursor: pointer;
 display: block;
 float: left;
 width: 20px;
 height: 20px;
 background: #ff5a28;
 margin-left: 2px;
 color: #fff;
}
.slideShow .showNav .active{
 background: #b63e1a;
}

上面样式我已经备注出来很重要的地方了,相信有基础的很容易看懂,刚开始我在.slideShow ul样式里面忘了写position: relative;导致后面的jquery程序图片一直无法移动,耽误了很长时间才找出这个错误,希望大家可以注意这个地方~~~~~~~

四、jQuery程序

$(document).ready(function(){
 var slideShow=$(".slideShow"), //获取最外层框架的名称
 ul=slideShow.find("ul"), 
 showNumber=slideShow.find(".showNav span"),//获取按钮
 oneWidth=slideShow.find("ul li").eq(0).width(); //获取每个图片的宽度
 
 showNumber.on("click",function(){ //为每个按钮绑定一个点击事件 
 $(this).addClass("active").siblings().removeClass("active"); //按钮被点击时为这个按钮添加高亮状态,并且将其他按钮高亮状态去掉
 var index=$(this).index(); //获取哪个按钮被点击,也就是找到被点击按钮的索引值
 ul.animate({
 "left":-oneWidth*index, //注意此处用到left属性,所以ul的样式里面需要设置position: relative; 让ul左移N个图片大小的宽度,N根据被点击的按钮索引值index确定
 })
 })
})

是不是觉得很简单,也是几句话就搞定了手动点击的轮播效果,上面程序需要注意的是left属性是左移动,所以为负值~~~~~~~

精彩专题分享:jQuery图片轮播 JavaScript图片轮播 Bootstrap图片轮播

下次文章就为大家分享自动轮播特效,希望大家不要错过。

Javascript 相关文章推荐
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
Apr 07 Javascript
JQuery的AJAX实现文件下载的小例子
May 15 Javascript
JS远程获取网页源代码实例
Sep 05 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
Sep 26 Javascript
JavaScript动态修改弹出窗口大小的方法
Apr 06 Javascript
JavaScript用select实现日期控件
Jul 17 Javascript
jQuery动画效果实现图片无缝连续滚动
Jan 12 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
Aug 02 Javascript
基于Vue实现后台系统权限控制的示例代码
Aug 29 Javascript
关于vue-router的beforeEach无限循环的问题解决
Sep 09 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
Mar 14 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
Jun 03 Javascript
javascript实现unicode与ASCII相互转换的方法
Dec 10 #Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
Dec 10 #Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
Dec 10 #Javascript
原生js实现数字字母混合验证码的简单实例
Dec 10 #Javascript
js实现新年倒计时效果
Dec 10 #Javascript
jquery判断复选框是否选中进行答题提示特效
Dec 10 #Javascript
jQuery实现选项卡切换效果简单演示
Dec 09 #Javascript
You might like
操作Oracle的php类
2006/10/09 PHP
用文本文件制作留言板提示(下)
2006/10/09 PHP
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
PHP反转字符串函数strrev()函数的用法
2012/02/04 PHP
php设计模式之命令模式的应用详解
2013/05/21 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
javascript 定义新对象方法
2010/02/20 Javascript
jquery插件 autoComboBox 下拉框
2010/12/22 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
python collections模块的使用
2020/10/16 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
有影响力的品牌之家:Our Social Collective
2019/06/08 全球购物
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
大学应届生求职简历的自我评价
2013/10/08 职场文书
优秀毕业生推荐信
2013/11/02 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
python实现自动清理文件夹旧文件
2021/05/10 Python