iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >html5如何封装下拉刷新
  • 157
分享到

html5如何封装下拉刷新

2023-06-09 10:06:34 157人浏览 安东尼
摘要

这篇文章主要介绍了HTML5如何封装下拉刷新,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前端在工作当中难免会于原生的安卓和iOS合作,去做一些H5嵌套的页面。但是实际开发中

这篇文章主要介绍了HTML5如何封装下拉刷新,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

前端在工作当中难免会于原生的安卓和iOS合作,去做一些H5嵌套的页面。但是实际开发中常常会遇到各种兼容问题,具体问题我就不一一列举了,这次我主要分享的是关于在原生中下拉刷新中双系统出现的兼容问题,最典型的就是在ios中会出现下拉弹簧这会大大增加前端在开发中遇到的奇特问题,所以本文结合实际,对此做些功能上的实现,也希望大家可以看过我实现原理后理解并运用到实际的开发过程中,真正做到举一反三,货不多说直接上代码。

首页CSS+html部分

*{            margin: 0;            padding: 0;            list-style: none;        }    body{            display: flex;            justify-content: center;            align-items: center;        }    .one{        width : 4rem;        height: 7rem;        border: 1px solid red;        font-size: 0.35rem;        box-sizing: border-box;        overflow-y: auto;       }    .kl{        position: relative;       }    .lis{        width: 100%;        height: 1rem;        line-height: 1rem;        text-align: center;        background: red;      }    .lis:nth-child(2n+1){    background: pink;      }    .scroll{        height:100%;        overflow: auto;        -WEBkit-overflow-scrolling: touch;        }    .di{    position: relative;    color: #c8c9cc;    font-size: 0;    vertical-align: middle;    }    .k{    width: 0.5rem;    height: 0.5rem;    display: inline-block;    max-width: 100%;    max-height: 100%;    animation: theanimation 1s linear infinite;    }    .us{    position: absolute;    top: 0;    left: 0;    width: 100%;    height: 100%;   color:rgb(25, 137, 250)    }    .us:before{    display: block;    width: 2px;    height: 25%;    margin: 0 auto;    background-color: currentColor;    border-radius: 40%;    content: ' ';    }    .us:nth-child(1){    -webkit-transfORM: rotate(30deg);    transform: rotate(30deg);    opacity: 1;    }    .us:nth-child(2){    -webkit-transform: rotate(60deg);    transform: rotate(60deg);    opacity: 0.9375;    }    .us:nth-child(3){        -webkit-transform: rotate(90deg);    transform: rotate(90deg);    opacity: 0.875;    }    .us:nth-child(4){    -webkit-transform: rotate(120deg);    transform: rotate(120deg);    opacity: 0.8125;    }    .us:nth-child(5){        -webkit-transform: rotate(150deg);    transform: rotate(150deg);    opacity: 0.75;    }    .us:nth-child(6){        -webkit-transform: rotate(180deg);    transform: rotate(180deg);    opacity: 0.6875;    }    .us:nth-child(7){        -webkit-transform: rotate(210deg);    transform: rotate(210deg);    opacity: 0.625;    }    .us:nth-child(8){    -webkit-transform: rotate(240deg);    transform: rotate(240deg);    opacity: 0.5625;    }    .us:nth-child(9){        -webkit-transform: rotate(270deg);    transform: rotate(270deg);    opacity: 0.5;    }    .us:nth-child(10){        -webkit-transform: rotate(300deg);    transform: rotate(300deg);    opacity: 0.4375;    }    .us:nth-child(11){    -webkit-transform: rotate(330deg);    transform: rotate(330deg);    opacity: 0.375;    }    .us:nth-child(12){         -webkit-transform: rotate(360deg);     transform: rotate(360deg);    opacity: 0.3125;    }    @keyframes theanimation{   from {   transform: rotate(0deg);}     to { transform: rotate(360deg);}      } <!DOCTYPE html><html><head><meta charset="UTF-8"><title>下拉刷新</title><link rel="stylesheet" type="text/css" href="botm_x.css"/></head><style type="text/css"> </style><body><div class="one" ><div class="kl"><li class="lis">这是一个内容</li><li class="lis">这是一个内容</li><li class="lis">这是一个内容</li><li class="lis">这是一个内容</li>    <li class="lis">这是一个内容</li> <li class="lis">这是一个内容</li>    <li class="lis">这是一个内容</li><li class="lis">这是一个内容</li><li class="lis">这是一个内容</li><li class="lis">这是一个内容</li><li class="lis">这是一个内容</li></div></div></body><script type="text/javascript" src="适配.js"></script><script type="text/javascript" src="下拉刷新.js"></script></html>

这里是模拟了一个简单的下拉刷新的模板。

html5如何封装下拉刷新

接下来是js部分也是最主要的部分

window.loading = function() {    var sin = 0;    var sel = null; //計時器    var br = true; //判斷是否請求完所有的數據    var bl = true; //判斷是否ios an    var all_H; //下拉高度    var xl_xu, sl_xu; //下拉選和上拉選    var str;    let box = document.getElementsByClassName('one')[0] //獲取到整個的body    let box_childer = document.getElementsByClassName('kl')[0]    let li = document.querySelectorAll('li') //所有的li    box.addEventListener('touchstart', start) //摁下事件    box.addEventListener('scroll', (e) => scrol(e)) //移動事件    box.addEventListener('touchend', end) //摁下離開事件    //    box.addEventListener('touchmove',move_lin)//拖拽事件    function scrol(e) { //滾動事件        let move_scroll = br && bl ? e.target.scrollTop : NaN        all_H = box.clientHeight + move_scroll        if(all_H >= e.target.scrollHeight) { //觸底了            bl = false            if(sin ^ 3) {                ++sin            } else {                if(xl_xu) {                    return                }                establish(2)                return false            }            br = false            //創建一個節點來顯示所示內容            establish();        }    }    function end() { //鼠標離開事件        bl = true    }    function start(e) { //摁下事件        bl = true    }    function establish(a = 0) { //創建dom加載元素        if(a == 2) { //說明是最後一頁            xl_xu = document.createElement('div');            xl_xu.style.textAlign = 'center'            xl_xu.innerHTML = '已經最後一頁了'            box_childer.appendChild(xl_xu)            return        }        if(xl_xu) { //說明有 那就先刪除            box_childer.removeChild(xl_xu)        }        xl_xu = document.createElement('div')        xl_xu.style.textAlign = 'center'        xl_xu.innerHTML = str        box_childer.appendChild(xl_xu)        sel = setTimeout(() => {            box_childer.removeChild(xl_xu)            xl_xu = null            clearTimeout(sel);            let a = Array.from({length: 5}, _ =>document.createElement('li'))            for(let i = 0;i<a.length; i++)    {                a[i].classList.add('lis')                 box_childer.appendChild(a[i])                }            sel = null            br = true        }, 1500)    }    function move_lin(e) { //托轉事件        if(!br) {            var eve = e || event            var touch = eve.touches[0]            var clientW = box.scrollWidth;            var clientH = box.clientHeight            var start_y = (750 / clientW) * (touch.pageY) / 75 //距离当前页面的高度            var start_x = (750 / clientW) * (touch.pageX) / 75 //距离当前页面的宽度            console.log(start_y, start_x)        }        //        console.log('托轉了',box_childer,all_H)    }    (function() {        str =`<div class="di"'>                <div class="k">            <li class="us"></li>            <li class="us"></li>            <li class="us"></li>            <li class="us"></li>            <li class="us"></li>            <li class="us"></li>             这里我写了一个下拉刷新的deom            <li class="us"></li>            <li class="us"></li>            <li class="us"></li>            <li class="us"></li>            <li class="us"></li>            <li class="us"></li>            </div></div>`    })()}()

整个代码的思想不是简单意义上的根据滚动长度和实际高度做判断,以为开头说过ios这方面会有弹簧的一个特性,所以不能这么判断,我这边通过监听摁下松开事件来多上了一层,这样更加的安全和高效。

下面是我的效果演示,实际开发中可根据自己的用途来修改代码

html5如何封装下拉刷新

感谢你能够认真阅读完这篇文章,希望小编分享的“html5如何封装下拉刷新”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: html5如何封装下拉刷新

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • html5如何封装下拉刷新
    这篇文章主要介绍了html5如何封装下拉刷新,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前端在工作当中难免会于原生的安卓和ios合作,去做一些H5嵌套的页面。但是实际开发中...
    99+
    2023-06-09
  • 基于vue封装下拉刷新上拉加载组件
    基于vue和原生javascript封装的下拉刷新上拉加载组件,供大家参考,具体内容如下 upTilte插槽是下拉刷新的自定义内容放的地方 downTilte插槽是...
    99+
    2024-04-02
  • Android SwipereFreshLayout下拉刷新
    Android SwipereFreshLayout下拉刷新我们都知道现在android5.0以后就提倡使用Material Design设计了。在Material Design设计就有一个非常好的设计SwipereFreshLayout,...
    99+
    2023-05-31
    android swiperefreshlayout 下拉刷新
  • vue如何实现原生下拉刷新
    这篇文章给大家分享的是有关vue如何实现原生下拉刷新的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 文字样式html代码<template>  <div class=&quo...
    99+
    2023-06-29
  • Iscrool如何实现下拉刷新功能
    这篇文章主要为大家展示了“Iscrool如何实现下拉刷新功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Iscrool如何实现下拉刷新功能”这篇文章吧。简易下...
    99+
    2024-04-02
  • Javascript如何实现下拉刷新功能
    这篇文章将为大家详细讲解有关Javascript如何实现下拉刷新功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Html相关代码<!DOCTYPE ht...
    99+
    2024-04-02
  • xmlplus组件如何实现下拉刷新
    这篇文章将为大家详细讲解有关xmlplus组件如何实现下拉刷新,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何实现一个简单的下拉刷新组件。目标组件分析和前面在设计组件时...
    99+
    2024-04-02
  • MUI如何实现上拉刷新/下拉加载功能
    小编给大家分享一下MUI如何实现上拉刷新/下拉加载功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!新闻信息列表必备的功能,支持...
    99+
    2024-04-02
  • 微信小程序下拉刷新如何做
    这篇文章主要介绍了微信小程序下拉刷新如何做的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序下拉刷新如何做文章都会有所收获,下面我们一起来看看吧。onPullDownRefresh在 Page 中定义 o...
    99+
    2023-06-26
  • MUI如何实现上拉加载和下拉刷新效果
    这篇文章主要介绍了MUI如何实现上拉加载和下拉刷新效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。编写存储过程分页(此处使用T-SQL)C...
    99+
    2024-04-02
  • Android中的RecyclerView下拉/上拉刷新数据
            在Android中的列表视图(我们这里以RecyclerView为例)中有很多数据的时候,往往要采取限制数据条目显示,然后通过刷新再添加新的数据显示,这样看的就会比较美观,那么这种列表视图是怎么实现刷新的呢,我们一起来看看吧...
    99+
    2023-09-07
    android
  • vue实现原生下拉刷新
    本文实例为大家分享了vue实现原生下拉刷新的具体代码,供大家参考,具体内容如下 这是动画样式   文字样式 html代码 <template>  ...
    99+
    2024-04-02
  • react实现原生下拉刷新
    react是基于vue下拉刷新做了一个小小的改动,供大家参考,具体内容如下 我是用js写的 用jsx文件转化为jsx格式 ,如果用下载的react项目需要稍微改一下 html代码 &...
    99+
    2024-04-02
  • Flutter listview如何实现下拉刷新上拉加载更多功能
    目录下拉刷新 RefreshIndicator 上拉加载更多 总结:下拉刷新 在Flutter中系统已经为我们提供了google material design的刷新功能 , 样式...
    99+
    2024-04-02
  • React Native如何自定义下拉刷新上拉加载的列表
    小编给大家分享一下React Native如何自定义下拉刷新上拉加载的列表,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在移动端...
    99+
    2024-04-02
  • Vue移动端下拉刷新组件如何使用
    这篇“Vue移动端下拉刷新组件如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue移动端下拉刷新组件如何使用”文章吧...
    99+
    2023-07-06
  • Android如何通过XListView实现上拉加载下拉刷新功能
    小编给大家分享一下Android如何通过XListView实现上拉加载下拉刷新功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下## 导入XListVIew第三方库文件。通过LinkedList将刷新...
    99+
    2023-05-30
  • react native之ScrollView下拉刷新效果
    本文实例为大家分享了react native之ScrollView下拉刷新效果的具体代码,供大家参考,具体内容如下 ScrollView的refreshControl属性用于下拉刷新...
    99+
    2024-04-02
  • H5基于iScroll如何实现下拉刷新和上拉加载更多
    这篇文章将为大家详细讲解有关H5基于iScroll如何实现下拉刷新和上拉加载更多,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言   &n...
    99+
    2024-04-02
  • Android 实现的下拉刷新效果
    下面是自己实现的效果: 1、分析 可以将动画分解成: 睁眼毛驴绕着中心地球旋转,并且在到达地球中心时,切换为闭眼毛驴,最后发射出去 地球自我旋转,随着下拉而缓缓上升,达到半径距离后...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作