web轮播图

思路:

例如:有5张轮播的图片,每张图片的宽度为1024px、高度为512px.那么轮播的窗口大小就应该为一张图片的尺寸,即为:1024×512。之后将这5张图片0px水平相接组成一张宽度为:5120px,高度依然为:512px。最后将这张合成后的大图每次向左移动1024px即可实现轮播图。

html代码

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link href="index.css" type="text/css" rel="stylesheet">
    <script src="jquery-1.11.3.min.js"></script>
    <script src="index.js"></script>
</head>
<body>
<!--轮播图整体div-->
<div class="banner">
    <!--无序列表承载轮播的图片-->
    <ul class="img">
        <li><a href="#"><img src="image/1.png" alt="第1张图片"></a></li>
        <li><a href="#"><img src="image/2.png" alt="第2张图片"></a></li>
        <li><a href="#"><img src="image/3.png" alt="第3张图片"></a></li>
        <li><a href="#"><img src="image/4.png" alt="第4张图片"></a></li>
        <li><a href="#"><img src="image/5.png" alt="第5张图片"></a></li>
        <li><a href="#"><img src="image/6.png" alt="第6张图片"></a></li>
        <li><a href="#"><img src="image/7.png" alt="第7张图片"></a></li>
 
    </ul>
    <!--用来放置圆点具体实施在js代码中呈现-->
    <ul class="num"></ul>
    <!--左右点击按钮-->
    <div class="btn">
        <span class="prev"><</span>
        <span class="next">></span>
    </div>
</div>
</body>
</html>

报错:

使用了jquery-3.7.1.slim.min.js,它是一个精简版的jQuery库,没有包含.stop()方法。你尝试使用完整版的jQuery,

<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
 

css代码

/*整体去除内外边距*/
* {
    margin: 0;
    padding:0;
}
/*取消列表的图标内容*/
ul{
    list-style: none;
}
/*对整体部分的控制,浏览图片的窗口*/
.banner{
    width: 1024px;
    height: 512px;
    border: 2px solid #ccc;
    margin: 100px auto;
    position: relative;
    overflow: hidden;
}
/*图片的初步设置后面的动态内容会在js中实现*/
.img{
    width:1024px;
    height: 512px;
    position: absolute;
    top: 0;
    left: 0;
}
/*让图片向左浮动*/
.img li{
    float: left;
}
/*圆点承载部分的设计*/
.num{
    position: absolute;
    bottom: 10px;
    width: 100%;
    text-align: center;
    font-size: 0;
}
/*圆点设计*/
.num li{
    width: 10px;
    height: 10px;
    background:rgba(0,0,0,0.5);
    border-radius: 100%;
    display: inline-block;
    margin: 0 5px;
    cursor: pointer;
}
/*按钮部分初始不可见*/
.btn{
    display: none;
}
/*按钮形状设计*/
.btn span{
    display: block;
    width: 50px;
    height: 100px;
    background: rgba(0,0,0,0.6);
    color: #fff;
    font-size: 40px;
    line-height: 100px;
    text-align: center;
    cursor:pointer;
}
/*上一个设计*/
.btn .prev{
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -50px;
}
/*下一个设计*/
.btn .next{
    position: absolute;
    right: 0;
    top: 50%;
    margin-top: -50px;
}
/*对按纽动态呈现的变换进行类选择器的设计为js代码部分进行铺垫*/
.num .active{
    background-color: #fff;
}
.hide{
    display: none;
}

js代码

//界面加载完毕执行以下程序
$(function(){
    //定义i变量为动态控制图片轮播做准备,i的值与每张图片进行一一的对应
    var i=0;
    //时间变量,为自动轮播以及对光标的影响做出相应的反应
    var timer=null;
    //根据图片的张数动态添加圆点个数
    for (var j = 0; j < $('.img li').length; j++) {
        $('.num').append('<li></li>');
    }
    //默认情况下的第一个圆点进行背景设计
    $('.num li').first().addClass('active');
    //根据光标的影响控制按钮的显示和隐藏
    $('.banner').hover(function(){
        $('.btn').show();
    },function(){
        $('.btn').hide();
    });
    //将第一张图片复制并添加到img部分下与前五张图片相接
    var firstimg=$('.img li').first().clone(); //复制第一张图片
    $('.img').append(firstimg).width($('.img li').length*($('.img img').width()));
    //定时器自动轮播
    timer=setInterval(function(){
        i++;
        if (i==$('.img li').length) {
            i=1;
            $('.img').css({left:0});//保证无缝轮播,设置left值
        }
        //进行下一张图片
        $('.img').stop().animate({left:-i*1024},500);
        //圆点跟着变化
        if (i==$('.img li').length-1) {
            $('.num li').eq(0).addClass('active').siblings().removeClass('active');
        }else{
            $('.num li').eq(i).addClass('active').siblings().removeClass('active');
        }
    },1000);
    //鼠标移入,暂停自动播放,移出,开始自动播放
    $('.banner').hover(function(){
        clearInterval(timer);
    },function(){
        timer=setInterval(function(){
            i++;
            if (i==$('.img li').length) {
                i=1;
                $('.img').css({left:0});
            };
            //进行下一张图片
            $('.img').stop().animate({left:-i*1024},500);
            //圆点跟着变化
            if (i==$('.img li').length-1) {
                $('.num li').eq(0).addClass('active').siblings().removeClass('active');
            }else{
                $('.num li').eq(i).addClass('active').siblings().removeClass('active');
            }
        },1000)
    });
    //上一个按钮
    $('.prev').click(function(){
        i--;
        if (i==-1) {
            i=$('.img li').length-2;
            $('.img').css({left:-($('.img li').length-1)*1024});
        }
        $('.img').stop().animate({left:-i*1024},500);
        $('.num li').eq(i).addClass('active').siblings().removeClass('active');
    });
    // 下一个按钮
    $('.next').click(function(){
        i++;
        if (i==$('.img li').length) {
            i=1; //这里不是i=0
            $('.img').css({left:0});
        };
        $('.img').stop().animate({left:-i*1024},500);
        if (i==$('.img li').length-1) { //设置小圆点指示
            $('.num li').eq(0).addClass('active').siblings().removeClass('active');
        }else{
            $('.num li').eq(i).addClass('active').siblings().removeClass('active');
        };
 
    });
    //鼠标划入圆点
    $('.num li').mouseover(function(){
        var _index=$(this).index();
        //维持i变量控制的对应关系不变
        i = _index;                 
        $('.img').stop().animate({left:-_index*1024},300);
        $('.num li').eq(_index).addClass('active').siblings().removeClass('active');
    });
 
})

效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/555443.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

问题解决:pip install __命令安装不了Python库

项目环境&#xff1a; 我的环境&#xff1a;Window10&#xff0c;Python3.7&#xff0c;Anaconda3-2.4.0&#xff0c;Pycharm2023.1.3 问题描述①&#xff1a; pip install 命令安装不了需要的安装的Python库&#xff0c;以PyMuPDF为例 1 socket.timeout: The read operation t…

ICASSP 2024会议现场第四弹 晚会上韩风歌舞惊喜连连

会议之眼 快讯 在科技的浪潮中&#xff0c;ICASSP 2024会议作为全球信号处理领域的风向标&#xff0c;今日在充满活力韩国迎来了它的第五天日程&#xff01;会场中热烈的讨论和灵感迸发的交流&#xff0c;让会场仿佛成为一座思想的熔炉&#xff0c;不断燃烧着创新的火花&#…

2024经常用且免费的10个网盘对比,看看哪个比较好用!

网盘在我们的工作和学习中经常会用到&#xff0c;也是存储资料的必备工具&#xff0c;有了它&#xff0c;我们就不用走到哪都带着移动硬盘了&#xff0c;而目前市场上的主流网盘还有数十款&#xff0c;其中有免费的也有付费的&#xff0c;各家不一&#xff0c;今天小编就来为您…

ins视频批量下载,instagram批量爬取视频信息【爬虫实战课1】

简介 Instagram 是目前最热门的社交媒体平台之一,拥有大量优质的视频内容。但是要逐一下载这些视频往往非常耗时。在这篇文章中,我们将介绍如何使用 Python 编写一个脚本,来实现 Instagram 视频的批量下载和信息爬取。 我们使用selenium获取目标用户的 HTML 源代码,并将其保存…

Unity解决:导出安卓apk 安装时报错:应用未安装:软件包似乎无效

Unity2018.4.36 导出安卓apk 安装时报错&#xff1a;应用未安装&#xff1a;软件包似乎无效 解决办法&#xff1a;因为安装到安卓12 需要添加添加过滤规则 在AS工程AndroidManifest.xml 添加过滤规则即可。 android:exported"true"

爬虫 | 网易新闻热点数据的获取与保存

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本项目是一个简单的网络爬虫&#xff0c;用于从网易新闻的热点新闻列表中提取标题和对应的链接&#xff0c;并将提取到的数据保存到一个 CSV 文件中。 目录 一、技术栈 二、功能说明 三、注意事项 四、代码解析 1. 导入所需…

[天梯赛] 图上的动态规划与Dijkstra

题目 刚开始的思路 一开始是想到了要用Dijkstra&#xff0c;但是不知道如何找到多条路径的信息&#xff08;刚开始是想把所有最短路找到之后再比较找到最大的救援队数量&#xff09; 正确的思路 在Dijkstra的过程中&#xff0c;分两种情况&#xff1a; 找到更短路径进行更新…

geolife笔记/python笔记:trackintel.io.read_geolife

此函数解析 geolife_path 目录中可用的所有 geolife 数据 trackintel.io.read_geolife(geolife_path, print_progressFalse) 参数&#xff1a; geolife_path (str) 包含 geolife 数据的目录路径 print_progress (Bool, 默认为 False)如果设置为 True&#xff0c;则显示每个…

【python从入门到精通】-- 第五战:函数大总结

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;python从入门到精通&#xff0c;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文…

js BOM模型常用方法梳理

1、Bom定义 BOM是操作浏览器的模型&#xff0c;主要是对浏览器的一些操作。 2、获取浏览器窗口的尺寸 window.innerHeight:获取窗口的高度。 window.innerWidth:湖区窗口的宽度&#xff0c;只在window浏览器下使用。 3、弹出层 alert:弹出框。 confirm:确认框。返回值有true …

Redis中的Lua脚本(三)

Lua脚本 EVAL命令的实现 EVAL命令的执行过程可以分为以下三个步骤: 1.根据客户端给定的Lua脚本&#xff0c;在Lua环境中定义一个Lua函数2.将客户端给定的脚本保存到lua_scripts字典&#xff0c;等待将来进一步使用3.执行刚刚在Lua环境中定义的函数&#xff0c;以此来执行客户…

2.核心概念与安装配置

核心概念与安装配置 文章目录 核心概念与安装配置1、核心概念Docker整体架构及底层通信原理 2、安装DockerCentos安装Docker引擎阿里云镜像加速Docker run的过程 3、Docker相关命令 1、核心概念 镜像&#xff08;image&#xff09; Docker 镜像&#xff08;Image&#xff09;就…

Linux 搭建私有yum源仓库

一、环境准备 IP系统版本作用192.168.140.155CentOS 7.9.2009yum源仓库192.168.140.153CentOS 7.9.2009测试 准备两台服务器&#xff0c;一台作为yum源仓库&#xff0c;另一台作为测试使用。 二、搭建yum源服务器 &#xff08;无法连接外网的情况&#xff0c;需要去官网下载镜…

ssm058基于Java的共享客栈管理系统+jsp

共享客栈管理系统的设计与实现 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对房屋出租信息管理混乱&#xff0c;出…

语言的未来:深度学习在自然语言处理中的革命

语言的未来&#xff1a;深度学习在自然语言处理中的革命 1 引言 自古以来&#xff0c;语言就是人类表达思想、传递信息、进行社会互动的基石。语言的复杂性既体现在其变化多端的语义、句法和语用层面&#xff0c;同时也反映在人类如何理解和产生自然语言的深奥之中。在这一节中…

飞企互联FE业务协作平台 ProxyServletUti 任意文件读取漏洞复现

0x01 产品简介 飞企互联-FE企业运营管理平台是一个基于云计算、智能化、大数据、物联网、移动互联网等技术支撑的云工作台。这个平台可以连接人、链接端、联通内外,支持企业B2B、C2B与O2O等核心需求,为不同行业客户的互联网+转型提供支持。其特色在于提供云端工作环境,整合…

活动报名 | 如何进行全增量一体的异构数据库实时同步

伴随着新技术的不断涌现&#xff0c;市场竞争也在不断开辟新的角斗场——新的业务需求&#xff0c;新的应用设想都在这里迸发。 面对如此日新月异的竞争环境&#xff0c;企业的当务之急&#xff0c;是为新应用扎根准备好随时可取、准确一致的高质量数据土壤。在这样的背景下&a…

电工与电子技术选择题填空题计算题复习题含参考答案

答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 电工与电子技术复习题 一 . 单选题&#xff08;共 33 题&a…

[Meachines][Easy]Headless

Tools https://github.com/MartinxMax/MDOG 针对XXS攻击 Main $ nmap -sC -sV 10.10.11.8 --min-rate 1000 类似于留言板 通过目录扫描,发现一个仪表盘 $ gobuster dir -u "http://10.10.11.8:5000" -w /usr/share/wordlists/dirbuster/directory-list-1.0.txt 回…

邮箱群组是什么?怎么创建邮箱群组?

在我们群发邮件时&#xff0c;可能会遇到这样的状况&#xff0c;一个个输入邮箱地址效率很低&#xff0c;而且很容易就漏发。而对于一个企业来说&#xff0c;如果出现这样的问题&#xff0c;很有可能会影响公司的业务进展和团队协作。这个时候我们就需要邮箱群组这个功能&#…