jquery+css实现简单的图片轮播效果
发布时间 - 2026-01-11 02:40:21 点击率:次开发过程中需要用到图片轮播的插件,在网上找了几个插件之后还是决定自己码一个,比较简洁的功能,以后说不定还会有用。

ps:
功能比较简单,整个框并不能根据图片的大小自动调节,这里所用的图片是1170*500的,如果需要改成其他大小的图片,自行修改.pic-list下img的宽度。
.pic-list中的宽度为整个横幅的宽度,如果需要轮播的图片数量很多,.pic-list的宽度应大于数量*单张宽度,
html
<div class="banner">
<!--第一张图片为最后一张,用来做轮播连接使用,所以一开始显示的第一章,应是第二张图片,这里图片的宽度为1170px,所以一开始left为-1170px,同理最后一张图也为第一张图。-->
<div class="pic-list" style="left: -1170px">
<img src="/static/img/4.jpg" alt="">
<img src="/static/img/1.jpg" alt="">
<img src="/static/img/2.jpg" alt="">
<img src="/static/img/3.jpg" alt="">
<img src="/static/img/4.jpg" alt="">
<img src="/static/img/1.jpg" alt="">
</div>
<div id="buttons">
<!-- 确保span的数量跟img数量一样多,不包括第一张img和最后一张img-->
<span class='on'></span>
<span></span>
<span></span>
<span></span>
</div>
<a href="javascript:;" class="arrow" id="prev"><</a>
<a href="javascript:;" class="arrow" id="next">></a>
</div>
css
.banner{
width: 100%;
height: 500px;
overflow: hidden;
position: relative;
}
.banner a{
text-decoration: none;
}
.banner .pic-list{
width: 10000px;
height: 500px;
position: absolute;
z-index: 1;
}
.banner .pic-list img{
width: 1170px;
float: left;
}
#buttons{
position: absolute;
z-index: 2;
height: 10px;
bottom: 20px;
left: 550px;
}
#buttons span{
cursor: pointer;
float: left;
border: 1px solid #fff;
width: 10px;
height: 10px;
border-radius: 50%;
background: #333;
margin-right: 5px;
}
#buttons .on{
background: orange;
}
.arrow{
cursor: pointer;
line-height: 36px;
text-align: center;
font-size: 20px;
font-weight: bold;
width: 40px;
height: 40px;
position: absolute;
z-index: 2;
top: 200px;
background: rgba(0,0,0,0.5);
color: #fff;
display: none;
}
.banner:hover .arrow{display: block;}
#prev{
left: 20px;
}
#next{
right:20px;
}
js
$(document).ready(function(){
var picNum = 4;//图片数量,根据实际修改
var picWidth = 1170;//图片的宽度,根据实际修改
var picMaxWidth = -1 * picNum * picWidth;
var currentPic = 1;
var next = $('#next');
var prev = $('#prev');
var flag = false;
prev.on('click',function(){
if(!flag){
calPx(1170);
currentPic--;
if (currentPic < 1) {
currentPic = picNum;
}
$('#buttons span').eq(currentPic-1).addClass('on').siblings().removeClass('on');
}
});
next.on('click',function(){
if(!flag){
calPx(-1170);
currentPic++;
if (currentPic > picNum) {
currentPic = 1;
}
$('#buttons span').eq(currentPic-1).addClass('on').siblings().removeClass('on');
}
});
$('.banner').on('mouseover',function(){
stop();
}).on('mouseout',function(){
play();
})
function nextClick(){
next.click();
}
function play(){
setInt = setInterval(nextClick,2000);
}
function stop(){
clearInterval(setInt);
}
function calPx(leftPx){
flag = true;
var left = parseInt($('.pic-list').css('left'));
var newLeft = left+leftPx;
var time = 300;
var interval = 10;
var speed = leftPx/(time/interval);
function go(){
var left = parseInt($('.pic-list').css('left'));
if((speed < 0 && left > newLeft) || (speed > 0 && left < newLeft)){
$('.pic-list').css('left', (left + speed) + 'px');
setTimeout(go,interval);
}else{
flag = false;
if( newLeft > -1170){
newLeft = picMaxWidth;
}else if (newLeft < picMaxWidth ) {
newLeft = -1170;
}
$('.pic-list').css('left',newLeft + 'px');
}
}
go();
}
play();
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# jquery
# css
# 图片轮播
# 12款经典的白富美型—jquery图片轮播插件—前端开发必备
# 原生js和jquery实现图片轮播特效
# jQuery图片轮播的具体实现
# Jquery代码实现图片轮播效果(一)
# 基于JQuery的实现图片轮播效果(焦点图)
# 原生js和jquery实现图片轮播淡入淡出效果
# 基于jquery的图片轮播 tab切换组件
# jQuery插件slicebox实现3D动画图片轮播切换特效
# jQuery手动点击实现图片轮播特效
# 基于jQuery实现左右图片轮播(原理通用)
# 第一张
# 一张图
# 几个
# 还会
# 找了
# 也为
# 并不能
# 应是
# 不包括
# 大家多多
# 过程中
# 说不定
# 自动调节
# 在网上
# id
# span
# buttons
# href
# leftPx
# javascript
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何选择可靠的免备案建站服务器?
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
如何快速查询域名建站关键信息?
BootStrap整体框架之基础布局组件
Python正则表达式进阶教程_复杂匹配与分组替换解析
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
如何在云指建站中生成FTP站点?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
如何在阿里云通过域名搭建网站?
QQ浏览器网页版登录入口 个人中心在线进入
JS去除重复并统计数量的实现方法
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何构建满足综合性能需求的优质建站方案?
如何做网站制作流程,*游戏网站怎么搭建?
如何用PHP工具快速搭建高效网站?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
Laravel如何生成URL和重定向?(路由助手函数)
如何在阿里云虚拟服务器快速搭建网站?
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
Python高阶函数应用_函数作为参数说明【指导】
香港服务器部署网站为何提示未备案?
实例解析Array和String方法
Python文件操作最佳实践_稳定性说明【指导】
Python文本处理实践_日志清洗解析【指导】
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何用AWS免费套餐快速搭建高效网站?
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
javascript日期怎么处理_如何格式化输出
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Linux安全能力提升路径_长期防护思维说明【指导】
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
制作公司内部网站有哪些,内网如何建网站?
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
实例解析angularjs的filter过滤器
如何在景安云服务器上绑定域名并配置虚拟主机?

