作者:wymanNi | 来源:互联网 | 2022-08-25 12:38
本文实例为大家分享了JS实现长图上下滚动的具体代码,供大家参考,具体内容如下
案例描述
将一张长图放在某一固定长宽的盒子里,当鼠标置于盒子的上半部分时,图片向下滑直到到达图片的底部停止;当鼠标置于盒子的下半部分时,图片向上滑直到到达图片的顶部停止。
案例图示
HTML
CSS
CSS不作过多解释,详解请看注释部分
//通用样式
* {
margin: 0;
padding: 0;
}
#box {
width: 750px;
height: 200px;
border: 1px solid #000;
margin: 200px auto;
overflow: hidden; /*图片溢出部分隐藏*/
position: relative; /*子绝父相*/
}
#pic {
position: absolute;
left: 0;
right: 0;
}
#top {
width: 100%;
height: 50%;
position: absolute; /*子绝父相*/
left: 0;
cursor: pointer; /*鼠标*/
/* 顶部对齐 */
top:0;
}
#bottom {
width: 100%;
height: 50%;
position: absolute; /*子绝父相*/
left: 0;
cursor: pointer;
/* 底部对齐 */
bottom: 0;
}
JS核心代码
JS详解----监听鼠标进入事件(以盒子上半部分为例)
鼠标停留在盒子上半部分时,使用onmouseover事件。首先要清除定时器,否则可能会出现定时器重叠现象;再设置定时器,定时器中的num就是改变图片的top属性以达到图片向上滑动的效果。if语句中的条件是为了达到图片到达底部时停止向上滑的目的。(盒子下半部分类似)
top.Onmouseover= function(){
// 改变pic中的top
// 清除定时器
// alert(0);
clearInterval(intervalId);
// 设置定时器
intervalId = setInterval(function(){
if(num > -600){
num -= 10;
pic.style.top = num + "px";
}
},20);
JS详解----监听鼠标移出事件(以盒子上半部分为例)
鼠标移出时使用onmouseout事件,清除定时器。(盒子下半部分类似)
top.Onmouseout= function() {
clearInterval(intervalId);
}
JS全部代码展示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
1.类型ECMAScript语言中所有的值都有一个对应的语言类型。ECMAScript语言类型包括Undefined、Null、Boolean、String、Number和Obje ...
[详细]
蜡笔小新 2024-12-12 22:45:35
-
本文详细介绍了MooseFS中的副本管理(Goal)以及文件回收机制。副本管理允许用户设定文件的复制份数,确保数据的安全性和可用性;而文件回收机制则提供了在误删除文件后的恢复途径,通过设置合理的隔离时间,保护重要数据。 ...
[详细]
蜡笔小新 2024-12-12 21:23:50
-
-
本文通过一个简单的Java类`Person`的示例,详细解析了JVM在加载和运行时如何处理类和对象的内存分配过程。通过具体代码演示,帮助读者更好地理解和掌握JVM内存管理的核心概念。 ...
[详细]
蜡笔小新 2024-12-12 20:30:08
-
本文详细介绍了Android开发中的关键组件——View和ViewGroup类,以及Android平台上的两种主要事件处理方式。同时,文章还探讨了如何利用Android提供的标准布局文件来优化UI设计。 ...
[详细]
蜡笔小新 2024-12-12 19:23:13
-
在尝试重新激活已过期的 Visual Studio 2008 试用版时遇到了困难,特别是找不到输入序列号的位置。经过一番探索,最终找到了有效的解决方法,包括未安装和已安装过期后的处理方式。 ...
[详细]
蜡笔小新 2024-12-12 18:52:30
-
开发笔记:精通 CSS 第 10 章 变换过渡与动画 学习笔记 ...
[详细]
蜡笔小新 2024-12-12 18:31:59
-
本文详细介绍了如何从SVN中获取项目,并在本地环境中进行有效的构建和开发,包括具体的步骤和配置方法。 ...
[详细]
蜡笔小新 2024-12-12 16:46:18
-
本文详细探讨了Java中的关键字static、单例模式、main()方法、代码块、final关键字、抽象类与方法、模板方法设计模式、接口、内部类等内容,旨在帮助读者深入理解和掌握Java面向对象编程的核心概念。 ...
[详细]
蜡笔小新 2024-12-12 16:41:55
-
在进行Java项目的Ant构建过程中,有时会遇到由平台差异引发的编译错误。本文将详细探讨一种常见的错误——'error: illegal character'及其解决方案。 ...
[详细]
蜡笔小新 2024-12-12 16:39:46
-
本文详细介绍如何在iOS项目中集成和使用KTVHTTPCache音视频缓存插件,包括Podfile配置、初始化设置及实际应用中的使用方法。 ...
[详细]
蜡笔小新 2024-12-12 15:33:33
-
本文档提供了一个简单的 ECharts 使用示例,帮助初学者快速了解如何在网页中集成和使用 ECharts 创建图表。更多详细信息请参阅官方文档:https://www.echartsjs.com/zh/tutorial.html#5%20分钟上手%20ECharts ...
[详细]
蜡笔小新 2024-12-12 13:22:40
-
本文详细探讨了函数与对象方法的主要区别,包括它们的定义方式、调用规则以及在面向对象编程语言中的应用特点。 ...
[详细]
蜡笔小新 2024-12-12 13:13:32
-
本文详细介绍了如何利用HTML5技术创建一个逼真的树叶飘落动画,包括HTML、CSS和JavaScript的代码实现及优化技巧。 ...
[详细]
蜡笔小新 2024-12-12 13:05:58
-
本文探讨了NFC设备中OMA接口的访问方式,特别是针对IC制造商提供的NFC swp-sim访问与NFC服务提供商对eSe(嵌入式安全元件)访问的不同处理方法。文中提出了几种解决方案以解决由此产生的双SmartcardService运行问题。 ...
[详细]
蜡笔小新 2024-12-12 11:50:31
-
本文深入解析了PHP中输出缓冲(Output Buffering)的原理及其在Web开发中的应用,特别是如何通过输出缓冲技术有效管理HTTP头部信息,提高代码的灵活性与健壮性。 ...
[详细]
蜡笔小新 2024-12-12 10:37:27
-