vue控制滚动条滑到某个位置

news2025/2/24 4:55:11

一.关于web开发的各种高度的计算介绍

设置当前滑动到的距离

语法一:window.scrollTop(x,y)  传俩个值
//x横坐标 y纵坐标

例:window.scrollTop(0,1000)

语法二:window.scrollTop(options) 传对象,对象里面放属性

  window.scrollTo({
           top:560,
          left:0,
          behavior: "smooth"
        });


// top:纵坐标   left:横坐标

behavior  类型String,表示滚动行为,支持参数 smooth(平滑滚动),instant(瞬间滚动),默认值auto,实测效果等同于instant

    // 获取html元素
    let htmlDom = document.documentElement;
    // 获取页面高度加内边距
    const deviceHeight = htmlDom.clientHeight;
    //获取当前滚动条的高度
    const scrollHeight=htmlDom.scrollHeight;
    //获取页面高度加内边距加边框
    const offsetHeight=htmlDom.offsetHeight;
    console.log("html--------",htmlDom.offsetHeight);
    console.log("deviceHeight",deviceHeight);
    console.log("scrollHeight",htmlDom.scrollHeight);
    //我的业务里面只用到了这个scrollHeight
    let keepHeight=htmlDom.scrollHeight-90;
    // 如果需要设置某个元素的样式等用ref进行一个绑定 这个例子ref绑定的就是list
    // this.$refs.list.style.height = htmlDom.scrollHeight +"px"
    window.scrollTo({
      top: keepHeight,
      behavior: 'instant'
    })

配个官方图理解:

二.回到页面顶部实现方法

 1.  元素中绑定ref 

 <div ref="returnTop"></div>

  在需要回到顶部的地方加上此代码

   this.$nextTick(() => {
        this.$refs.returnTop.scrollTop = 0
      })

2.   浏览器回到页面顶部 window.scrollTo(0,0),页面滚动

不用多介绍了,上面有。

一个小例子如下:

window.scrollTo( 0, 100 );
 
// 设置滚动行为改为平滑的滚动
window.scrollTo({
    top: 1000,
    behavior: "smooth"
});

3.使用el-pagination实现翻页自动回到顶部

定义$scrollTo方法挂载在vue全局

// main.js
Vue.prototype.$scrollTo = (x = 0, y = 0, type = 'smooth') => {
    window.scrollTo({
        top: x,
        left: y,
        behavior: type // 滚动行为:smooth平滑滚动,instant瞬间滚动,默认值auto,等同于instant
    })
}
// 使用方法
this.$scrollTo()

三.总计一下今天学到的新知识

(1)watch监听属性变化函数

   监听属性的两种写法:

isHot:{
	// immediate:true, //初始化时让handler调用一下
	//handler什么时候调用?当isHot发生改变时。
    //deep:true, //开启深度监视,当属性是个对象时,如需监听对象的属性,需开启深度监视
	  handler(newValue,oldValue){
	console.log('isHot被修改了',newValue,oldValue)
	}
},

//简写
/* isHot(newValue,oldValue){
	console.log('isHot被修改了',newValue,oldValue,this)
} */

watch监听函数实现compted函数相同功能

			data:{
				firstName:'张',
				lastName:'三',
				fullName:'张-三'
			},
			watch:{
				firstName(val){
                   //监听函数可以实现异步方法
					setTimeout(()=>{
						console.log(this)
						this.fullName = val + '-' + this.lastName
					},1000);
				},
				lastName(val){
					this.fullName = this.firstName + '-' + val
				}
			}

 (2)computed和watch之间的区别:

1.computed能完成的功能,watch都可以完成。

2.watch能完成的功能,computed不一定能完成,例如:watch可以进行异步操作。

但是computed进行计算某些值得时候,可以少写一个属性。例如:fullName

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/405840.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js遍历map(js遍历map对象)

javascript怎么遍历map var map new HashMap();map.put(a,1);map.put(b,2);遍历&#xff1a;var key map.keySet();for (var i in key){ alert(map.get(key[i]));&#xff5d;注&#xff1a;js 中使用map&#xff0c;要先导入一个HashMap.js文件 没要求&#xff0c;引入这个文…

【深入浅出imx8企业级开发实战 | 04】嵌入式Linux设备掉电数据容错研究

这是机器未来的第58篇文章 原文首发地址:https://robotsfutures.blog.csdn.net/article/details/126924015 《深入浅出i.MX8企业级开发实战》快速导航 【01】imx8qxp yocto工程构建指南 【02】Yocto工程repo源码gitee加速配置方法 【03】imx8qxp一键独立编译指南 【04】嵌入式…

三分钟创建一个新应用,ivx的神奇之处【PPT式程序开发】

像做PPT一样的可视化编程语言你想拥有吗&#xff0c;可以自己尝试一下。像PPT一样的编程语言 文章目录&#x1f353;&#x1f353;用ivx创建一个新的应用&#xff08;零基础&#xff09;&#x1f680;&#x1f680;&#x1f96d;&#x1f96d;点击链接&#xff0c;跳转到官网&a…

【Vue 路由(vue—router)二】路由传参(params的类型 、Query参数的类型、路由name)

目录 前言 一、路由传参 效果展示 1.params的类型 &#xff08;后附源码&#xff09; params的类型源码不要在意注释代码 2.​​​​​​query参数的类型&#xff08;后附源码&#xff09; query参数的类型源码同样无视注释代码 3.路由name 前言 此内容为连载&#xff0c…

一文搞懂JS-Web-API——DOM

&#x1f308;本系列文章是博主精心整理的面试热点问题&#xff0c;吸收了大量的技术博客与面试文章&#xff0c;总结多年的面试经历&#xff0c;带你快速建立前端面试知识体系。抓住每一场面试的机会&#xff0c;知己知彼才能百战百胜。直击技术痛点&#xff0c;主动出击&…

Pinia 数据持久化储存(pinia-plugin-persistedstate)

pinia需要使用pinia-plugin-persistedstate插件来进行数据的存储 插件官网地址&#xff1a; https://prazdevs.github.io/pinia-plugin-persistedstate/guide/config.html 1、安装 这里对插件的安装就不多赘述了&#xff0c;放两张官网的截图 使用命令&#xff1a;npm i pi…

Vue--》计算属性与监视(侦听)属性的使用

目录 计算属性(computed) 监视属性(watch) 监视的两种方法 immediate选项 深度监视 计算属性(computed) 计算属性指的是通过一系列运算之后&#xff0c;最终得到一个值。这个动态计算出来的属性值可以被模板结构或methods方法使用&#xff0c;案例如下&#xff1a; <…

前端实战|React18极客园——登陆模块(token持久化、路由拦截、mobx、封装axios)

欢迎来到我的博客 &#x1f4d4;博主是一名大学在读本科生&#xff0c;主要学习方向是前端。 &#x1f36d;目前已经更新了【Vue】、【React–从基础到实战】、【TypeScript】等等系列专栏 &#x1f6e0;目前正在学习的是&#x1f525;React框架React框架React框架&#x1f525…

vite搭建vue2项目

问题提出 最近在做一个练习的小项目&#xff0c;由于要配合组成员的其它成员来搭建项目&#xff0c;大多掌握的技术栈都在vue2&#xff0c;用惯了vite来搭建&#xff08;vite真香~&#xff09;,就想着来搭建一个vue2的项目。原本以为查下百度很快可以搭好&#xff0c;没想到折…

【小程序从0到1】WXSS模版语法汇总

欢迎来到我的博客 &#x1f4d4;博主是一名大学在读本科生&#xff0c;主要学习方向是前端。 &#x1f36d;目前已经更新了【Vue】、【React–从基础到实战】、【TypeScript】等等系列专栏 &#x1f6e0;目前正在学习的是&#x1f525;React/小程序React/小程序React/小程序&am…

微前端vue项目实战 -- 乾坤qiankun框架 (一)

背景&#xff1a; 公司研发的项目主要是 GIS地图为基础的管理系统&#xff0c;由主体项目&#xff08;管理业务模块&#xff09; GIS地图应用&#xff0c;由于 GIS地图应用模块 会在多个地方使用&#xff0c;所以单独构建一个项目&#xff0c;分别在不同的业务场景中引用、交互…

JavaScript鼠标移动事件及案例

一、鼠标点击事件 1.onclick单击事件 鼠标单击时事件处理函数 <input type"button" id"bt" value"点击"> <script> //找到按钮并设置点击事件 document.getElementById("bt").onclick function (){ //被点击…

kkFileView部署及使用

Windows:kkFileView部署及使用前言部署Web引用普通webVue &#xff1a;需要引入base64.js前言 kkFileView支持主流文档的在线预览服务。官网地址 部署 kkFileView不需要集成&#xff0c;只需要部署到服务器即可。 从 Gitee 上下载最新的压缩包&#xff0c;或者从代码仓库中下…

【Vue+element-ui搭建前端页面】适用于初学者学习

作者有话说&#xff1a; 学习编程我们必不可少的就是做项目&#xff0c;在学习后端的同时&#xff0c;前端知识也是要学习滴&#xff0c;这篇文章将展示如何利用Vue和element-ui搭建前端界面。话不多说&#xff0c;进入主题&#xff01;&#xff01;&#xff01; 目录 首先是…

网页报错“Form elements must have labels”的处理

网页报错“Form elements must have labels”的处理 先给出错误现象源码&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"utf-8" /><meta name"viewport" content"widthdevice-width&quo…

uniapp中单选按钮的实现

标签说明&#xff1a; radio-group&#xff1a;单项选择器&#xff0c;内部由多个 <radio> 组成。通过把多个radio包裹在一个radio-group下&#xff0c;实现这些radio的单选。 radio&#xff1a;单选项目 属性说明&#xff1a; change&#xff1a;<radio-group>…

Vue中使用element-ui 给按钮绑定一个单击事件,实现点击按钮就弹出一个dialog对话框

1.需求描述 想要实现点击一个按钮就弹出一个对话框&#xff0c;在对话框中可输入数据进行提交&#xff0c;在点击取消时对话框关闭 2.功能实现 1.创建按钮 在element中把找到按钮的代码放到div里 <el-row><el-button type"primary" plain>新增</el…

Java支付宝沙箱环境支付,SDK接口远程调试【内网穿透】

文章目录1.测试环境2.本地配置3. 内网穿透3.1 下载安装cpolar内网穿透3.2 创建隧道4. 测试公网访问5. 配置固定二级子域名5.1 保留一个二级子域名5.2 配置二级子域名6. 使用固定二级子域名进行访问1.测试环境 MavenSpring bootJdk 1.8 2.本地配置 获取支付宝支付Java SDK,ma…

Vue--》过滤器介绍及其使用方法

目录 过滤器 过滤器的兼容性 私有过滤器和全局过滤器 过滤器的连续调用 过滤器进行传参 过滤器 过滤器的兼容性 注意&#xff1a;Vue3中明确取消了过滤器这个功能&#xff0c;如果想使用只能在Vue2中进行&#xff0c;如果所做的项目是Vue2的话&#xff0c;可以了解一下这…

uni-app开发微信小程序,H5 关于压缩上传图片的问题

文章目录 前言 一、为什么要压缩图片 二、图片压缩方式 1. 微信小程序​​​​​​​ 2. H5 总结 前言 关于微信小程序、H5兼容性问题&#xff0c;今天就压缩以及上传图片做一个可实现方法的简要阐述。 一、为什么要压缩图片​​​​​​​ 在使用uni-app开发小程序及H…