JavaScriptはトップに戻る効果を実現します

先頭に戻る効果は、次のように element.scrollTop メソッドを通じて実現できます。

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
      
      
            padding: 0;
            margin: 0;
        }

        #header {
      
      
            width: 100%;
            height: 200px;
            background-color: pink;
            position: fixed;
            top: -200px;
            transition: top 0.5s;
        }

        #btn {
      
      
            width: 100px;
            height: 100px;
            background-color: aquamarine;
            position: fixed;
            right: 50px;
            bottom: 50px;
            display: none;
        }
    </style>
</head>

<body>
    <div id="header">顶部</div>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>10</li>
        <li>11</li>
        <li>12</li>
        <li>13</li>
        <li>14</li>
        <li>15</li>
        <li>16</li>
        <li>17</li>
        <li>18</li>
        <li>19</li>
        <li>20</li>
        <li>21</li>
        <li>22</li>
        <li>23</li>
        <li>24</li>
        <li>25</li>
        <li>26</li>
        <li>27</li>
        <li>28</li>
        <li>29</li>
        <li>30</li>
        <li>31</li>
        <li>32</li>
        <li>33</li>
        <li>34</li>
        <li>35</li>
        <li>36</li>
        <li>37</li>
        <li>38</li>
        <li>39</li>
        <li>40</li>
        <li>41</li>
        <li>42</li>
        <li>43</li>
        <li>44</li>
        <li>45</li>
        <li>46</li>
        <li>47</li>
        <li>48</li>
        <li>49</li>
        <li>50</li>
        <li>51</li>
        <li>52</li>
        <li>53</li>
        <li>54</li>
        <li>55</li>
        <li>56</li>
        <li>57</li>
        <li>58</li>
        <li>59</li>
        <li>60</li>
        <li>61</li>
        <li>62</li>
        <li>63</li>
        <li>64</li>
        <li>65</li>
        <li>66</li>
        <li>67</li>
        <li>68</li>
        <li>69</li>
        <li>70</li>
        <li>71</li>
        <li>72</li>
        <li>73</li>
        <li>74</li>
        <li>75</li>
        <li>76</li>
        <li>77</li>
        <li>78</li>
        <li>79</li>
        <li>80</li>
        <li>81</li>
        <li>82</li>
        <li>83</li>
        <li>84</li>
        <li>85</li>
        <li>86</li>
        <li>87</li>
        <li>88</li>
        <li>89</li>
        <li>90</li>
        <li>91</li>
        <li>92</li>
        <li>93</li>
        <li>94</li>
        <li>95</li>
        <li>96</li>
        <li>97</li>
        <li>98</li>
        <li>99</li>
        <li>100</li>
    </ul>
    <button id="btn">回到顶部</button>
    <script>

   //1. 当页面滚动的距离大于 300 的时候 让 herder 和 btn 展示
   //header 的 top 设置 为 0 的时候就能看到
   //btn 的 display 设置为 block 的时候就能看到
   //2. 当页面滚动的距离 小于 300 的时候 让 header 和 btn 取消展示
   //header 的 top 设置 为 -200px 的时候就看不到
   //btn 的 display 设置为 none 的时候就能看到

// 0. 获取元素
        var header = document.getElementById('header')
        var btn = document.querySelector('#btn')
// 1. 监听页面的滚动距离, 从决定 页面的header 和 btn 是否展示
        window.onscroll = function () {
      
      
            if (document.documentElement.scrollTop >= 300) {
      
      
                // 此时 让 header 和 btn 展示
                header.style.top = 0
                btn.style.display = 'block'
            } else {
      
      
                // 此时 让 header 和 btn 不展示
                header.style.top = -200 + 'px'
                btn.style.display = 'none'
            }
        }

//2. 监听 btn 按钮 的点击事件, 点击的时候 让页面回滚到 scrollTop === 0   元素.onclick = function () {}

        btn.onclick = function () {
      
      

            document.documentElement.scrollTop = 0  //点击触发scrollTop = 0 ,也就是回到顶部
        }
    </script>
</body>

おすすめ

転載: blog.csdn.net/weixin_48649246/article/details/127639797