微信网页下拉刷新

在进行微信网页开发中,我们需要使用到手指向上滑动至底部自动加载数据,
<div id="tipDiv" style="display: none;text-align: center;">
    <h1>加载中…</h1>
    </div>
<div id="tipDiv2" style="display: none;text-align: center;">
    <h1>数据已全部加载完毕</h1>
</div>

我们需要在自己的页面当中添加这样两个DIV DIV样式可自定义,这只是做个示范。


var page = 1;//页面全局变量
var flag = true;//自定义flag
//页面准备,当页面加载完成时,如数据小于当前页面大小,继续加载
$(document).ready(function () {
    var totalPage = $("#totalPage").val();
    var pageSize = $("#pageSize").val();
    if(page<$("#totalPage").val()&&$("#totalPage").val()>0) {
        if (($(window).scrollTop()) >= ($(document).height() - window.innerHeight) || $(document).height() == window.innerHeight) {
<span style="white-space:pre">	</span>//降频事件,防止滑动至低端多次加载数据
            if (flag) {
                $("#tipDiv").show();
                setTimeout(function () {
                    detailAjax(pageSize, totalPage);
                }, 1000);
                flag = false;
            }
        }
    }
    //滑动方法,当滑动到低端时自动加载数据
    $(window).scroll(function () {
        if(page==$("#totalPage").val()){

            $("#tipDiv2").show();
        }else if(page<$("#totalPage").val()) {
            if (($(window).scrollTop()) >= ($(document).height() - window.innerHeight) || $(document).height() == window.innerHeight) {
                $("#tipDiv").show();
                if(flag) {
                    setTimeout(function () {
                        detailAjax(pageSize,totalPage);
                    }, 1000);
                    flag = false;
                }
            }
        }
    });
});
//加载数据判断及请求ajax
function detailAjax(pageSize,totalPage) {
    if(page<totalPage) {
        if ((50+$(window).scrollTop()) >= ($(document).height() - window.innerHeight)||$(document).height()==window.innerHeight) {
            var startNum =$("#pageSize").val()*page;
            $.ajax({
                url:$ctx+'/user/addtransactionDetail.do',
                type:'post',
                data:{
                    "startNum":startNum,
                    "pageSize":$("#pageSize").val()
                },
                dataType:'json',
                success:function (data) {
                    var json = eval(data);
                    addDetail(json);
                    $("#tipDiv").hide();
                    flag=true ;
                }
            });
        }
    }
    page++;
}
//解析json并在页面输出数据
function addDetail(json) {}
totalpage和pageSize代表数据总页数和每次加载多少数据 可在后台传过来
Uniapp 是一个基于 Vue.js 的跨平台框架,可以用它来开发 Web、iOS、Android 等多个平台的应用。而仿微信聊天下拉刷新则是一种常见的 UI 效果,当用户下拉聊天记录时,页面会出现下拉刷新的效果,以展示最新的聊天记录。 在 Uniapp 中实现仿微信聊天下拉刷新,可以通过使用下拉刷新组件来完成。首先,在需要实现下拉刷新的页面中引入 uni-app 组件库,然后在该页面的 template 中添加下拉刷新组件,示例代码如下: ```html <template> <view> <scroll-view scroll-y="true" class="chat-scrollview" :style="{height:chatScrollHeight}"> <!-- 聊天记录列表 --> <view class="chat-list"> ... </view> </scroll-view> <!-- 下拉刷新组件 --> <uni-scroll-view refresher-enabled :refresher-threshold="80" @refresherrefresh="onRefresh"> <view slot="refresher" class="uni-refresher"> <i class="uni-icons" :class="{'uni-loading':isRefreshing}"></i> <span v-if="isRefreshing">正在刷新...</span> <span v-else>下拉刷新</span> </view> </uni-scroll-view> </view> </template> <script> import uniScrollView from '@/components/uni-scroll-view/uni-scroll-view.vue' export default { components: { uniScrollView }, data() { return { chatScrollHeight: '100vh', isRefreshing: false } }, methods: { onRefresh() { // 下拉刷新回调函数 this.isRefreshing = true; setTimeout(() => { this.isRefreshing = false; }, 2000); } } } </script> <style lang="scss"> .chat-scrollview { height: calc(100vh - 100rpx); } .uni-refresher { display: flex; align-items: center; justify-content: center; height: 80rpx; color: #999; font-size: 28rpx; line-height: 1; } </style> ``` 在这段代码中,我们使用了 uni-app 自带的 `uni-scroll-view` 组件作为下拉刷新组件,并设置了 `refresher-enabled` 属性为 true,表示开启下拉刷新功能。同时,我们在组件中设置了 `refresher-threshold` 属性为 80,表示下拉超过 80rpx 才会触发下拉刷新的回调函数 `onRefresh`。当用户下拉到阈值时,会触发 `@refresherrefresh` 事件,我们在这个事件中执行下拉刷新的逻辑。在代码中,我们设置了一个 `isRefreshing` 变量来控制刷新状态,当 `isRefreshing` 为 true 时,显示“正在刷新...”文本和 loading 图标,当 `isRefreshing` 为 false 时,显示“下拉刷新”文本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值