vue中监听滚动的方法其实可以用:

// Chrome
document.body.scrollTop
// Firefox
document.documentElement.scrollTop
// Safari
window.pageYOffset

:scrollTop(滚动之根本),document.body.scrollTop的值来实现滚动,但是后来逐渐发现很邪门,

有时给其赋值并没有作用,就是不能监听滚动后来知道

  mounted() {
this.$nextTick(function() {
let _this = this;
window.addEventListener("scroll", this.onScroll);
});
},

用window.addEventListener 来监听页面的滚动 ,然后在结合(如果没有啥特殊的效果推荐用)

直接用 <a href="#id"> 是最简单粗暴的办法

最后不甘心用这个 href 然后就用了 ref 这个属性来获取;

 mounted() {
this.$nextTick(function() {
let _this = this;
_this.$refs.app.scrollTop = ;
_this.height = _this.$refs.app.offsetHeight;
_this.$refs.app.addEventListener("scroll", _this.onScroll, true);
//window.addEventListener("scroll", this.onScroll);
});
},

然后在div

   <a href="javascript:;"  data-num="1" :class="num==1?'selected':'unselected'" @click="changeTab(1)">活动规则</a>
<a href="javascript:;" data-num="2" :class="num==2?'selected':'unselected'" @click="changeTab(2)">活动介绍</a>
 changeTab(num) {
const vm = this;
let otherTop = vm.$refs.other.offsetTop;
vm.num = num;
let scrollTop = 0;
switch (num) {
case 1:
vm.position = false;
scrollTop = 0;
break;
case 2:
vm.position = true;
scrollTop = vm.headerH;
break;
case 3:
vm.position = true;
scrollTop = otherTop;
break;
}
console.log(scrollTop);
setTimeout(() => {
vm.$refs.app.scrollTop = scrollTop;
}, 100);
},

如果 你就得这样不够平滑,可以 用每一小段一小段的跳,这样会导致视觉上是一个平滑的效果,

而不是我点击了就突然scrollTop就突然下去或者上来,避免了很突兀的感觉。

//    平滑滚动,时长500ms,每10ms一跳,共50跳
let step = total / 50 >> 0

这样 就可以实现 锚点 和监听滚动了 ,当然你可以在页面跳转走后销毁 ,这样体验更好

destroyed() {
window.removeEventListener("scroll", this.onScroll);
}

vue2.0 监听滚动 锚点定位的更多相关文章

  1. Vue 爬坑之路(七)—— 监听滚动事件 实现动态锚点

    前几天做项目的时候,需要实现一个动态锚点的效果 如果是传统项目,这个效果就非常简单.但是放到 Vue 中,就有两大难题: 1. 在没有 jQuery 的 animate() 方法的情况下,如何实现平滑 ...

  2. vue监听滚动事件

    vue中监听滚动事件,然后对其进行事件处理,一般有:1. 滚动到顶部吸附: 2. 根据滚动的位置激活对应的tab键(锚链接tab键) 这两种方式的处理都是可通过监听scroll来实现 mounted( ...

  3. vue监听滚动事件-元素固定位置显示

    1.监听滚动事件 用VUE写一个在控制台打印当前的scrollTop用来测试是否执行: mounted () { window.addEventListener('scroll', this.hand ...

  4. jquery 监听所有锚点链接实现平滑移动

    jquery 监听所有锚点链接实现平滑移动,地址栏上不会改变链接地址 //监听所有锚点链接实现平滑移动 $('a[href*=#],area[href*=#]').click(function() { ...

  5. vue监听滚动事件,实现滚动监听

    在vue中实现滚动监听和原生js无太大差异,下面是一个简单的demo,可在控制台查看结果 <!DOCTYPE html> <html lang="en"> ...

  6. vue监听滚动事件 实现某元素吸顶或者固定位置显示

    https://blog.csdn.net/wang1006008051/article/details/78003974 1.监听滚动事件 利用VUE写一个在控制台打印当前的scrollTop, 首 ...

  7. Linux5355端口被0.0.0.0监听

    Linux后台有个systemd-resolv进程,占用5355等端口 博主在一次网络安全加固行动中,netstat -anp发现Linux后台有一个被0.0.0.0监听的端口,5355,显示被sys ...

  8. vue2.0 添加监听滚动事件

    export default { data () { return { isFixed: true } }, mounted () { window.addEventListener('scroll' ...

  9. VUE 实现监听滚动事件,实现数据懒加载

    methods: { // 获取滚动条当前的位置 getScrollTop() { let scrollTop = 0 if (document.documentElement && ...

随机推荐

  1. django 生成后台管理

    在应用下的admin.py中注册模型类.告诉djang框架根据注册的模型类来生成对应表管理页面. 1) 注册管理数据表 from django.contrib import admin from us ...

  2. Tensorflow Lite tflite模型的生成与导入

    假如想要在ARM板上用tensorflow lite,那么意味着必须要把PC上的模型生成tflite文件,然后在ARM上导入这个tflite文件,通过解析这个文件来进行计算. 根据前面所说,tenso ...

  3. The window object

    At the core of the BOM is the window object, which represents an instance of the browser. The window ...

  4. win server2012r2上发布网站常见错误 "HTTP 错误 500.19 请求的页面的相关配置数据无效" 解决办法

    HTTP 错误 500.19 - Internal Server Error无法访问请求的页面,因为该页的相关配置数据无效. 问题“详细错误信息模块 IIS Web Core通知 BeginReque ...

  5. cocos2dx[3.2](2) 3.x巨变

    [v3.0 亮点]     > 使用 C++(C++11) 的特性取代了 Objective-C 的特性     > 优化了 Labels     > 优化了渲染器(比 v2.2 更 ...

  6. squid的三种模式

    一.squid代理服务器概述: 概述:Squid Cache(简称为Squid)是http代理服务器软件.Squid用途广泛,可以作为缓存服务器也可以作为缓存代理服务器,代理用户向web服务器请求数据 ...

  7. linxu passwd 给linux用户设置密码 命令

    [root@localhost ~]# passwd # 修改 root 用户的密码 passwd 给linux用户设置密码 命令 passwd www 直接passwd是当前用户设置密码 非交互式修 ...

  8. 2019JAVA第十次实验报告

    Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.11.15 评分等级 实验代码 package Domon9; import java.awt.Font; ...

  9. eclipse中svn的使用

    1.在eclipse中添加SVN插件或者说直接利用eclipse软件中的help-install项进行网站在线下载也可 2.安装好SVN之后, 2.1.从SVN检出项目到本地 右击鼠标-选import ...

  10. cell_phone_network(树形dp求最小支配集)

    Cell Phone Network Farmer John has decided to give each of his cows a cell phone in hopes to encoura ...