js 定位到某个锚点的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 定位到某个锚点的方法相关的知识,希望对你有一定的参考价值。

参考技术A html页面内可以设置锚点,锚点定义
Html代码
<a
name="firstAnchor">&nsbp;</a>
锚点使用
Html代码
<a
href="#firstAnchor">跳至第一个锚点</a>
但对于js呢,在js中如何在完成一个操作后跳至页面的某个固定锚点呢
js中location.href可以跳转至某个url;
跳至(定位到)某个固定锚点的办法
1、location.href
=
"#firstAnchor";
//
firstAnchor为锚点名称
2、window.location.hash
=
"#firstAnchor";
//
firstAnchor为锚点名称
经测试:hash只会在跳转到此页面的第一次起作用,再次刷新此页面将不起作用,而href始终起作用
以上这篇js
定位到某个锚点的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

Unity中锚点的动态设置

问题背景

在做签到系统时,需求给的效果图如下

 

技术图片

效果图像这样,中间是模型,周围其他是签到框这样的布局,我想动态生成各个动态框,涉及到一个定位问题,锚点的设置(动态去设置每个item的位置)

实现方法

SetInsetAndSizeFromParentEdge();

此方法属于RectTransform里面得函数,(如果想更多了解RectTransform的话前面我有分析,https://www.cnblogs.com/answer-yj/p/10623304.html),这个函数有三个参数,第一个参数RectTransform.Edge.Left,是指左边的边界,第三个参数是图片的尺寸(有些地方说这是长度,但是我觉得有可能长有可能宽,需要看RectTransform.Edge的值),第二个参数是离边界的距离。注意第三个参数,这是图片尺寸,以第一个参数决定是图片的哪个尺寸

实现代码

        for (int i = 1; i < 8; i++)
        {
            GameObject go = Instantiate(Resources.Load<GameObject>("Prefab"));
            go.transform.SetParent(GameObject.Find("GameObject").transform);
            go.transform.localPosition = Vector3.zero;
            RectTransform rectTransform = go.GetComponent<RectTransform>();
            switch (i)
            {
                case 1:
                    rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 0, 207);
                    rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, 0, 209);
                    break;
                case 2:
                    rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 0, 207);
                    rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, 0, 209);
                    break;
                case 3:
                    rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, 0, 209);
                    break;
                case 4:
                    rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, 0, 209);
                    break;
                case 5:
                    rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, 0, 207);
                    rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, 0, 209);
                    break;
                case 6:
                    rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, 0, 207);
                    break;
                case 7:
                    rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, 0, 207);
                    rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, 0, 209);
                    break;
            }
        }

就这样实现了所需布局。

(新手上路,欢迎指正)

 

以上是关于js 定位到某个锚点的方法的主要内容,如果未能解决你的问题,请参考以下文章

锚点定位不准确,怎么解决。

Unity中锚点的动态设置

vue2.0中怎么做锚点定位

JS——锚点的运用

jquery 在页面上根据ID定位(jQuery锚点跳转及相关操作) 经典

jquery 在页面上根据ID定位(jQuery锚点跳转及相关操作) 经典