<
a
href
=
"
#div2
"
>
div2
</
a
>
<
a
href
=
"
#div3
"
>
div3
</
a
>
<
div
id
=
"
div1
"
style
="
heigth
:
200px
"
>
这里是div1
</
div
>
<
div
id
=
"
div2
"
style
="
heigth
:
200px
"
>
这里是div2
</
div
>
<
div
id
=
"
div3
"
style
="
heigth
:
200px
"
>
这里是div3
</
div
>
</
div
>
2、使用Window.scrollTo()
用法
window.scrollTo(x-coord,y-coord )
window.scrollTo(options)
参数说明
x-coord 是文档中的横轴坐标。
y-coord 是文档中的纵轴坐标。
options 是一个包含三个属性的对象:
top 等同于 y-coord
left 等同于 x-coord
behavior 类型String,表示滚动行为,参数 smooth(平滑滚动),instant(瞬间滚动),默认值auto
代码(proxy.$nextTick 是vue3中的写法)
<
p
onClick
=
"
onScroll()
"
>
div1
</
p
>
<
p
onClick
=
"
onScroll()
"
>
div2
</
p
>
<
p
onClick
=
"
onScroll()
"
>
div3
</
p
>
<
div
id
=
"
div1
"
style
="
heigth
:
200px
"
>
这里是div1
</
div
>
<
div
id
=
"
div2
"
style
="
heigth
:
200px
"
>
这里是div2
</
div
>
<
div
id
=
"
div3
"
style
="
heigth
:
200px
"
>
这里是div3
</
div
>
</
div
>
<
script
>
var
onScroll
=
function
(
)
{
var
el
=
document
.
getElementById
(
`label
${
num
}
`
)
if
(
!
el
)
{
return
window
.
scrollTo
(
{
'behavior'
:
'smooth'
,
'top'
:
el
.
offsetTop
}
)
</
script
>
在vue中也一样,只需要注意一下DOM加载完成后,有钩子this.$nextTick。
<p v-for="(word,index) in wordsArr"
:key="index"
@click="selectQuestion(word.value)">{{word.label}}
<div v-for="(word,index) in wordsArr"
:key="index"
:id="'label'+word.id"
@click="selectQuestion(word.value)">{{word.label}}
</div>
<script>
const selectQuestion = (id) => {
var el = document.getElementById(`label${id}`)
if (!el) {
return
this.$nextTick(function () {
window.scrollTo({ 'behavior': 'smooth', 'top': offsetTop })
</script>
1、使用a标签跳转到锚点。<div> <a href="#div1">div1</a> <a href="#div2">div2</a> <a href="#div3">div3</a> <div id="div1" style="heigth:200px">这里是div1</div> <div id="div2" style="heigth:200px">
[data-scroll-to-this] 将此属性添加到将滚动到的元素
[data-scroll-to-this="onload"] 页面加载时滚动到该元素
[data-scroll-to-this="onclick"] 当属性设置为 [data-scroll-to-this-target] 的元素被点击时滚动到这个元素
[data-scroll-to-this="onhash"] 当属性 [data-scroll-to-this-hash] 中设置的哈希值是 [removed].hash 时滚动到此元素
[data-scroll-to-offset] 以像素为单位设置滚动的偏移量
在页面加载时
<div data-scroll-to-this="onload" data-scroll-to
原文:http://www.jb51.net/article/96574.htm
这篇文章主要介绍了JS控制div跳转到指定的位置的几种解决方案总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。
总结一下自己在写这个需求遇到的问题,相信大家应该是经常遇到的。即要求滚轮滚动到指定的位置。先看下基本的解决方案。
1.给链接a加个#的方式来实现跳转。(锚点方法)这里直接贴下代码:
1.4 KB的原始JavaScript。 没有依赖关系。
Zenscroll是一个普通JavaScript库,可通过动画垂直滚动到文档中或可滚动元素(DIV等)中的元素或位置。 它还可以自动平滑同一页面中的所有滚动。
平滑的动画垂直滚动。
自动平滑滚动同一页面内的链接,包括后退和前进导航(Chrome,Firefox,Opera,Safari技术预览)。
滚动到特定元素的顶部。
将元素滚动到视图中,并确保顶部和底部均可见(如果可能)。
滚动到一个元素,然后将其放在屏幕中央。
指定元素和屏幕边缘之间的间距(例如,用于固定的导航栏和页脚)。
自定义单个滚动操作的持续时间。
滚动完成后的回调。
如果启用了新浏览器的内置平滑行为,则可以使用它。
最小化和压
有时候可能为了简便或者其他原因,我们用某个div放了一长串内容,想要保证内容可以滚动,但是也会有其他情况,比如需要从别的界面进入该div的时候到指定位置,那么可以采用以下方式:
<div id="test_div">
内容内容内容
</div>
var test_div = document.getElementById("test_div");
test_div.scrollLeft = screen.width; //screen.width就是要移动的像素
//d1是外层div,带滚动条
<div id='d1' style='height:200px;width:100px;overflow:auto;background:blue;'>
<div style='height:500px;width:500px;background:yellow'>2222</div>
</div>
</body>
<script>
document
对于网页编程开发人员来说,在网站页面开发的过程中,有时候我们需要实现当点击一个按钮或者超链接时,立刻滚动跳转定位到本页面中指定的位置。对于大多数的编程老手来说,这些都不是什么难事,但对于一些新手或者没有深入学习编程开发的人来说,可能不知道如何去实现,在这里就和大家分享一下html js点击按钮滚动跳转定位到页面指定位置(DIV)的方法代码。
这里主要分为两种情况,分别是点击锚点实现跳转和点击button按钮实现跳转页面,下面就分别探讨一下两种方式的具体实现代码。
一:通过html锚点实现滚动定位到页面指定位
jQuery引用方法
<script src="//cdn.
jsdelivr.net/npm/jquery.scrollto@2.1.2/jquery.scrollTo.min.
js"></script>
<
div id="test">
</
div>
<script>
function scrollTo () {
$(window).scrollTo($("#test"),500);
获取
页面某一
元素的绝对X,Y坐标
varX = $('#ElementID').offset().top;
varY = $('#ElementID').offset().left;
获取相对(父
元素)位置:
varX = $('#ElementID').position().top;
varY = $('#ElementID').position().left;
Vue可以通过`window.scrollTo`方法来滚动到页面的指定位置,并且可以通过CSS的`transition`属性来实现滚动效果。
首先,在事件触发时调用`window.scrollTo`方法,传入需要滚动到的位置。例如:
```javascript
scrollToPosition() {
window.scrollTo({
top: 500, // 需要滚动到的位置
behavior: 'smooth' // 滚动效果,设置为'smooth'表示有滚动效果
接着,在模板中绑定一个按钮或者其他触发事件,调用`scrollToPosition`方法:
```html
<template>
<button @click="scrollToPosition">滚动到指定位置</button>
</div>
</template>
这样,当按钮被点击时,页面会平滑地滚动到指定位置500。
为了实现滚动效果,还需要为滚动的元素添加CSS样式。在需要滚动的元素的样式中,添加`transition`属性来控制滚动效果的持续时间和缓冲函数。例如:
```css
.scrollable-element {
transition: top 0.5s ease-in-out; // 控制滚动效果的持续时间和缓冲函数
然后,在滚动到指定位置的方法中,使用Vue的`ref`属性来获取需要滚动的元素,并通过改变其`scrollTop`来触发滚动效果,例如:
```javascript
scrollToPosition() {
const element = this.$refs.scrollableElement;
element.scrollTo({
top: 500,
behavior: 'smooth'
最后,在模板中使用`ref`属性为需要滚动的元素指定一个引用名称:
```html
<template>
<div ref="scrollableElement" class="scrollable-element">需要滚动的内容</div>
<button @click="scrollToPosition">滚动到指定位置</button>
</div>
</template>
这样,当按钮被点击时,`scrollable-element`元素会平滑地滚动到指定位置500,并且具有滚动效果。