上拉加載更多----jQuery中的scroll事件

scroll事件不觸發,找到的原因是滾動區域必須設置固定高度,超出固定高度纔會滾動

1.計算滾動區域高度可能會用到的jQuery函數

  • 有公用的底部
// 計算滾動區域到頁面頂部的高度
var windowHeight = $(this).height();   //頁面窗口高度
var sibHeight = $(".mui-slider-group").offset().top+50;    //計算滾動區域之外的高度,滾動區域到頁面頂部的高度加上底部高度,50爲底部導航欄的高度
var scrollHeight = windowHeight-sibHeight;   //滾動區域高度
$(".mui-slider-group").css("height",scrollHeight).css("overflow-y","scroll").css("overflow-x","hidden");   //動態設置滾動區域高度
  • 無公用底部
    實例如下:

html

<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<title>點贊-我的錢包</title>
		<link href="css/mui.min.css" rel="stylesheet" />
		<link rel="stylesheet" href="css/index.css" />
		<style>
			#scrollSlider{
				/*height: 300px;*/
				overflow-y: scroll;
				position: relative;
			}

		</style>
	</head>

	<body>
		<header class="mui-bar mui-bar-nav">
			<a class="mui-icon mui-icon-left-nav mui-pull-left" onclick="javascript :history.back(-1);"></a>
			<h1 class="mui-title">我的錢包</h1>
		</header>
		<div class="mui-content mui-scroll-wrapper myWallet">

			<div class="top">
				<div class="content">

					<div class="money-con">
						<div class="t-money">
							<span class="num">2301.00</span>
							<span>可提現金額(元)</span>
						</div>
						<div class="j-money">
							<div class="left">
								<span class="num">100.00</span>
								<span>今日獎勵(元)</span>
							</div>
							<div class="right">
								<span class="num">100.00</span>
								<span>總獎勵(元)</span>
							</div>
						</div>
					</div>

					<div class="b-list">
						<a href="withdrawal.html">
							<div class="list">
								<span class="list-text">提現</span>
								<span class="mui-icon mui-icon-arrowright"></span>
							</div>
						</a>
						<a href="bind_bank.html">
							<div class="list">
								<span class="list-text">綁定銀行卡</span>
								<span class="mui-icon mui-icon-arrowright"></span>
							</div>
						</a>
						<a href="bind_alipay.html">
							<div class="list">
								<span class="list-text">綁定支付寶</span>
								<span class="mui-icon mui-icon-arrowright"></span>
							</div>
						</a>
					</div>

					<div class="record-list" id="scrollSlider">
							<div id="sliderSegmentedControl" class="mui-slider-indicator mui-segmented-control mui-segmented-control-inverted">
								<a class="mui-control-item mui-active"><span>任務</span></a>
								<a class="mui-control-item"><span>提現記錄</span></a>
								<a class="mui-control-item"><span>邀請獎金</span></a>
								<a class="mui-control-item"><span>任務分傭</span></a>
							</div>

							<div class="mui-slider-group">
								<div class="mui-slider-item mui-control-content mui-active" id="item1">
									<!--循環-->
									<!--<div class="list">
										<div class="left">
											<span>任務獎勵</span>
										</div>
										<div class="right">
											<span class="red">+10</span>
											<span class="date">2019-01-02 10:23:09</span>
										</div>
									</div>-->

								</div>
								<div class="mui-slider-item mui-control-content">

									<div class="list">
										<div class="left">
											<span>提現</span>
										</div>
										<div class="right">
											<span class="red">-10</span>
											<span class="date">2019-03-02 10:23:09</span>
										</div>
									</div>

								</div>
								<div class="mui-slider-item mui-control-content">

									<div class="list">
										<div class="left">
											<span>邀請獎金</span>
										</div>
										<div class="right">
											<span class="red">+10</span>
											<span class="date">2019-03-02 10:23:09</span>
										</div>
									</div>

								</div>
								<div class="mui-slider-item mui-control-content">

									<div class="list">
										<div class="left">
											<span>任務獎勵</span>
										</div>
										<div class="right">
											<span class="red">+10</span>
											<span class="date">2019-03-02 10:23:09</span>
										</div>
									</div>

								</div>
							</div>

						</div>
					</div>

				</div>

	

		</div>
		<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
		<!--<script type="text/javascript" src="js/mui.min.js"></script>-->
		<script>
			$("#sliderSegmentedControl").on("click","a",function(){
		        $(this).addClass("mui-active").siblings().removeClass("mui-active");
		        var index = $(this).index();//點擊li時,保存當前li的下標index,
		        $(".mui-slider-group .mui-slider-item").eq(index).addClass("mui-active").siblings().removeClass("mui-active");
		  	}) 
		   
			var windowHeight = $(this).height();
			var scrollHeight = windowHeight-($(".money-con").outerHeight()+$(".b-list").outerHeight())-70;  //固定滾動區域的高
			var top = windowHeight-($(".money-con").outerHeight()+$(".b-list").outerHeight());
			$("#scrollSlider").css("height",scrollHeight);
			$("#sliderSegmentedControl").css("top",top);
			
			var page = 1, //分頁碼
				off_on = false; //分頁開關(滾動加載方法 1 中用的)
				//加載數據
				var LoadingDataFn = function() {
					var dom = '';
					for(var i = 0; i < 10; i++) {
						dom += '<div class="list">';
						dom += '<div class="left">';
						dom += '<span>邀請獎金</span>';
						dom += '</div>';
						dom += '<div class="right">';
						dom += '<span class="red">+10</span>';
						dom += '<span class="date">2019-03-02 10:23:09</span>';
						dom += '</div>';
						dom += '</div>';
					}
					$('#item1').append(dom);
					off_on = true; //[重要]這是使用了 {滾動加載方法1}  時 用到的 !!![如果用  滾動加載方法1 時:off_on 在這裏不設 true的話, 下次就沒法加載了哦!]
				};
			//初始化, 第一次加載
			$(document).ready(function() {
				LoadingDataFn();
			});
			//滾動加載方法1
			$('#scrollSlider').scroll(function(){
				$(".money-con").css("display","none");
				$(".b-list").css("display","none");
				$("#scrollSlider").css("height",windowHeight-60);
				console.log($(this)[0].scrollTop+"++++++"+$(this).height());
				//當時滾動條離底部60px時開始加載下一頁的內容
				if(($(this)[0].scrollTop + $(this).height() + 60) >= $(this)[0].scrollHeight) {
					//這裏用 [ off_on ] 來控制是否加載 (這樣就解決了 當上頁的條件滿足時,一下子加載多次的問題啦)
					if(off_on) {
						off_on = false;
						page++;
						console.log("第" + page + "頁");
						LoadingDataFn(); //調用執行上面的加載方法
					}
				}
				var scrollTop = $(this).scrollTop();//返回或設置匹配元素的滾動條的垂直位置
				console.log("滾動條垂直的位置"+scrollTop);
				if(scrollTop==0){
					$(".money-con").css("display","block");
					$(".b-list").css("display","block");
					$("#scrollSlider").css("height",scrollHeight);
				}
			});
			

		</script>
	</body>

</html>

css

/*我的錢包*/
.myWallet{
	width: 100%;
	background-color: #f4f4f4;
}
.myWallet .top{
	position: fixed;
	width: 100%;
	height: 20px;
	background-color: #945fe3;
}
.myWallet .top  .content{
	width: 100%;
	position: absolute;
	top: 0;
	overflow: hidden;
}
.myWallet .top .content .money-con,.myWallet .top .content .b-list,.myWallet .top .content .record-list{
	width: 94%;
	margin: 0% 3% 2%;
	background-color: #fff;
	border-radius: 5px;
}
.myWallet .top .content .money-con .t-money{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	border-bottom: 1px solid #f4f4f4;
	box-sizing: border-box;
}
.myWallet .top .content .money-con .t-money span,.myWallet .top .content .money-con .j-money .left span,.myWallet .top .content .money-con .j-money .right span{
	display: block;
	color: #a4a4a4;
	font-size: 1.2rem;
}
.myWallet .top .content .money-con .t-money span{
	line-height: 30px;
}
.myWallet .top .content .money-con .t-money span.num{
	color: #130b18;
	font-size: 2rem;
	line-height: 30px;
	padding-top: 5%;
}
.myWallet .top .content .money-con .j-money{
	width: 100%;
	display: flex;
	flex-direction: row;
}
.myWallet .top .content .money-con .j-money .left,.myWallet .top .content .money-con .j-money .right{
	width: 50%;
	text-align: center;
	margin: 2% 0%;
}
.myWallet .top .content .money-con .j-money .left {
	border-right: 1px solid #f4f4f4;
	box-sizing: border-box;
}

.myWallet .top .content .money-con .j-money .left span.num,.myWallet .top .content .money-con .j-money .right span.num{
	color: #130b18;
    font-size: 1.8rem;
    line-height: 30px;
}
.myWallet .top .content .b-list .list {
    width: 100%;
    height: 50px;
    line-height: 48px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    color: #130b18;
    font-size: 1.5rem;
    border-bottom: 1px solid #f4f4f4;
    box-sizing: border-box;
    padding: 0 4%;
}
.myWallet .top .content .b-list span {
    display: inline-block;
    height: 4.5rem;
    line-height: 4.4rem;
}
.myWallet .record-list .mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active span{
	color: #e7910a;
}
.mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active{
	border: none;
}
.myWallet .record-list .mui-slider-indicator.mui-segmented-control{
	width: 94.3%;
	border-bottom: 1px solid #f4f4f4;
	box-sizing: border-box;
	background-color: #fff;
	position: fixed;
	z-index: 1;
}
.myWallet .record-list .mui-segmented-control .mui-control-item:first-child{
	width: 17.8%;
}
.myWallet .record-list .mui-segmented-control .mui-control-item{
	display: inline-block;
	width: 26.8%;
	padding-top: 2%;
}
.myWallet .record-list .mui-slider-group{
	height: auto;
	margin-top: 50px;
}
.myWallet .record-list .mui-slider-group .mui-slider-item .list {
    width: 100%;
    padding: 2% 5%;
    border-bottom: 1px solid #fafafa;
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    font-size: 1.6rem;
}
.myWallet .record-list .mui-slider-group .mui-slider-item .list:last-child{
	margin-bottom: 20px;
}
.myWallet .record-list .mui-slider-group .mui-slider-item .list .left {
    color: #7d7d7d;
    font-size: 1.4rem;
}
.myWallet .record-list .mui-slider-group .mui-slider-item .list .right {
    font-size: 1.4rem;
    color: #282828;
}
.myWallet .record-list .mui-slider-group .mui-slider-item .list .right span {
    display: block;
    color: #e30a0a;
    font-size: 1.5rem;
    line-height: 1.8rem;
    text-align: right;
}
.myWallet .record-list .mui-slider-group .mui-slider-item .list .right span.date {
    font-size: 1.2rem;
    color: #a5a5a5;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章