用jq实现轮播图片的效果

article/2025/10/19 0:31:24

用jq实现轮播图片的效果

使用jq实现简单的图片轮播效果,图片自动轮播功能,左右点击滑动功能,鼠标进入数字列表时实现图片滑动功能;主要是通过操作图片数组删除和添加的元素,然后重新渲染页面的方式来实现轮播。

1.效果图

在这里插入图片描述

2.html代码

<h2 class="sub-header">例子:轮播</h2><div id="out_view"><ul class="img_list"></ul><!------------------------------------><ul class="number_list"></ul><span class="prev">&lt </span><span class="next">&gt</span></div>

2.css代码

#out_view *{margin: 0;padding: 0;}ul,li{list-style: none;}#out_view{position: relative;}#out_view ul>li{float: left;}#out_view{width: 400px;height: 200px;margin: 0 auto;overflow: hidden;}#my_views{position: absolute;width: 400px;border: 1px solid #f70505;}#out_view ul:after{content: '';display: block;clear: both;}#out_view ul.img_list{width: 2000px;position: absolute;}#out_view ul.img_list>li{width: 400px;height: 200px;}#out_view ul.img_list>li img{width: 100%;height: 100%;}#out_view ul.number_list{position: absolute;bottom: 20px;right: 20px;}#out_view ul.number_list>li{width: 20px;height: 20px;background-color: #fff;font-weight: bold;text-align: center;line-height: 20px;cursor: pointer;margin: 0 2px;}#out_view ul.number_list>li.active{background-color: #985f0d;}#out_view .prev,#out_view .next{position: absolute;width: 30px;height: 40px;font-weight: bold;font-size: 18px;background-color: #c4e3f3;text-align: center;line-height: 40px;opacity: 0.6;cursor: pointer;border-radius: 8px;}#out_view .prev{left: 10px;top:80px;}#out_view .next{right: 10px;top:80px;}#out_view>span:hover{opacity: 0.9;background-color: #2aabd2;}

3.js代码

$(function () {//存放图片的数组var imgs_list = ['/static/images/viewpager/1.jpg','/static/images/viewpager/2.jpg','/static/images/viewpager/3.jpg','/static/images/viewpager/4.jpg','/static/images/viewpager/5.jpg',]var out_view =$('#out_view') //外层容器var out_width = $('#out_view').width() //外层容器的宽度var img_ul = $('#out_view .img_list') //图片列表ulvar number_ul = $('#out_view .number_list') //数字列表ulvar prev_btn = $('#out_view .prev') //左边的按钮var next_btn = $('#out_view .next') //右边的按钮var current = 1 //当前活动的图片/数字var click_lock = true //点击锁var timd_id //定时器id//渲染轮播的页面的函数function updateView(imgs_list,img_ul,number_ul,current) {/*** imgs_list:图片路径数组* img_ul:存放图片的ul* number_ul:存放数字的ul* current: 当前显示的图片* **/var current = current?current:1 //当前显示的页码默认为1var imgs_list = imgs_listvar img_list_html = ''var number_list_html = ''for (var i=0;i<imgs_list.length;i++){img_list_html += `<li><img src="${imgs_list[i]}"></li>`number_list_html += `<li data-item=${i+1} class="${(current==i+1)? 'active' :''}">${i+1}</li>`}img_ul.html(img_list_html) //生成图片列表number_ul.html(number_list_html) //生成数字列表}//右边边按钮事件function next_event(move_number){if (!click_lock ) return  //点击锁为false则不处理click_lock = false //设置点击锁为falsevar move_number = move_number?move_number:1  //用来确定图片和数字移动的个数默认为1current += 1 //当前显示图片和数字+1current = current>(imgs_list.length)?1:current //如果当前显示图片和数字大于最大值//1.把图片列表向左移动(图片个数*宽度)px,img_ul.animate({"left":`-${out_width*move_number}px`},"slow",function () {//2.然后将向左移动出去的图片剪切到图片列表的结尾,把left 改为0pxvar next_del_img= imgs_list.splice(0,1*move_number)for (var i=0;i<next_del_img.length;i++){imgs_list.push(next_del_img[i])}img_ul.css({'left':'0px'})updateView(imgs_list,img_ul,number_ul,current)//3.最后重新生成页面,click_lock = true //4.把点击锁设置为true})}//左边边按钮事件function prev_event(move_number){if (!click_lock ) return //点击锁为false则不处理click_lock = false //设置点击锁为falsevar move_number = move_number?move_number:1 //用来确定图片和数字移动的个数默认为1current -= 1 //当前显示图片和数字+1current = current<1?imgs_list.length:current //如果当前显示图片和数字小于1就改为最大值//1. 将图片列表的后面move_number 个图片删除,拼接到前面var prev_del_img= imgs_list.splice(-1*move_number,1*move_number)for (var i=prev_del_img.length-1;i>-1;i--){imgs_list.unshift(prev_del_img[i])}//2.设置图片列表的left值img_ul.css({"left":`-${out_width*move_number}px`})//3.根据拼接好的列表重新生成页面updateView(imgs_list,img_ul,number_ul,current)//4.启动向右滑动的动画,然后设置 click_lock = trueimg_ul.animate({"left":"0px"},1000,function () {click_lock = true})}//数字列表的鼠标进入事件number_ul.on("mouseover","li",function () {clearInterval(timd_id)if (!click_lock ) return //点击锁为false则不处理var current_number = $(this).attr('data-item')//获取当前数字var old_number = $(this).parent().children('.active').attr('data-item') //获取旧的数字move_number =  parseInt(current_number) - parseInt(old_number) //获取前后的差值if(parseInt(current_number) > parseInt(old_number)){ //根据当前和之前的值大小判断向左还是向右滑动current = parseInt(current_number) - 1  //因为next_event函数中current有-1,所以这里+1,,不然后面重新生成页面的时候数字不对next_event(move_number)}else if(parseInt(current_number) < parseInt(old_number)){//根据当前和之前的值大小判断向左还是向右滑动current = parseInt(current_number) + 1move_number = Math.abs(move_number)console.log(current,move_number)prev_event(move_number)}else {return}})updateView(imgs_list,img_ul,number_ul) //加载完成生成页面prev_btn.on('click',function(){  //左边点击事件clearInterval(timd_id)prev_event()})next_btn.on('click', function(){ //右边按钮点击事件clearInterval(timd_id)next_event()})function auto(){ //自动轮播的函数timd_id = setInterval(function(){next_event()},2000)}auto() //启用自动轮播out_view.mouseenter(function(){clearInterval(timd_id)})out_view.mouseleave(function(){auto() //启用自动轮播})
})

仓库链接: https://gitee.com/htg_nice/my_django_demo19-4-3.git


http://chatgpt.dhexx.cn/article/Gj2pvBHZ.shtml

相关文章

用jq撸一个简易轮播图

本次文章我将来用jq实现一个轮播图&#xff0c;废话少说下面放效果 先说下基本思想&#xff0c;先将item使用position: absolute;脱离文档流令他们叠在一起&#xff0c;使用z-index来实现轮播的效果&#xff0c;注&#xff1a;这里如果没把每一项absolute的话是没法用z-index的…

js jQ轮播图(三种)

第一种: 用了css3进行3D效果轮播 完整代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta…

jq轮播图2

今天续着上一期的来给大家讲另外一种方法的轮播图   这种方法可以实现无缝轮播,原理就是我们在自己预先想要设置轮播的那一组照片后边,用jq语言在另外加上一组相同的照片,相当于现在的长度就是两组照片的长度,我们将初始的图片索引值就先定在我们复制的第一张图片上,就是…

jQuery实现一个简单的轮播图

一.轮播图内容组成 包括&#xff1a;4张图片&#xff0c;图片标号&#xff0c;向左翻页&#xff0c;向右翻页的几个部分&#xff0c;如下图所示&#xff1a; 二.实现功能 1.加载页面后&#xff0c;4张图片默认从第一张图片开始轮播&#xff0c;索引值为1。 2.当把鼠标over到…

jQuery实现各种轮播图

目录 无限循环滚动 百叶窗 轮播一 轮播二 轮播三 无限循环滚动 * {margin: 0;padding: 0;}div {width: 1120px;height: 300px;border: 1px solid #000;margin: 100px auto;overflow: hidden;}ul {list-style: none;width: 3360px;height: 300px;background: #000;/* backgro…

git上传代码简单方法 简单git上传代码工具

简单git上传代码工具 肯定有很多人和我一样&#xff0c;git上传时候搞不懂拉取&#xff0c;合并等一系列的代码冲突问题&#xff0c;往往可能覆盖掉自己今天写的代码&#xff0c;或者覆盖掉别人的代码。 下面给大家简单介绍一款操作比较简单的上传代码工具&#xff1a;下图这款…

Git上传代码到GitHub

版本控制&#xff1a;使用Git上传代码到GitHub 本文将帮助大家学会使用Git&#xff08;版本管理工具&#xff09;软件把电脑中的代码或项目上传到GitHub&#xff08;项目托管平台&#xff09;中。 要上传代码到GitHub中&#xff0c;是必须要安装Git软件的&#xff0c;不管是直…

如何向github上传代码

说明&#xff1a;本人亲测可行 1.首先你要安装git才行&#xff0c;这里不说明。 2.在github上创建个人仓库: 3.复制仓库地址&#xff1a; 4.在本地随便创建一个文件夹&#xff08;注意路径不要中文&#xff09; 5.进入文件中&#xff0c;鼠标右键如果安装成功git,菜单中会多出…

git上传代码到git/码云gitee

一、首先需要下载git https://git-scm.com/ 输入命令:git --version 可查看当前git版本 二.安装后需要一些配置 配置用户名和邮箱: $ git config --global user.name "qinyong" $ git config --global user.email "emailexample.com" qinyong是自…

如何在mac端上用git上传代码到码云

前言&#xff1a;作为一个合格的猿&#xff0c;SVN的使用相信大家已经非常熟悉了&#xff0c;GIT作为一个强大的版本控制工具&#xff0c;也是非常有必要深入学习的。对比两个工具&#xff0c;说说GIT的优缺点&#xff1a; 优点&#xff1a;1、GIT拥有全世界的资源&#xff0c;…

git上传代码到gitee仓库步骤

默认电脑第一次安装git且未设置过SSH key 安装git 创建gitee仓库 生成SSH密钥 在你想上传文件所在的文件夹内右键&#xff0c;打开git bash&#xff0c;第一次使用Git时需要先生成SSH ssh-keygen -t rsa -C "your_email"注意&#xff1a;ssh-keygen中间没有空格提…

git上传代码到码云(详细)

一、安装git .要使用git 先安转git 请到官网下载最新git http://git-scm.com/downloads 安装完成右键查看下是否有如下图所示的图标 二、本地建立git文件 本次建立的git文件是在本地完成的项目上建立的。找到当前完成项目的文件夹完成如下代码 &#xff08;1&#xff09;“…

【git】将代码上传到github

记录一下用Git初次配置远端仓库的学习过程。 假设你已经下载好了git&#xff0c;同时在github上也有了一个账号。 0.配置SSH 我们打开git bash&#xff0c;然后输入 $ ssh-keygen -t rsa -C "your_emailyouremail.com"这里的your_emailyouremail.com 是你在github…

怎么用git上传部分代码

怎么用Git上传部分代码? 0&#xff1a;在项目的根目录右键 Git Bash Here 1: 使用命令: git status (查看当前代码状态) 标红的为修改的代码 2&#xff1a;看一下那些文件是想要上传哪些文件是不想要上传的。 使用命令: git add . (全部上传) git add 文件 (上传指定文件) …

Git代码上传

以开源仓库为例&#xff0c;公司使用公司的仓库 首先需要注册一个gitee 创建仓 本地安装git 安装地址&#xff1a; https://git-scm.com/download/win 设置环境变量 在cmd设置GIT全局设置&#xff0c;输入你创建仓库的命令 创建git仓库 1、新建文件api_test 2、在cmd切换至此…

往git上上传代码

从Mac的终端上往git上上传代码 前言git的工作原理github的基本操作 前言 因为要完成小组的项目需要用到git&#xff0c;所以我提前学习了一下git的使用。 git的工作原理 首先我了解了一下git的工作原理 一般我们会把项目放到远程仓库里&#xff0c;也就是GitHub里。每个人都…

Git命令行上传本地代码

该篇文章主要参考(超详细&#xff09;使用git命令行将本地仓库代码上传到gitee/github远程仓库 写此博客主要为了日后查阅方便。 第一步&#xff1a;初始化git。进入到需要上传的项目的目录下&#xff0c;右键找到Git Bah Here&#xff0c;目的是可以直接在当前目录进行初始…

如何用git上传代码到github详细步骤

注册账户 想使用github&#xff0c;第一步肯定是要注册github账号&#xff0c;有了账号就是直接登录啦 可以直接打开http://github.com页面注册 创建仓库 注册、登录完成之后&#xff0c;在登录页面最上方用户菜单上选择 “”->New repository 创建一个新的仓库 进入创建仓库…

如何使用Git上传项目代码到github

github是一个基于git的代码托管平台&#xff0c;付费用户可以建私人仓库&#xff0c;我们一般的免费用户只能使用公共仓库&#xff0c;也就是代码要公开。这对于一般人来说公共仓库就已经足够了。 注册账户以及创建仓库 要想使用github第一步当然是注册github账号了。之后就可以…

Git上传文件代码到GitHub(超详细)

Git上传文件代码到GitHub&#xff08;超详细&#xff09; 之前用git上传代码到GitHub上&#xff0c;时间一长又忘了&#xff0c;总结一下写下来&#xff0c;后面上传忘了再看。 1. 新建一个空文件夹&#xff0c;用来上传文件 空文件夹放在那里都可以 2. 点进去空文件夹&am…