❋JQuery的快速入门2 jq鼠标滚轮

news2024/11/25 14:50:29
onmousewheelscript当鼠标滚轮正在被滚动时运行的脚本。

主要是利用top与left进行上下移动和左右移动

【使用获取的角度正值还是负值,判断是向上还是上下滚动】

 $(element).on("mousewheel", function(event){
                var de= event.originalEvent.deltaY; //需要取反
})

案例:城市介绍【照片与城市介绍一样的写法,就不写了】

先用HTML和css做出样式

  1.   .box中横向分布left和right盒子
  2.   .left盒子中纵向分布多个li
  3.   .right盒子中纵向分布top和bottom盒子
  4.    填入城市名,城市介绍,城市图片

1. 根据选择的城市,切换介绍

先隐藏p标签和img标签,分别只留一个元素【区分class】

获取所有的li【li数组】,获取所有的p标签【p数组】,获取所有的img标签【img数组】。

点击li,获取该li的行号(index),循环p和img,隐藏所有的元素【切换class】

利用行号将对应的元素切换展示


 var ps=$('.right p');
        $('.left').on('click','li',function(){
            inx=$(this).index();
            for(var i=0;i<ps.length;i++){
                ps[i].className='pa';
             }
             ps[inx].className='para';
        })

图片也是一样的

2. 为城市名添加滚动样式【主要】

添加滚动不难,但是它会超出已有范围,先获取这个可滚动的范围【父盒子 - 子盒子】

在不超过这个范围内更改.left的top属性

top为正,绿色盒子向下走

top为负,绿色盒子向上走

var pdiv=$('.box').height();
var cdiv=$('.box>.left').height();
var high=pdiv-cdiv; // -100

top的更改是随着上次的距离一点一点增加或缩短的,-=或+=

用现在的top和最大top值和最小top值进行比较

获取当前top的大小,$(element).css('top')【获取的是字符串类型】

将字符串转为数字,使用正则表达式获取px前的数字【返回数组】,在转换为Number类型进行比较

当角度<0,向下走

        绿色盒子的top值>0就会让绿色盒子向下走,直到>=0这时会使绿色盒子的顶部远离红色盒子顶部,所以不在向下走。

当角度>0,向上走

        绿色盒子的top<隐藏值时继续向上奏,直到>=隐藏值 这时会使绿色盒子的底部远离红色盒子底部,所以不在向上走。

【de没有取反,所以if下内容写反】

reg=/\d+|-\d+/
$('.left').on("mousewheel", function(event){
                var de= event.originalEvent.deltaY;
                tp=$(this).css('top');
				var tpn=Number(tp.match(reg)[0]);

                if(de < 0){
					if(tpn < 0){
                        $(this).css('top','+=10px');
						
					}else{
						$(this).css('top','0px');
					}
				}else{
					if(tpn >= high){// 距离顶部的距离 > 子盒子隐藏的距离
						$(this).css('top','-=10px');
					}else{
						$(this).css('top',high+'px');
                    }
                }
})

 总代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="jquery-3.6.0.min.js"></script>
    <title>Document</title>
    <style>
        *{
            padding: 0;
            margin: 0;
            list-style: none;
            
        }
        .box{
            position: relative;
            width: 400px;
            height: 200px;
            border: 1px solid black;
            margin: 0 auto;
            overflow: hidden;
        }
        .left{
            position: relative;
            top: 0px;
            width: 60px;
        }
        .left>li{
            height: 30px;
            line-height: 30px;
            border-top: 1px solid;
            border-top: 1px solid;
            border-color: green;
        }
        .right{
            width: 338px;
            border-left: 1px solid;
            position: relative;
        }
        .right>.top{
            background-color: antiquewhite;
            height: 70px;
        }
        .right>.bottom{
            width: 100%;
            height: 128px;
            position: relative;
            overflow: hidden;
            
        }
        .box>div{
            text-align: center;
            float: left;
        }
        p{
            position: relative;
            top: 0px;
            font-size: 15px;
            text-indent: 2em;
            text-align: left;
        }
        .pa{
            display: none;
        }
    </style>
</head>
<body>
    <script>
        $(function(){
            var pdiv=$('.box').height();
            var cdiv=$('.box>.left').height();
            var high=pdiv-cdiv; // -100
            reg=/\d+|-\d+/

            $('.left').on("mousewheel", function(event){
                var de= event.originalEvent.deltaY;
                tp=$(this).css('top');
				var tpn=Number(tp.match(reg)[0]);

                if(de < 0){//为负时远离顶部,top增加
					if(tpn < 0){
                        $(this).css('top','+=10px');
						
					}else{
						$(this).css('top','0px');
					}
				}else{
					if(tpn >= high){// 距离顶部的距离 > 子盒子隐藏的距离时,可以继续向下
						$(this).css('top','-=10px');
					}else{
						$(this).css('top',high+'px');
                    }
                }
            });

            var ps=$('.right p');
            $('.left').on('click','li',function(){
                inx=$(this).index();
                for(var i=0;i<ps.length;i++){
                    ps[i].className='pa';
                }
                ps[inx].className='para';
            })
        })
    </script>
    <div class="box">
        <div class="left">
           <li>铜川市</li> 
           <li>宝鸡市</li> 
           <li>西安市</li> 
           <li>榆林市</li> 
           <li>汉中市</li> 
           <li>延安市</li>
           <li>安康市</li> 
           <li>商洛市</li> 
           <li>渭南市</li> 
           <li>南阳市</li> 
           <li>郑州市</li> 
           <li>洛阳市</li> 
           <li>开封市</li> 
           <li>信阳市</li> 
        </div>
        <div class="right">
            <div class="top">
                <!-- <img src="02_09.png" alt=""> -->
            </div>
            <div class="bottom">
            <p class="para">
                铜川市,别称同官,陕西省辖地级市,地处西北地区东部、陕西中部、关中盆地和陕北高原的接交地带,属温带季风气候。全市总面积3882平方千米。截至2022年10月,铜川市辖3区1县。截至2022末,铜川市常住人口70.5万人。
            </p>
            <p class="pa">
                宝鸡市,古称陈仓、雍城、西虢、西岐、西府等,陕西省辖地级市,是关中平原城市群副中心城市、关天经济区副中心城市,全市常住人口326.47万人。
            </p>
            <p class="pa">
                西安市,古称长安、镐京,陕西省辖地级市,是陕西省省会、副省级市、特大城市、国家中心城市、西安都市圈以及关中平原城市群核心城市,国务院批复确定的中国西部地区重要的中心城市,国家重要的科研、教育和工业基地。截至2022年末,全市下辖11个区、2个县,总面积10108平方千米,常住人口为1299.59万人,城镇人口1034.34万人,城镇化率79.59%。
            </p>
            <p class="pa">
                榆林市,陕西省辖地级市,古称上郡,别称驼城、小北京、塞上明珠等,位于陕西省最北部,陕北地区和河套地区,黄土高原和毛乌素沙地交界处,是黄土高原与内蒙古高原的过渡区,系陕、甘、宁、蒙、晋五省区交界地,温带大陆性季风气候,总面积42920.2平方千米。截至2023年4月,榆林市下辖2个市辖区、9个县,代管1个县级市。市人民政府驻榆阳区。2022年末,榆林市常住人口361.61万人。
            </p>
            <p class="pa">
                汉中市,简称“汉”,陕西省辖地级市,位于陕西省西南部,北与宝鸡市、西安市毗连,东与安康市接壤,南与四川省的广元市、巴中市、达州市相连,西与甘肃省陇南市相邻,区域面积27246平方千米,地处内陆东亚季风气候区内,气候温和湿润,年平均气温约14.5℃。截至2022年10月,汉中市辖2个区、9个县,另有5个经济功能区。汉中市人民政府驻地汉台区。2022年末,汉中市户籍总人口378.98万人。
            </p>
            <p class="pa">
                延安市
            </p>
            <p class="pa">安康市</p>
            <p class="pa">商洛市</p>
            <p class="pa">渭南市</p>
            <p class="pa">南阳市</p>
            <p class="pa">郑州市</p>
            <p class="pa">洛阳市</p>
            <p class="pa">开封市</p>
            <p class="pa">信阳市</p>
        </div>
        </div>
    </div>
</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习之旅-从Python 开始

你想知道如何开始机器学习吗&#xff1f;在这篇文章中&#xff0c;我将简要概括一下使用 Python 来开始机器学习的一些步骤。Python 是一门流行的开源程序设计语言&#xff0c;也是在人工智能及其它相关科学领域中最常用的语言之一。机器学习简称 ML&#xff0c;是人工智能的一…

Swift SwiftUI CoreData 过滤数据 2

预览 Code import SwiftUI import CoreDatastruct HomeSearchView: View {Environment(\.dismiss) var dismissState private var search_value ""FetchRequest(entity: Bill.entity(),sortDescriptors: [NSSortDescriptor(keyPath: \Bill.c_at, ascending: false)…

redis(4)-hiredis-API函数的调用

1.下载安装编译 windowslinuxredis下载 redis-plus-plus-master.zip文件的下载 http://download.redis.io/releases/redis-7.2.0.tar.gz tar -zxvf redis-7.2.0.tar.gz //-z:gzip属性 ;-x&#xff1a;解压&#xff1b;-v:显示&#xff1b;-f:文件 make make install //m…

华为2023鲲鹏应用创新大赛,实在智能“信创RPA”再获殊荣

近期&#xff0c;面向全球开发者的顶级赛事鲲鹏应用创新大赛2023成功举办&#xff0c;旨在鼓励广大开发者基于鲲鹏全栈根技术&#xff0c;围绕产业真实难题&#xff0c;共同打造基础软/硬件解决方案&#xff0c;吸引了1400多支团队同台竞技&#xff0c;贡献了一场精彩纷呈的创新…

Java小白找工作必须领悟的修仙秘籍(一)

当我们走出校园&#xff0c;步入社会&#xff0c;必须得找工作&#xff0c;那么作为it小白你必须拥有过硬的基础应用知识&#xff0c;才能慢慢的适应工作的节奏&#xff0c;以下内容则都是基础中的基础&#xff0c;需要全部进行掌握&#xff0c;因为这里可能有你面试时需要回答…

极坐标系下的交换积分次序

极坐标系下的交换积分次序 我把极坐标系下的交换积分次序总结为动静与静动之间的转换&#xff0c;下面通过一个例子感受一下 ρ 1 、 ρ 1 cos ⁡ θ \rho1、\rho1\cos\theta ρ1、ρ1cosθ ∫ 0 π / 2 d θ ∫ 1 1 cos ⁡ θ f ( ρ cos ⁡ θ , ρ sin ⁡ θ ) ρ d…

openAI发布基于ChatGPT的AI绘画模型DALL·E3,话说stable-diffusion还香吗?

前期的文章&#xff0c;我们介绍过stable-diffusion的相关操作&#xff0c;stable diffusion模型是Stability AI开源的一个text-to-image的扩散模型&#xff0c;其模型在速度与质量上面有了质的突破&#xff0c;玩家们可以在自己消费级GPU上面来运行此模型&#xff0c;本模型基…

2023年能跨平台同步的笔记软件

对于当今的职场人士来说&#xff0c;记录和管理大量的信息已经成为了日常工作中不可或缺的一部分。无论是会议笔记、读书笔记、重要工作任务还是工作注意事项&#xff0c;如何高效地记录和管理这些内容&#xff0c;成为了职场人士关注的焦点。 如何记录这些笔记内容更加简单方…

定时器的基本原理和应用

题目背景 利用51单片机的定时/计数器T0的模式1实现间隔定时&#xff0c;每隔1秒L1指示灯闪烁一下&#xff0c;也就是亮0.5秒&#xff0c;熄灭0.5秒&#xff1b;每隔10秒L8指示灯闪烁一下&#xff0c;也就是也就是亮5秒&#xff0c;熄灭5秒。 分析 计数初值。 定时/计数器&…

《C++ Primer》第5章 语句

参考资料&#xff1a; 《C Primer》第5版《C Primer 习题集》第5版 5.1 简单语句&#xff08;P154&#xff09; 在一个表达式的末尾加上 ; 就构成了表达式语句&#xff0c;其作用是执行表达式并丢弃结果。 空语句 由单独的 ; 构成的语句为空语句。空语句常用于语法上需要一…

Nuget 镜像源地址过期,腾旭镜像源地址替换

Nuget过期 国内镜像源地址ssl认证过期了。Nuget无法搜索&#xff0c;一直还原报错 解决方法&#xff0c;替换腾旭镜像源地址 tencent_mirrors https://mirrors.cloud.tencent.com/nuget/

婴幼儿腹泻的原因与应对

引言&#xff1a; 腹泻是婴幼儿常见的健康问题之一&#xff0c;尤其在早期生活阶段&#xff0c;由于他们的消化系统尚未完全发育&#xff0c;容易受到各种因素的影响。腹泻不仅给婴幼儿带来不适&#xff0c;还可能导致脱水和营养不良。因此&#xff0c;了解婴幼儿腹泻的原因是…

【LeetCode刷题笔记】排序

905. 按奇偶排序数组 解题思路&#xff1a; 1&#xff09;额外数组 两次遍历&#xff0c;第一遍将所有的 偶数 放到结果数组 res 的前面&#xff0c;第二遍将所有的 奇数 接着放到结果数组 res 的后面。也可以使用 对撞指针 往结果数组里存&#xff0c;在 一次遍历 内搞定。 2…

Ubuntu20.04 配置 yolov5_ros 功能包记录

文章目录 本文参考自博主源801,结合自己踩坑后修改 项目地址:https://github.com/mats-robotics/yolov5_ros 1.新建工作空间 新建一个工作空间 yolo_ros(名字可自定义),在 yolo_ros 下新建文件夹 src 并catkin_make进行编译 2. 安装相机驱动,可以选用较为主流的 usb_cam 或…

2024年杭州电子科技大学工商管理硕士/工程管理硕士联考网报指南

2024年MBA/MEM考试网上报名流程网报时间根据《2024年全国硕士研究生招生工作管理规定》要求&#xff0c;研招统考网上正式报名时间为2023年10月8日至10月25日&#xff0c;每天9:00—22:00。网上预报名时间为2023年9月24日至9月27日&#xff0c;每天9:00—22:00&#xff08;报名…

S5PV210裸机(四):按键中断

本文主要探讨轮询按键和中断安按键的相关知识。 按键 无按下&#xff0c;GPIO引脚处高电平&#xff0c;电路断开 按下&#xff0c;GPIO引脚接低电平&#xff0c;电路导通 SoC内部通过检测GPIO电平高低判断按键作为SoC的输入信号 按键响应 轮询…

IPETRONIK数据采集设备携手Softing Q-Vision软件致力于ADAS测试方案

一 背景 汽车ADAS技术是当下国内外的重点研究方向&#xff0c;且ADAS的发展水平和市场竞争力紧密相关&#xff0c;因此一套完善的ADAS测试方案对各整车厂而言非常重要。然而&#xff0c;国内ADAS测试却面临着很多阻碍&#xff0c;主要原因在于&#xff1a;相关测试设备昂贵&am…

关于LinkedBlockingQueue的offer的正确用法,如何保证阻塞

我们在做一些并发操作时&#xff0c;常常会使用到LinkedBlockingQueue 也会使用offer方法来往队列中插入数据 我们一直觉得使用offer后&#xff0c;当队列满了&#xff0c;新增加的元素会阻塞插入线程&#xff0c;然后一直等待到队列有空间后再插入。然而测试后发现并不是这样。…

7. Java本项目知识基础---上篇

Java本项目知识快速入门 1. idea项目打开、关闭、复制 正常关闭&#xff1a; 正常打开&#xff1a; 正常复制&#xff1a; 2. idea快捷键 保存&#xff1a;ctrls 撤销&#xff1a;ctrlz 还原&#xff1a;ctrlshiftz 复制:ctrlc 粘贴:ctrlv 快速复制粘贴:ctrld 删除行:c…

MySQL MVCC多版本并发控制机制原理详解

目录 一、前言二、MVCC解决了什么问题三、MVCC核心 Undo Log 和 Read View 介绍3.1、Undo Log&#xff08;日志版本链&#xff09;3.2、Read View&#xff08;一致性视图&#xff09;3.2.1、设计思路3.2.2、ReadView判断规则 四、数据准备五、举例探究MVCC机制5.1、例子执行流程…