function set() {
outEle.scrollTop = 100;
这种方法比较直接, 但是因为是直接设置的dom元素的js属性 而不是css属性, 所以想通过这种方法设置过渡动画是没有效果的(transition: all 1s linear; 无效)
补充: 有时会出现设置scrollTop无效 一直为0的情况, 出现这种现象的原因之一就是内容已经到底了, 在滑滑不上去了…
scrollTo()
方法可以使界面滚动到给定元素的指定坐标位置。
有两种用法:
方法一: element.scrollTo(x-coord, y-coord)
- x-coord 是期望滚动到位置水平轴上距元素左上角的像素。
- y-coord 是期望滚动到位置竖直轴上距元素左上角的像素。
方法二: element.scrollTo(options)
- options是一个对象:
- left (number类型)
- top(number类型)
- behavior: ‘smooth’ (平滑过渡效果)
scrollTo()的两种方式我们都试试:
function set() {
outEle.scrollTo(0, 100)
outEle.scrollTo({top: 100, behavior: 'smooth'})
最后, 大家会发现 都产生了效果, 但是方式一没有过度效果, 方式二产生了过度效果, 所以如果对过渡动画有要求的话, 推荐使用第二种方式~!
当然, 需要注意的是: options这种对象的写法 有兼容性方便的限制:
好了, 今天就和大家分享到这里~!
scrollTo
ScrollTo是一个模块,它将以动画移动方式滚动到页面上的指定元素或位置。 它利用了本机方法来确保动画流畅。
请注意,存在一些具有动画功能的本机滚动方法,包括 , 和 。 如果这些本机方法满足您的需求,我们建议使用它们以支持此模块。
您可以查看scrollTo的演示。
ScrollTo是一个ES6模块。 因此,您需要一个ES6编译器( 是一个不错的工具)作为Javascript工作流程的一部分。
如果您已经在项目中使用NPM,则可以使用以下命令安装scrollTo:
$ npm install @degjs/scroll-to
import scrollTo from "@degjs/scroll-to" ;
/* Scroll to an element with a 1-second, eased-in animation */
element.scrollTo首先需要注意的是调用scrollTo方法的是出现滚动的父元素,即高度固定overflo:scroll的那个元素。
1.滚动到的位置确定:
const parent = document.querySelector(`.parent`)
//scrollTo可以直接传入滚动的X,Y值,也可以传入一个对象
//直接传值
parent.scrollTo(0,100)
//传入对象的方式,这种方式可以控制滚动的速度
parent.scrollTo({
top: 100 ,
这里有一个方法可以将DIV的滚动条滚动到其子元素所在的位置,方便自动定位。 代码如下: var container = $(‘div’), scrollTo = $(‘#row_8’); container.scrollTop( scrollTo.offset().top – container.offset().top + container.scrollTop() ); // Or you can animate the scrolling: container.animate({ scrollTop: scrollTo.offset().top – container.offset()
首先说明: 由于scrollTop属于js属性,因此无法通过css的transition和animation制作scrollTop变化时的过渡动画(本人亲自尝试过,确实如其他博友所说的无效)
因此,需要(自己实现也可以)在项目中引入一些工具类帮助实现功能,我选择了jquery,用法如下:
let Slog = document.querySelector(".Slog");
$("ht...
scrollTo有两种语法:
1.scrollTo(x,y) //指定滚动到x轴和y轴的位置
2.scrollTo(options) //options有三个参数,(left,top,behavior ),
top 等同于 y-coord
left 等同于 x-coord
behavior 类型String,表示滚动行为,支持参数 smooth(平滑滚动),instant(瞬间滚动),...
const scrollToTop = () => {
const t = document.documentElement.scrollTop || document.body.scrollTop
if (t > 0) {
window.requestAnimationFrame(scrollToTop)
window.scrollTo(0, t - t / 8)
co...
behavior 类型String,表示滚动行为,支持参数 smooth(平滑滚动),instant(瞬间滚动),默认值auto(等同于instant)我一开始考虑使用动画,后来一想如果使用动画,滚动时间就固定了,就会造成滚动忽快忽慢的情况。项目有页面右下角有个返回按钮,点击则滚动到顶部。这里希望平滑滚动到顶部,故而使用smooth参数。所以有没有办法让页面平滑滚动到顶部呢?left 等同于 x-coord。top 等同于 y-coord。
VueScrollTo是一个基于Vue的平滑滚动插件,实现网页中元素点击后平滑滚动到目标位置的效果。在很多情况下,我们需要在网页中使用锚点链接,但是默认的锚点跳转方式可能会出现跳动或者瞬间跳转的情况,使用VueScrollTo可以避免这些问题。接下来将从以下几个方面详细介绍VueScrollTo的使用方法。
4.返回顶部的动画不能采用$(doucument).animate()因为只有元素能添加动画,只能采用$('body,html').animate({scrollTop0})2.页面滚动事件$(window).scroll(function(){})3.元素的淡入和淡出采用fadeIn()和fadeOut()方法。1.得到元素距离页面顶部的距离采用scrollTop()方法。最后需要实现点击返回顶部返回到刚开始的状态。...