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 相关文章推荐
html读出文本文件内容
Jan 22 Javascript
setTimeout和setInterval的区别你真的了解吗?
Mar 31 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
Jun 18 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
Dec 24 Javascript
jquery实现的一个导航滚动效果具体代码
May 27 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
Apr 17 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
Apr 20 Javascript
jQuery移除元素自动解绑事件实现思路及代码
May 31 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
Apr 27 Javascript
jQuery制作全屏宽度固定高度轮播图(实例讲解)
Jul 08 jQuery
Vue实现导出excel表格功能
Mar 30 Javascript
Vant 在vue-cli 4.x中按需加载操作
Nov 05 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
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
深入理解PHP变量的值类型和引用类型
2015/10/21 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
JavaScript 事件对象的实现
2009/07/13 Javascript
浅谈Javascript 执行顺序
2013/12/18 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
vue脚手架中配置Sass的方法
2018/01/04 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
小程序清理本地缓存的方法
2018/08/17 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
Scrapy项目实战之爬取某社区用户详情
2020/09/17 Python
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
英语老师推荐信
2014/02/26 职场文书
婚纱摄影师求职信范文
2014/04/17 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
小学三年级数学教学反思
2016/02/16 职场文书
CSS中Single Div 绘图技巧的实现
2021/06/18 HTML / CSS
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS
HTML+JS实现在线朗读器
2022/02/15 Javascript