JQuery实现步骤条效果(上一步,下一步)

449 阅读2分钟

之前做出的步骤条是利用easyui +jquery实现的,但是他在隐藏板块的时候用到的是display:none,这会使我在板块中加载的js失效,所以换了一种方式,用Position。 把元素脱离文档流移出视觉区域,添加该属性后既不会影响布局,又能让元素保持可以操作。应用该属性后,主要就是通过控制方向(top,left,right,bottom),达到一定的值,离开当前可是页面。

效果图:

520.png

html代码

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title></title>
	<link rel="stylesheet" type="text/css" href="css/style.css">
	<script type="text/javascript" src="js/jquery/jquery.js"> </script>
	<script type="text/javascript" src="js/index.js"> </script>
<body>
	<!--  标题进度条 start-->
	<div class="content" style="margin: 2% 30%;width: 100%;">
		<div class="processBar">
			<div id="line0" class="bar">
				<div id="point0" class="c-step c-select"></div>
			</div>
			<div class="text" style="margin: 10px -25px;"><span class='poetry'>基本信息</span></div>
		</div>
		<div class="processBar">
			<div id="line1" class="bar">
				<div id="point1" class="c-step"></div>
			</div>
			<div class="text" style="margin: 10px -30px;"><span class='poetry'>教育背景</span></div>
		</div>
		<div class="processBar">
			<div id="line2" class="bar">
				<div id="point2" class="c-step"></div>
			</div>
			<div class="text" style="margin: 10px -30px;"><span class='poetry'>工作经历</span></div>
		</div>
		<div class="processBar">
			<div id="line3" class="bar" style="width: 0;">
				<div id="point3" class="c-step"></div>
			</div>
			<div class="text" style="margin: 10px -15px;"><span class='poetry'>社交</span></div>
		</div>
	</div>
	<!--  标题进度条 end-->
	<div style="clear: both;"></div>
	<div id="MainContent" style="margin: 2% 30%;">
		<div class="content" id="basicInfo">
			<span class='poetry'>
				这是基本信息板块
			</span>
		</div>
		<div class="content" id="education">
			<span class='poetry'>
				这是教育背景板块<br/>
			</span>
		</div>
		<div class="content" id="work">
			<span class='poetry'>
				这是工作经历板块<br/>
			</span>
			<span class='poetry'>工作地点</span>
			<input type='text' id='name'/> <br/>
			<span class='poetry'>工作内容</span>
			<input type='text' id='age'/>
		</div>
		<div class="content" id="social">
			<span class='poetry'>
				这是社交板块
			</span>
		</div>
	</div>
	<div style="clear: both;"></div>
	<div style="text-align: center;">
			<button id="previous_step">上一步</button>
			<button id="next_step">下一步</button>
	</div>
 
</body>
</html>

js代码展示

$(document).ready(function(){
	$("#education").addClass('main-hide');
	$("#work").addClass('main-hide');
	$("#social").addClass('main-hide');
	$('#previous_step').hide();
	/*上一步*/
	$('#previous_step').bind('click', function () {
		index--;
		ControlContent(index);
	});
	/*下一步*/
	$('#next_step').bind('click', function () {
		index++;
		ControlContent(index);
	});
});
var index=0;
function ControlContent(index) {
    var stepContents = ["basicInfo","education","work","social"];
    var key;//数组中元素的索引值
    for (key in stepContents) {
        var stepContent = stepContents[key];//获得元素的值
        if (key == index) {
        	if(stepContent=='basicInfo'){
        		$('#previous_step').hide();
        	}else{
        		$('#previous_step').show();
        	}
        	if(stepContent=='social'){
        		$('#next_step').hide();
        	}else{
        		$('#next_step').show();
        	}
            $('#'+stepContent).removeClass('main-hide');
            $('#point'+key).addClass('c-select');
    		$('#line'+key).removeClass('b-select');
        }else {
            $('#'+stepContent).addClass('main-hide');
            if(key>index){
            	$('#point'+key).removeClass('c-select');
        		$('#line'+key).removeClass('b-select');
            }else if(key<index){
            	$('#point'+key).addClass('c-select');
        		$('#line'+key).addClass('b-select');
            }
        }
    }
 
}

css样式代码

   .processBar{
      float: left;
      width: 200px;
      margin-top: 15px;
    }
    .processBar .bar{
      background: rgb(230, 224, 236);
      height: 3px;
      position: relative;
      width: 185px;
      margin-left: 10px;  
    }
    .processBar .b-select{
      background: rgb(96, 72, 124);
    }
    .processBar .bar .c-step{
      position: absolute;
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: rgb(230, 224, 236);
      left: -12px;
      top: 50%;
      margin-top: -4px;
    }
    .processBar .bar .c-select{
      width: 10px;
      height: 10px;
      margin: -5px -1px;
      background:rgb(96, 72, 124);
 
    }
    .main-hide {
      position: absolute;
      top: -9999px;
      left: -9999px;
    }
    .poetry{
    	color: rgb(96, 72, 124); 
    	font-family: KaiTi_GB2312, KaiTi, STKaiti; 
    	font-size: 16px; 
    	background-color: transparent; 
    	font-weight: bold; 
    	font-style: normal; 
    	text-decoration: none;
    }
    button{
    	width: 80px;
	    line-height: 30px;	    
	    font-size: 11px;
	    color: rgb(116, 42, 149);
	    text-align: center;
	    border-radius: 6px;
	    border: 1px solid #e2e2e2;	    
	    cursor: pointer;
	    background-color: #fff;
	    outline:none;
    }
    button:hover{
      border: 1px solid rgb(179, 161, 200);
    }