针对时间轴TimeLine的一些js操作

5 篇文章 0 订阅
4 篇文章 0 订阅

动态生成时间轴。且右边的div生成是根据左边生成的。

1、jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String userName = (String)request.getSession().getAttribute("username")==null?"":(String)request.getSession().getAttribute("username");
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >
  <head>
  	<base href="<%=basePath%>">
  	<title>时间轴</title>
  	<link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css" />
  	<link rel="stylesheet" type="text/css" href="ext/shared/icons/silk.css" />
  	<link rel="stylesheet" type="text/css" href="ext/ux/fileuploadfield/css/fileuploadfield.css" />
    <link rel="stylesheet" type="text/css" href="front/lhxd/lh/timeline/css/style.css" />
    <style type="text/css">
	    .search{
		  	position:relative;
			margin:0px auto 0px;
			padding-left:0px;
			width:1040px;
			padding-right:0px;
			height:auto;
			overflow:hidden;
			background-color:#F5F7FA;
		} 
		.search_left{
			float: left;
		}
		
		.search_sk{
			margin-left:20px;
			margin-top:10px;
		}
		.sctj{
			border:1px dotted #640000;
			background: #F7F9FC;
			margin-top:5px!important; 
			color:#000;
			padding:5px;
			margin-left:10px;
			white-space: nowrap;
			cursor: pointer;
		}
		
		.sctj:hover{
			border:1px solid #640000;
			background: #FD7F88;
		} 
		.search_center{
			float: center;
		}    
		.search_right{
			float: right;
		}
		    
		.search-input{
		   	color:#999;
		   	border:1px solid #D0D0D0;
		   	height:33px;
		   	line-height:30px;
		   	margin-right:5px;
		   	width:268px;
		   	font-size: 14px;
		}
	 	.search-btn{
		    background:none repeat scroll 0 0 #FD7F88;border:0 none;border-radius:0;
		    color:#FFFFFF;cursor:pointer;height:35px;line-height:33px;padding:0;vertical-align:baseline !important;
		    width:76px;text-align:center;vertical-align:middle;white-space:nowrap;margin-bottom:0;font-weight:normal;
		    font-size:14px;display:inline-block;position:relative;
	   	}
		.xz_div {
			border:2px solid white;float:left;border-right:solid 5px white;font-weight:blod;
		}
		.collapse {
			background-image: url(img/tp_images/in.gif);width:20px;height:20px;float: left;margin-top: 5px;
			cursor: pointer;
		}
		.buttonSpan{
			border:1px dotted #F1F1F1;
			color:#000;
			padding:5px;
			margin-left:10px;
			white-space: nowrap;
			cursor: pointer;
		}
		
		.buttonSpan:hover{
			border:1px solid #939393;
		}
		
		
    </style>
    
    <script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
	<script type="text/javascript" src="ext/ext-all.js"></script>
	<script type="text/javascript" src="ext/ux/fileuploadfield/FileUploadField.js"></script>
	<script type="text/javascript" src="ext/ux/CheckColumn.js"></script>
    <script type="text/javascript" src="front/lhxd/lh/js/jquery-1.7.2.min.js"></script>
	<script type="text/javascript" src="front/lhxd/lh/timeline/js/smohan.blog.plug.js"></script>
	<jsp:include page="../../../main.jsp"></jsp:include>
	
</head>
  <body>
  <div id="title">
	<div class="search">
		<div class="search_left">
			<div class="search_sk" >
			筛选条件>>
				<span id="WQS" class="sctj" οnclick="cjsxtj('WQS','未签收')" data-start="0">未签收</span>
				<span id="YQS" class="sctj" οnclick="cjsxtj('YQS','已签收')" data-start="0">已签收</span>
				<span id="WFK" class="sctj" οnclick="cjsxtj('WFK','未反馈')" data-start="0">未反馈</span>
				<span id="YFK" class="sctj" οnclick="cjsxtj('YFK','已反馈')" data-start="0">已反馈</span>
			</div>
			<!-- <div style="height:30px;background-color:white;padding:0px 0px 0px 5px;" id="sxtj">
            	<div class="xz_div">筛选条件:</div>
            </div> -->
		</div>
		
		<div class="search_right">
			<U style="text-align:center;margin-right:150px;width:50px;cursor: pointer;" οnclick="FXClick()" >分析</U>
			 <input id="searchInput" class="search-input" type="text"></input>
  		 	 <button class="search-btn btn" οnclick="SSClick()">搜索</button>
		</div>
		</div>
	</div>
	<div class="fixed_div">
		<p id="back-to-top"><img src="front/lhxd/lh/timeline/images/top.png"/></p>
	</div>
	<div class="fixed_div_center" style="text-align: center;vertical-align:middle;background-image: url('front/lhxd/lh/timeline/images/center.png'); ">
		<a οnclick="zdFK()">主动<br/>反馈</a>
	</div>
	
	<div id="container">
	    <div class="timeline_container">
			<div class="timeline">
				<div class="plus"></div>
				<div class="plus2"></div>
			</div>
		</div>
		<div style="float:left;" id = "leftRW">				
		</div>
		<div style="float:left;" id = "rightAP">
		</div>
   	</div>

	<script type="text/javascript">
		var QAPID = '';
		var basePath = '<%=basePath%>';
		var userName = '<%=userName%>';
		$(function(){
		    //当滚动条的位置处于距顶部100像素以下时,跳转链接出现,否则消失
		    $(function () {
		        //当点击跳转链接后,回到页面顶部位置
		        $("#back-to-top").click(function(){
		           var p=$('#container').parent();
		           if(p!=undefined){
		        	   p.animate({scrollTop:0},500);
		           }
		            return false;
		        });
		    });
		});
		
	</script>
	<script type="text/javascript" src="front/lhxd/js/TimeLine.js"></script>
  </body>
  
</html>
2、TimeLine.js

function getRW(userName,RWID,CXTJ,SSZT){
	$.ajax({
		url:basePath+'servlet/front/LHXDS?type=cxAPRW',
		type:'post',
		timeout:1000*60*60,
		data:{
			userName : userName,
			CXTJ : CXTJ,
			SSZT : SSZT,
			RWID : RWID
		},
		dataType:'json',
		success:function(obj,textStatus){	
			if(obj.success){
				var html_RWXX = '';
				var html_APXX = '';
				var data_RWXX = obj.data_RWXX;
				var data_APXX = obj.data_APXX;
				XZRWID = RWID;
				var js=0;
				var size=10;
				var top = 10;
				var left_panel=$('#leftRW');
				var right_panel=$('#rightAP');
				
				if(data_RWXX.length > 0){
	            	$.each(data_RWXX, function(commentIndex, comment){
	            		var APID = comment['APID'];
	            		var ZT = comment['SFFK'];
	            		
	            		var QSZT = comment['QSZT'];
	            		var SFCS = comment['SFCS']==undefined?'':comment['SFCS'];
	            		var FKZT = '';
	            		if(QSZT=='未签收'){
	            			FKZT = '签收';
	            		}else if(QSZT=='未反馈'){
	            			FKZT = '反馈';
	            		}else if(QSZT=='已反馈'){
	            			FKZT = '追加反馈';
	            		}
	            		var margin_left=size;	            		
	            		var APFKLX = comment['FKLX']==undefined?'':comment['FKLX'];
	            		var CJR = comment['CJR']==undefined?'':comment['CJR'];
						var APXM = comment['XM']==undefined?'':comment['XM'];
						var APCJSJ = comment['CJSJ']==undefined?'':comment['CJSJ'];
						var APSJH = comment['SJH']==undefined?'':comment['SJH'];
						var APGZNR = comment['GZNR']==undefined?'':comment['GZNR'];
						var APFKSJ = comment['FKSJ']==undefined?'':comment['FKSJ'];
						
	                    html_RWXX +='<div  class="item" style="margin-top :'+ margin_left +'px; " id='+APID+'> '+
									'<h3 style="background-color: #5BD0D9" οndblclick="bjAPXX(\''+CJR+'\',\''+APID+'\',\''+RWID+'\')" >' +
										'<div class="collapse" id ="'+APID+'_TOGGLE" onClick="div_toggleCollapse(\''+APID+'\')"> </div>'+
										'<span class="fl">'+APFKLX+'</span>' +
										'<span class="fr">生成时间:    '+APCJSJ+'</span>' +
									'</h3>' +
									'<p class="con" id ="'+APID+'_TEXT" style="display:none;">' +
									'发起人:'+comment['XM']+'<br/>' +
									'发起人联系方式:'+APSJH+'<br/>' +
									'任务描述:'+APGZNR+'<br/>' +
									'反馈截止时间:'+APFKSJ+'  <font style="color:red">'+SFCS+'</font></p>' +
									'<h4 id="gdzt'+APID+'">' +
										'<span class="fl">任务状态:'+QSZT+'</span>' +
										'<span class="fr"><a id="CZ'+APID+'" href="javascript:void(0);" οnclick="addFK(\''+QSZT+'\',\''+APID+'\',\''+RWID+'\');">'+FKZT+'</a></span>' +
									'</h4>' +
									'<span class="rightcorner"></span>'+
								'</div>' ; 
						//var height = document.getElementById(APID).offsetHeight;
						 $('#leftRW').html(html_RWXX);
						 var left_panel_height=$('#'+APID).outerHeight();
						 html_APXX+='<div id='+APID+'_2 style="margin-top :10px;height:'+left_panel_height+'px;"></div> ';
						 $('#rightAP').html(html_APXX);
						//取出右边div
						var arrAP = data_APXX[APID];
						if(arrAP.length>0){
							$.each(arrAP, function(commentIndex, commentAP){
								var FKID = commentAP['FKID'];
								var margin_right=size;
								
								var FKLX = commentAP['FKLX']==undefined?'':commentAP['FKLX'];
								var XM = commentAP['XM']==undefined?'':commentAP['XM'];
								var SJFKSJ = commentAP['SJFKSJ']==undefined?'':commentAP['SJFKSJ'];
								var SJH = commentAP['SJH']==undefined?'':commentAP['SJH'];
								var MS = commentAP['MS']==undefined?'':commentAP['MS'];
								var TXMCS = commentAP['TXMCS']==undefined?'':commentAP['TXMCS'];
								var ZCMC = commentAP['ZCMC']==undefined?'':commentAP['ZCMC'];
								var FJMC = commentAP['FJMC']==undefined?'':commentAP['FJMC'];
								html_APXX +='<div class="item" style="margin-top :'+ margin_right +'px; " id='+FKID+' name='+APID+'> '+
										'<h3 style="background-color: #FD7F88">'+
											'<div class="collapse" id ="'+FKID+'_TOGGLE" onClick="div_toggleCollapse(\''+FKID+'\')"> </div>'+
											'<span class="fl">'+FKLX+' </span>'+
											'<span class="fr">处理时间:    '+SJFKSJ+'</span>'+
										'</h3>'+
										'<p class="con" style="display:none;" id="'+FKID+'_TEXT">'+
										    '处理人: '+XM+'<br/>'+
											'处理人联系方式: '+SJH+'<br/>'+
											'描述:'+MS+'<br/>'+
											'图形:'+TXMCS+'<br/>'+
											'附件:<a href="javascript:void(0);" οnclick="ckFKXX(\'FJ\',\''+ZCMC+'\')">'+FJMC+'</a>'+
										'</p>'+
										'<h4><b>处理状态:</b>已处理</h4>'+
										'<span class="leftcorner"></span>'+
								    '</div>';
								
								$('#rightAP').html(html_APXX);
								var right_panel_height=$('#'+FKID).outerHeight();
								html_RWXX+='<div id='+FKID+'_2 style="margin-top :10px;height:'+right_panel_height+'px;"></div> ';
								$('#rightAP').html(html_APXX);
							});
						}else{
							$('#rightAP').html(html_APXX);
						}
	             	});
	            }else{
	            	 $('#leftRW').html(html_RWXX);
	            	 $('#rightAP').html(html_APXX);
	            }
			}else{
				alert(obj.msg);
			}
		},
		error:function(XMLHttpRequest, textStatus, errorThrown){
			alert(errorThrown);
		}
	});
}
div的显示和隐藏
<pre name="code" class="javascript">function div_toggleCollapse(panel_id){
	if($('#'+panel_id+'_TEXT').css('display')=='none'){	//需要展开
		$('#'+panel_id+'_TOGGLE').css('backgroundImage','url(img/tp_images/out.gif)');
		$('#'+panel_id+'_TEXT').css('display','');
		$('#'+panel_id+'_2').css('height',$('#'+panel_id).outerHeight());
		
	}else{	//需要隐藏
		$('#'+panel_id+'_TOGGLE').css('backgroundImage','url(img/tp_images/in.gif)');
		$('#'+panel_id+'_TEXT').css('display','none');
		$('#'+panel_id+'_2').css('height',$('#'+panel_id).outerHeight());
	}
}

 



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3 Timeline 时间线实现会拐弯的时间轴相对于普通的时间线来说更加有趣和独特。在实现这种时间轴时,我们可以使用 Vue3 的组件化开发方式来创建一个可重复使用的时间线组件。 首先,我们需要创建一个 TimeNode(时间节点)组件,用来表示每个时间点。我们可以为每个节点设置一个时间和一个事件描述。时间节点可以通过计算属性或者接收传递的属性来设定其位置。 接下来,在时间线组件中,我们需要创建一个数组来存储时间节点。我们可以使用 v-for 指令来遍历这个数组,并将每个时间节点渲染到视图中。 然后,我们可以使用 CSS 来为时间节点添加样式,使其能够正确地显示出拐弯的效果。我们可以为时间节点设置不同的样式类,然后在 CSS 中定义这些样式类的样式规则,来实现时间轴的拐弯效果。 最后,我们可以根据时间节点的数量和位置,计算出时间轴的长度和位置,然后通过 CSS 来设置时间轴的样式,使其正确地显示出拐弯的时间轴效果。 通过以上的步骤,我们就可以实现一个拐弯的时间轴组件。这个组件可以根据需要接收传递的属性,可以根据时间节点的数量和位置来自动计算出时间轴的样式,使其能够正确地显示出拐弯的效果。 总之,Vue3 Timeline 时间线实现会拐弯的时间轴,通过使用 Vue3 的组件化开发方式,结合计算属性、遍历数组、添加样式和计算位置等技巧,可以比较容易地实现出一个有趣和独特的时间轴组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值