关闭

Ref实现导航滚动定位

时间: 2020-03-26阅读: 399标签: 定位

摘要

在开发项目中时常有点击跳转滚动到锚点的需求,最简单的锚点定位就是给一个a标签,a标签的href = ‘#锚点’,然后给需要跳转的锚点一个id = ‘锚点’。参考最简单的锚点跳转实现方式,在react中使用useRef来实现跳转锚点的功能。

 

功能具体步骤

1、创建空的Ref  

import React, { useRef } from 'react';

const Layout = () => {
const pageTopRef = useRef(null);
const sectionEventInfoRef = useRef(null);

return (
<div>滚动内容</div>
)
}


2、跳转锚点函数

Element.scrollIntoView() 方法让当前的元素滚动到浏览器窗口的可视区域内。我们可以利用该方法搭配Ref实现跳转锚点的功能,behavior属性可以定义动画过渡效果,跳转锚点时滚动效果平滑些。具体代码代码如下:

// 点击导航按钮,滚动到页面中相对应的区域
const handleClickNavItem = ref => {
setIsWork(false);
if (ref.current) {
ref.current.scrollIntoView({ behavior: "smooth" });
}
}


3、锚点

bind()绑定ref,锚点处在绑定对应跳转ref,简化式代码如下所示:

import React, { useRef } from 'react';
import '../style.scss';

const Layout = () => {
const pageTopRef = useRef(null);
const sectionEventInfoRef = useRef(null);

// 点击导航按钮,滚动到页面中相对应的区域
const handleClickNavItem = ref => {
if (ref.current) {
ref.current.scrollIntoView({ behavior: "smooth" });
}
}

return (
<div className="activity-area">
<div className="actAr-wrapper">
<div className="actAr-tabs">
<button onClick={handleClickNavItem.bind(null, pageTopRef)}>首页</button>
<button onClick={handleClickNavItem.bind(null, sectionEventInfoRef)}>活动详情</button>
<button onClick={openEWorks}>精选作品</button>
</div>
<div className="actAr-content">
<!-- 锚点一 -->
<div ref={pageTopRef}>
回到首页的锚点
</div>
<!-- 锚点二 -->
<div ref={sectionEventInfoRef}>
活动详情的锚点
</div>
</div>
</>
</div>
)
}

export default Layout;

来自:https://www.cnblogs.com/BlueBerryCode/p/12931332.html


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/9140

关闭

css和xpath定位补充

XPath是一种在XML文档中定位元素的语言。因为HTML可以看作XML的一种实现, 所以Selenium用户可以使用这种强大的语言在Web应用中定位元素。

html5获取地理位置和定位

H5地理位置定位功能:首先判断用户浏览器是否支持该功能,目前大多数现代浏览器均支持,获取位置信息需用户授权同意;showPosition()获取用户经度纬度;执行函数getLocation(),如果调用成功即可显示经度纬度,简单吧

浏览器获取手机经纬度位置

网址必须为域名,不能用ip直接访问,否则手机浏览器直接拒绝改请求。iphone的浏览器(包括微信扫码进入网站) ,亲测调用 http 的网站是不能获取到经纬度的,是苹果手机安全的考虑,如果使用https网站的话

css定位 position

定位是一种更加高级的布局手段,通过定位可以将元素摆放到页面的任意位置,使用 position 属性来设置定位

css绝对定位和相对定位、固定定位

绝对定位指的是通过规定HTML元素在水平和垂直方向上的位置来固定元素,基于绝对定位的元素不会占据空间。相对定位与绝对定位的区别在于它的参照点不是左上角的原点,而是该元素本身原先的起点位置。

CSS相对定位和固定定位

一般地,说起定位元素是指position不为static的元素,包括relative、absolute和fixed。前面已经详细介绍过absolute绝对定位的基础和应用,这篇博客介绍和梳理相对定位relative和固定定位fixed的相关知识

CSS定位

改变元素在页面中的位置:页面中元素的默认定位方式,默认文档流,从上往下,从左往右;当元素设置浮动后,该元素脱离默认文档流,后面的元素会上前补位。当前元素会在当前行,向左或者向右排列

前端粘性定位事件

浏览器的世界里本没有粘性定位事件。然而,网页开发中,元素若使用了粘性定位 position:sticky ,常常还需要一个粘性定位事件,比如,外卖菜单。

原生JS实现页面内定位

需求:点击跳转到页面指定位置.利用a标签的锚点跳转。1、利用a标签的锚点跳转,2、用js的scrollIntoView方法,3、获取id为test的元素距离父元素顶部的位置,即offsetTop, 改变父元素的scrollTop

css定位方式有哪几种?

复杂的网页布局都是通过各种网页元素灵活定位实现的,网页中的各种元素定位都有自己的特点。下面我们来看一下css的几种定位方式。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!