JS实现类似桌面ListView左右移动的效果

先上效果图

该效果允许将左边列表里的内容移动到右边列表中或者反向操作。。


该效果的实现要点有如下几点:

1.  使用Select来做ListView,切记将select的 multiple 属性设置为 true

2. 可以通过jQuery提供的$("#select_id option[value="targetValue"]")来选定特定的元素,并进行修改和删除

3. 中间两个按钮的居中:可以采取模拟表格的方式来实现居中,即CSS里面加入如下两句

display:table-cell;
vertical-align:middle


不多做介绍,直接贴上源代码


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Move Item</title>
<style>
body {
	background:#FFFFFF;
	margin: 20px;
}

#selecter_container {
	width: 450px;
}

#left_list, #right_list {
	width:200px;
	height:300px;
}

.left_float, .right_float {
	width: 200px;
	height:300px;
	display:block;
}

.left_float {
	float:left;
}
.right_float {
	float: right;
}

#operation_span {
	margin-left: 200px;
	margin-right: 200px;
	width: 50px;
	height: 300px;
	text-align:center;
	display:table-cell;
	vertical-align:middle;
}

</style>
	
<script src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"></script>

<script>
	function moveToRight() {
		var leftList = $("#left_list");
		var rightList = $("#right_list");
		var selectedValues = $("#left_list").val();
		if (selectedValues == null) return;
		for (var i = 0; i < selectedValues.length; ++i) {
			rightList.append('<option value="' + selectedValues[i] + '">' 
				+ $("#left_list option[value='" + selectedValues[i] + "']").text() + '</option>');
			$("#left_list option[value='" + selectedValues[i] + "']").remove();
		}
	};
	function moveToLeft() {
		var leftList = $("#left_list");
		var rightList = $("#right_list");
		var selectedValues = $("#right_list").val();
		if (selectedValues == null) return;
		for (var i = 0; i < selectedValues.length; ++i) {
			leftList.append('<option value="' + selectedValues[i] + '">' 
				+ $("#right_list option[value='" + selectedValues[i] + "']").text() + '</option>');
			$("#right_list option[value='" + selectedValues[i] + "']").remove();
		}
	}
</script>

</head>

<body>
	
	<div id="selecter_container">
		<div class="left_float">
			<select id="left_list" name="left_list" multiple="true">
				<option value= "1"> 爱情片 </option>
				<option value= "2"> 动作片 </option>
				<option value= "3"> 战争片 </option>
				<option value= "4"> 恐怖片 </option>
				<option value= "5"> 喜剧片 </option>
				<option value= "6"> 伦理片 </option>
				<option value= "7"> 电视剧 </option>
				<option value= "8"> 动画片 </option>
				<option value= "9"> 其它 </option>
			</select>
		</div>
		<div  class="right_float">
			<select id="right_list" name="right_list" multiple="true">
			</select>
		</div>
		
		<div id="operation_span"> 
			<input type="button" value=">>" οnclick="moveToRight()" /><br />
			<input type="button" value="<<" οnclick="moveToLeft()" />
		</div>
	</div>
</html>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值