js怎样实现一张长图滚动效果?
Admin 2021-08-26 群英技术资讯 874 次浏览
这篇文章给大家分享的是有关js实现长图滚动效果的内容,小编觉得挺实用的,在很多常见都能应用到,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。
长图的滚动会涉及定时器:
我们先来回顾下定时器:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>定时器回顾</title>
</head>
<body>
<button id="start">开启</button>
<button id="stop">关闭</button>
<script type="text/javascript">
var start = document.getElementById("start");
var stop = document.getElementById("stop");
var num = 0,timer = null;
start.onclick = function (){
// 使用定时器的时候 先清除原有定时器 再开启定时器 可以试着将下边的clearInterval(timer);注释掉然后多次点击开启按钮对比效果
clearInterval(timer);
timer = setInterval(function (){
num++;
console.log(num);
},1000)
}
stop.onclick = function (){
clearInterval(timer);
}
</script>
</body>
</html>
温习完定时器内容后,来看长图滚动的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>长图滚动效果</title>
<style>
*{
padding: 0;
margin: 0;
}
body{
background-color: #000;
}
#box{
width: 658px;
height: 400px;
border: 1px solid #ff6700;
margin: 100px auto;
overflow: hidden;
position: relative;
}
#box img{
position: absolute;
top: 0;
left: 0;
}
#box span{
position: absolute;
width: 100%;
height: 50%;
left: 0;
cursor: pointer;
}
#box #top{
top: 0;
}
#box #bottom{
bottom: 0;
}
</style>
</head>
<body>
<div id="box">
<img src="img/timer.jpeg" alt="">
<span id="top"></span>
<span id="bottom"></span>
</div>
<script type="text/javascript">
// 1.获取事件源
var box = document.getElementById('box');
var pic = document.getElementsByTagName('img')[0];
var divTop = document.getElementById('top');
var divBottom = document.getElementById('bottom');
// 2.添加事件
var num = 0,timer = null;
divBottom.onmouseover = function () {
// 清除之前的加速效果
clearInterval(timer);
// 让图片向下滚动
timer = setInterval(function () {
num -= 10;
// 这个-3666是根据图片自己调控的
if(num >= -3666){
pic.style.top = num + 'px';
}else{
clearInterval(timer);
}
},50);
}
divTop.onmouseover = function () {
clearInterval(timer);
// 让图片向上滚动
timer = setInterval(function () {
num += 10;
if(num <= 0){
pic.style.top = num + 'px';
}else{
clearInterval(timer);
}
},100);
}
// 鼠标移开则停止滚动
box.onmouseout = function () {
clearInterval(timer);
}
</script>
</body>
</html>
这里不放效果图了,需要可以自己试试(记得找长图)
以上就是关于js实现长图滚动效果的代码,有需要的朋友可以借鉴参加,希望本文对大家学习JavaScript有帮助,想要了解更多js实现长图滚动效果的内容,大家可以关注其他相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家介绍了前端框架封装Vue第三方组件的三个技巧示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
目录vue-cli3.0修改打包后的文件地址和文件名问题描述修改文件名报错解决vue文件夹名称修改导致错误vue-cli3.0修改打包后的文件地址和文件名问题描述最近开发一个web端vue项目时使用了vue-cli3.0搭建项目目录,开发过程中一切顺利,没有遇到什么问题,开发完毕打包上线时出现了问题,打包后的文件默认在
最近小编接到一个项目pc端和移动端是两个独立的项目,两个项目项目中的内容基本相同,链接组合的方式都有规律可循,接到的需求便是在移动端访问pc端的URL连接时,重定向至移动端对应页面,下面小编给大家分享实现过程,一起看看吧
JavaScript封装弹框插件的方法 JavaScript封装弹框插件的具体代码,供大家参考,具体内容如下 知识点1.document.querySelector() 方法 querySelector() 方法返回文档中匹配指定 CSS 选择器的一个元素.注意: querySelector() 方法仅仅返回匹配指定选择器的第一个元素.如果你需要返回所有的元素,请使用 querySelectorAll() 方法替代.querySelectorAll() 方法返回文档中匹配指定 CSS 选择器的所有元素,返回 [NodeList] 对象
Javascript修改元素属性怎样做?想要修改元素属性,我们可以使用元素对象.attribute = new value和setAttribute()函数这两种方法,具体怎样使用呢?文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008