返回顶部
首页 > 资讯 > 前端开发 > JavaScript >原生js仿写手机端下拉刷新
  • 258
分享到

原生js仿写手机端下拉刷新

2024-04-02 19:04:59 258人浏览 安东尼
摘要

本文实例为大家分享了js仿写手机端下拉刷新的具体代码,供大家参考,具体内容如下 话不多说先看效果图: 当下拉小于40px时显示文字: 当下拉大于40px时现实文字 松开时显示

本文实例为大家分享了js仿写手机端下拉刷新的具体代码,供大家参考,具体内容如下

话不多说先看效果图:

当下拉小于40px时显示文字:

当下拉大于40px时现实文字

松开时显示文字

实现原理


<div class="content">
        <div class="left"></div>
        <div class="top">
            <p id="p"></p>
            <div id="buttom">
            </div>
        </div>
</div>

CSS


<style>
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    
    .content {
        width: 350px;
        height: 600px;
        position: relative;
        margin: 0 auto;
    }
    
    .top {
        width: 100%;
        height: 100%;
        background-color: #ccc;
        border: 12px solid black;
        border-radius: 10px;
        overflow: hidden;
        margin-top: 50px;
        border-top: 35px solid black;
    }
    
    #buttom {
        width: 100%;
        height: 100%;
        background-color: rgb(47, 196, 47);
        position: relative;
        padding: 10px;
        border-top: 2px solid red;
    }
    
    #p {
        display: inline-block;
        height: 30px;
        width: 100%;
        text-align: center;
        line-height: 30px;
        color: rgb(2, 2, 2);
        font-size: 15px;
        position: absolute;
        top: 40px;
        left: 0;
        display: none;
    }
    
    .left {
        height: 10px;
        width: 100px;
        background-color: #ccc;
        position: absolute;
        top: 12px;
        left: 110px;
        border-radius: 5px;
    }
    
    .left::after {
        display: inline-block;
        content: "";
        width: 15px;
        height: 15px;
        background-color: #ccc;
        border-radius: 50%;
        position: absolute;
        left: 120px;
        top: -2px;
    }
</style>

JS:


<script>
    var but = document.getElementById("buttom");
    var p = document.getElementById("p");
    var moveY = 0 //初始化按下时的位置
    var tops = 0; //初始化tops。tops为下拉的距离
    but.onmousedown = function(e) { //鼠标按下事件
        moveY = e.offsetY //获取鼠标按下时Y轴的位置
        but.onmousemove = function(e) { //鼠标移动事件
            p.innerhtml = "下拉刷新"
            p.style.display = "block"; //鼠标移动时现实提升文字并且让文字为“下拉刷新”
            tops = e.offsetY - moveY //tops大小为鼠标Y轴移动的距离减去按下时的距离
            if (tops < 0) {
                tops = 0 //阻止上拉
            } else if (tops > 40) {
                //tops大于40时提示可以松开鼠标马上刷新
                p.innerHTML = "松开立刻刷新"
            }
            this.style.top = tops + 'px'; //让元素相对定位的top值等于tops的值
            // console.log(tops)
        }
        but.onmouseup = function() { //鼠标松开事件
            but.onmousemove = null //清空鼠标移动事件,阻止元素继续跟着鼠标移动
            if (tops < 40) {
                //如果下拉距离b不足40px的话,元素马上复位不进行刷新,并且提示文字消失
                this.style.top = 0;
                p.style.display = "none"
            } else {
                //如果下拉距离大于40px提示正在刷新
                p.innerHTML = "正 在 刷 新 . . ."
                setTimeout(() => { //延迟1.3秒后复位,这里做的只是模仿,实际项目需要在重新请求数据成功后复位
                    tops = 0
                    this.style.top = tops;
                    p.style.display = "none"
                }, 1300);
            }
        }
    }
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 原生js仿写手机端下拉刷新

本文链接: https://lsjlt.com/news/132918.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 原生js仿写手机端下拉刷新
    本文实例为大家分享了js仿写手机端下拉刷新的具体代码,供大家参考,具体内容如下 话不多说先看效果图: 当下拉小于40px时显示文字: 当下拉大于40px时现实文字 松开时显示...
    99+
    2024-04-02
  • 原生js实现下拉刷新和上拉加载更多
    本文实例为大家分享了js实现下拉刷新和上拉加载更多的具体代码,供大家参考,具体内容如下 1.下拉刷新 由于原生js太久不用了,这里列一下此处涉及到的前置知识点: 移动端触屏事件: t...
    99+
    2024-04-02
  • vue实现原生下拉刷新
    本文实例为大家分享了vue实现原生下拉刷新的具体代码,供大家参考,具体内容如下 这是动画样式   文字样式 html代码 <template>  ...
    99+
    2024-04-02
  • react实现原生下拉刷新
    react是基于vue下拉刷新做了一个小小的改动,供大家参考,具体内容如下 我是用js写的 用jsx文件转化为jsx格式 ,如果用下载的react项目需要稍微改一下 html代码 &...
    99+
    2024-04-02
  • 原生js怎么实现下拉刷新和上拉加载更多
    本篇文章为大家展示了原生js怎么实现下拉刷新和上拉加载更多,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。JavaScript是什么JS是JavaScript的简称,它是一种直译式的脚本语言,其解释器...
    99+
    2023-06-26
  • vue如何实现原生下拉刷新
    这篇文章给大家分享的是有关vue如何实现原生下拉刷新的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 文字样式html代码<template>  <div class=&quo...
    99+
    2023-06-29
  • 怎么用js模拟手机页面文件的下拉刷新
    本篇内容主要讲解“怎么用js模拟手机页面文件的下拉刷新”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用js模拟手机页面文件的下拉刷新”吧!要在仿真器下才能看...
    99+
    2024-04-02
  • 如何使用MUI框架模拟手机端的下拉刷新和上拉加载功能
    小编给大家分享一下如何使用MUI框架模拟手机端的下拉刷新和上拉加载功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mui框架基...
    99+
    2024-04-02
  • HTML5如何实现手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能
    小编给大家分享一下HTML5如何实现手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!H5手指下滑弹出负一屏, 阻止...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作