dom元素的自上而下自动滚动
dom元素的自上而下自动滚动
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
#box{
width: 300px;
height: 300px;
overflow-y: auto;
overflow-x: hidden;
}
</style>
</head>
<body>
<div id="box">
<p>sdjfhjdshfjdshf</p>
</div>
</body>
</html>
<script> let interval = null; // 承载定时器对象
/**
*
* @param element dom
* @param height dom元素的高度
* @param step 每次滚动步长
* @param timeSpace 定时器时间间隔
* @param delay 页面加载完成之后多久之后进行滚动
* @param isAlways 当滚动到页面底部之后是否进行再次滚动
* @param finishTime 完成滚动之后,若是允许多次滚动,设置延迟时间
* @param isMouseenter 是否有鼠标划入操作
*/
function startScroll(element, height, step, timeSpace, delay, isAlways, finishTime, isMouseenter) {
let temp = delay;
if (isMouseenter === true) {
delay = 0;
}
setTimeout(() => {
interval = setInterval(() => {
// 当element.scrollTop小于element.scrollHeight - height时执行定时器
if (element.scrollTop < element.scrollHeight - height) {
element.scrollTop = element.scrollTop + step;
} else {
delay = temp;
if (isAlways === true) {
clearInterval(interval);
element.scrollTop = 0;
setTimeout(() => {
startScroll(element, height, step, timeSpace, delay, isAlways, finishTime);
}, finishTime)
} else {
clearInterval(interval);
} } }, timeSpace);
}, delay);
} function stopScroll() {
clearInterval(interval);
} window.onload = function () {
let element = document.getElementById('box');
for(let i=0; i<40; i++) {
let str = document.createElement('p');
str.innerHTML = 'jdsfhjdshfjdshfjdshfdjshf';
element.appendChild(str);
}
startScroll(element, 300, 1, 20, 3000, true, 3000);
element.onmouseenter = function () {
stopScroll();
};
element.onmouseleave = function () {
startScroll(element, 300, 1, 20, 3000, true, 3000, true);
}
}
</script>
dom元素的自上而下自动滚动的更多相关文章
- 让DOM元素自动滚到视野内ScrollIntoView
概述 项目中需要把一个DOM元素自动滚动到视野内,百思不得其解,最后再element库里面发现了这个方法,记录下来供以后开发时参考,相信对其他人也有用. 参考资料:element scroll-int ...
- JS + jQuery 实现元素自动滚动到底部,兼容IE、FF、Chrome
HTML代码: <ul class="tasklog-dialog-ul" id="auto_to_bottom"> <li>删除虚拟机 ...
- JQuery利用sort对DOM元素进行排序
前言 排序对于我们是再熟悉不过了,在绝大数应用程序中都会有这样一个场景:当我们从服务器端获取一个列表时,在界面上进行渲染,我们可以会依赖于某一个规则来进行排序,当然此时绝大多数会再次与服务器进行交互来 ...
- DOM元素querySelectorAll可能让你意外的特性表现
一.时间紧急,废话少说 本文所在的页面藏匿了下面这些代码: <img id="outside"> <div id="my-id"> &l ...
- web进阶之jQuery操作DOM元素&&MySQL记录操作&&PHP面向对象学习笔记
hi 保持学习数量和质量 1.jQuery操作DOM元素 ----使用attr()方法控制元素的属性 attr()方法的作用是设置或者返回元素的属性,其中attr(属性名)格式是获取元素属性名的值,a ...
- jquery中dom元素的attr和prop方法的理解
一.背景 在编写使用高版本[ jQuery 1.6 开始新增了一个方法 prop()]的jquery插件进行编写js代码的时候,经常不知道dom元素的attr和prop方法到底有什么区别?各自有什么应 ...
- 一个DOM元素绑定多个事件时,先执行冒泡还是捕获
绑定在被点击元素的事件是按照代码顺序发生,其他元素通过冒泡或者捕获“感知”的事件,按照W3C的标准,先发生捕获事件,后发生冒泡事件.所有事件的顺序是:其他元素捕获阶段事件 -> 本元素代码顺序事 ...
- JavaScript获取DOM元素位置和尺寸大小
在一些复杂的页面中经常会用JavaScript处理一些DOM元素的动态效果,这种时候我们经常会用到一些元素位置和尺寸的计算,浏览器兼容性问题也是不可忽略的一部分,要想写出预想效果的JavaScri ...
- Jquery实现图片左右自动滚动
图片左右滚动的效果想必大家都有见到过吧,其实很简单.在本文将为大家介绍下使用Jquery是如何实现图片左右自动滚动的. 代码如下:<!DOCTYPE HTML> <html> ...
随机推荐
- pandas进阶
pandas是基于numpy构建的库,在数据处理方面可以把它理解为numpy的加强版,由于numpy主要用于科学计算,特长不在于数据处理,我们平常处理的数据一般带有列标签和index索引,这时pand ...
- Insomni'hack teaser 2019 - Misc - echoechoechoecho
参考链接 https://ctftime.org/task/7456 题目内容 Echo echo echo echo, good luck nc 35.246.181.187 1337 解题过程 主 ...
- 如何删除Github上的仓库
1.首先,进入自己的github账户页面,点击头像选择下面的Your repositorys,点击进入 2.进入以后选中自己要删除的仓库,点击进去该仓库界面 3.找到Settings按钮,点击进入 4 ...
- 真正解决iframe高度自适应问题
1.前言 解决iframe高度自适应问题有两种方法1.pym2.手动设置iframe的高度 本文主要是总结第二种实现方式,因为第一种pym.js插件我没用懂 如果使用iframe时,遇到以下的需求: ...
- 【牛客Wannafly挑战赛23】F 计数
题目链接 题意 给定一张边带权的无向图,求生成树的权值和是 k 的倍数的生成树个数模 p 的值. \(n\leq 100,k\leq 100,p\mod k=1\) Sol 看见整除然后 \(p\mo ...
- 自己动手实现一个网络模型 python
转自:https://www.jianshu.com/p/4b30e1dd2252 common_funcs.py import numpy as np import matplotlib.pyplo ...
- delphi exec error 错误处理
有时引用了三方jar后报错 [Exec Error] The command "PATH ..."" exited with code 1 解决方法 1.检测jar文件路 ...
- PHP入门培训教程 php中的时间处理
php中的时间处理 PHP入门培训教程 兄弟连PHP培训 小编整理的 php中的时间处理: <? /** * 转换为UNIX时间戳 */ function gettime($d) { if(is ...
- Nginx与Lua开发
1.Lua及基础语法 Nginx与Lua环境 场景:用Nginx结合Lua实现代码的灰度发布 1.Lua 是一个简洁.轻量.可扩展的脚本语言 2.Nginx+Lua优势 充分的结合Nginx的并发处理 ...
- PC端无论页面有没有完全撑开把footer保持在最底部(不用定位)
最近在写项目,有的页面没有占到一屏,然后footer也就是底部就靠上了,这样很影响美观,于是在网上找了找,下面是我的成果 解决该问题的最好方法是采用CSS3提供的一种先进布局模型 :flexbox,可 ...