scroll系列

1.scroll(卷页)系列

  1. scrollWidth:元素中内容的实际的宽(包括padding,没有border),如果没有内容就是元素的宽(width+padding)
  2. scrollHeight:元素中内容的实际的高(包括padding,没有border),如果没有内容就是元素的高(height+padding)
  3. scrollLeft:向上卷曲出去的距离
  4. scrollTop:向左卷曲出去的距离

scrollWidth/scrollHeight:

如果元素没有内容,或者内容没有超过元素本身的宽高,那么获取的都是元素本身的宽高

<div id="div1">你好</div>或<div id="div1"></div>:(元素本身的宽高)

<div id="div1">你好你好你好你好你好你好</div>:(元素内容的宽高)

scrollLeft/scrollTop:

2.封装getScroll函数

//获取页面向上或者向左卷曲出去的距离的值
    function getScroll() {
        return {
            //向左
            left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,
            //向上
            top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
        };
    }

2.1 固定导航栏案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .main {
            margin: 0 auto;
            margin-top: 10px;
            width: 1000px;
        }

        .fixed {
            position: fixed;
            top: 0;
            left: 0;
        }
    </style>
</head>
<body>
<div class="top" id="topPart">
    <img src="images/top.png" alt=""/>
</div>
<div class="nav" id="navBar">
    <img src="images/nav.png" alt=""/>
</div>
<div class="main" id="mainPart">
    <img src="images/main.png" alt=""/>
</div>
<script>
    function my$(id) {
        return document.getElementById(id);
    }

    //  function getScroll() {
    //    var obj={};
    //    var top1=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;
    //    var left=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft|| 0;
    //    obj.left=left;
    //    obj.top=top1;
    //    return obj;
    //
    //  }

    //  function getScroll() {
    //    var obj={};
    //    obj.left=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft|| 0;
    //    obj.top=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;
    //    return obj;
    //
    //  }


    //  function getScroll() {
    //    var obj = {
    //      left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft|| 0,
    //      top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
    //  };
    //    return obj;
    //
    //  }

    //获取页面向上或者向左卷曲出去的距离的值
    function getScroll() {
        return {
            //向左
            left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,
            //向上
            top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
        };
    }

    //浏览器滚动事件
    window.onscroll = function () {
        //判断向上卷曲出去的距离和id="topPart"的div的高度对比
        if (getScroll().top >= my$("topPart").offsetHeight) {
            my$("navBar").className = "nav fixed";
            //navBar此时脱离了文档流,为了使mainPart还保持在原位
            my$("mainPart").style.marginTop = my$("topPart").offsetHeight + "px";
        } else {
            my$("navBar").className="nav";
            my$("mainPart").style.marginTop="10px";
        }
    };
</script>
</body>
</html>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity中的ScrollView是一种滚动视图组件,用于显示超出显示区域的内容。它包含Viewport、Content和Scrollbar等子对象。Viewport是显示窗口,用于限制Content的显示范围。Content是实际显示的内容,可以是一个Panel或者其他UI元素。Scrollbar是滚动条,可以用于控制Content的滚动。 要在Unity中创建一个ScrollView,可以在Hierarchy视图中选择"Create->UI->ScrollView"。创建完成后,可以在ScrollView的层级结构中找到Viewport、Content和Scrollbar等子对象。 如果需要判断ScrollView是否被拖动,以及是否滚动到顶部或尾部,可以使用以下代码: ```csharp using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ScrollViewTest : MonoBehaviour { private ScrollRect m_ScrollView; void Start() { m_ScrollView = GameObject.Find("Scroll View").GetComponent<ScrollRect>(); m_ScrollView.onValueChanged.AddListener(ScrollValueChange); } private void ScrollValueChange(Vector2 ve2) { Debug.Log("正在拖动滚动框"); if (ve2 == new Vector2(1,1)) { Debug.Log("滚动框在顶部"); } if (ve2 == new Vector2(0,0)) { Debug.Log("滚动框在尾部"); } } } ``` 这段代码中,我们获取了名为"Scroll View"的ScrollView组件,并监听了它的onValueChanged事件。当ScrollView被拖动时,会调用ScrollValueChange方法。在ScrollValueChange方法中,我们可以根据传入的Vector2值来判断ScrollView是否滚动到顶部或尾部,然后进行相应的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【Unity3D-UGUI系列】(十二)ScrollView 滚动视图组件详解](https://blog.csdn.net/q764424567/article/details/120002172)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值