每天学一个jquery插件-水一个分页

每天学一个jquery插件-水一个分页

水一个分页

今天想要做一个立体效果的分页出来,但是效果没研究出来,暂时放个半成品,不过想法捋清楚了,就是没得实现的方式

目前效果
在这里插入图片描述

代码如下

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>做日期插件</title>
		<script src="js/jquery-3.4.1.min.js"></script>
		<style>
			*{
     
     
				margin: 0px;
				padding: 0px;
			}
			body,html{
     
     
				width: 100%;
				height: 100%;
			}
			#div{
     
     
				background-color: gray;
				width: 100%;
				height: 100%;
				display: flex;
				overflow:hidden;
			}
			.div{
     
     
				background-color:white;
				transition: all 0.5s linear;
			}
			.d0{
     
     
				background-color: #ecf0f1;
			}
			.d1{
     
     
				background-color: #2ecc71;
			}
			.d2{
     
     
				background-color: #3498db;
			}
			.d3{
     
     
				background-color: #f1c40f;
			}
			.d4{
     
     
				background-color: #f39c12;
			}
		</style>
	</head>
	<body>
		<div id="div">
			
		</div>
	</body>
</html>
<script>
	$(function(){
     
     
		var count = 5//一共有多少个页面
		for(var i = 0;i<count;i++){
     
     
			var $div = $("<div class='div d"+i+"'  data-i='"+i+"'>第个"+(parseInt(i)+1)+"页面</div>");
			$div.appendTo($("#div"));
			$div.css({
     
     
				"min-width":$("#div").width(),
				"min-height":$("#div").height()
			})
		}
		$(".div").click(function(e){
     
     
			var that = $(this);
			var w = $(this).width();
			var w2 = e.offsetX;
			//dir:0就是左翻,1就是右翻
			var dir = w/2>w2?0:1;
			//ind:获取当前点击页面的页码,用于判断是否执行动画效果
			var ind = $(this).attr("data-i");
			// console.log(dir,ind)
			if(dir==1){
     
     
				console.log("左翻")
				if(that.next().length!=0){
     
     
					that.css({
     
     
						"min-width":"0px",
					},500)
				}
			}else{
     
     
				that.prev().css({
     
     
					"min-width":$("#div").width()
				},500)
			}
		})
	})
</script>

想法解释

  • 做法按照上面的思路来就行了,关注在翻页动作和动画效果上面。
  • 假如左翻就是找到前后动画变化的俩页面
  • 前提是当前页面展示的,其他的页面都是没给宽度的
  • 左翻就是当前页面水平翻转-90度,并且同时页面宽度跟着缩到0,旋转中心就是右边的边线,左边要翻的页面就宽度逐渐填满当前视口,并且执行翻转动画,从90度翻至0度,这样子就能实现很好的立体翻转的动画效果了
  • 右翻就同上
  • 额,今天先到这,每天再溜溜.

猜你喜欢

转载自blog.csdn.net/weixin_44142582/article/details/113811116