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 】
相关推荐:
如何用好域名打造高点击率的自主建站?
独立制作一个网站多少钱,建立网站需要花多少钱?
大连 网站制作,大连天途有线官网?
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
黑客入侵网站服务器的常见手法有哪些?
黑客如何通过漏洞一步步攻陷网站服务器?
jQuery 常见小例汇总
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
如何用wdcp快速搭建高效网站?
如何用JavaScript实现文本编辑器_光标和选区怎么处理
如何生成腾讯云建站专用兑换码?
JavaScript如何实现类型判断_typeof和instanceof有什么区别
如何在云主机快速搭建网站站点?
Laravel怎么使用Intervention Image库处理图片上传和缩放
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何在橙子建站上传落地页?操作指南详解
Laravel怎么上传文件_Laravel图片上传及存储配置
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
如何批量查询域名的建站时间记录?
如何用搬瓦工VPS快速搭建个人网站?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
如何在建站之星绑定自定义域名?
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
JavaScript如何实现错误处理_try...catch如何捕获异常?
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
如何构建满足综合性能需求的优质建站方案?
如何利用DOS批处理实现定时关机操作详解
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
如何在云服务器上快速搭建个人网站?
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
如何在IIS服务器上快速部署高效网站?
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
如何用低价快速搭建高质量网站?
PythonWeb开发入门教程_Flask快速构建Web应用
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
Linux安全能力提升路径_长期防护思维说明【指导】
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
bootstrap日历插件datetimepicker使用方法
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
Python面向对象测试方法_mock解析【教程】
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
油猴 教程,油猴搜脚本为什么会网页无法显示?
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势

