老师请问怎么改可以使代码更精简呢?

来源:8-11 自由编程

hyperse

2019-08-31 19:50:38

而且input这个兼容一定要做吗?

代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>8-11自由编程(2)</title>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		
		<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.11&key=9de88a718781910c9a1c81230827d1ce&plugin=AMap.Transfer,AMap.Autocomplete,AMap.Driving,AMap.Riding"></script>
		
		<link type="text/css" href="https://netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
		
		<style type="text/css">
			*{
				padding: 0;
				margin: 0;
			}
			#container{
				width: 100%;
				height: 100%;
				position: absolute;
				top: 0;
				left: 0;
			}
			.search-line{
				width: 300px;
				height: 220px;
				background: #2583F7;
				font: 14px "微软雅黑";
				position: absolute;
				top: 40px;
				left: 20px;
				z-index: 3;
			}
			.searIcon{
				width: 100%;
				margin: 15px 0;
				text-align: center;
			}
			.fa{
				color: white;
				opacity: 0.6;
			}
			.searIcon .fa-car{
				opacity: 1;
			}
			.fa+.fa{
				margin-left: 25px;
			}
			.searInput{
				margin-left: 55px;
				overflow: hidden;
			}
			.searInput:last-of-type{
				margin-top: 15px;
			}
			input::-webkit-input-placeholder{
				color: white;
			}
			input:-moz-placeholder{
				color: white;
			}
			input:-moz-placeholder{
				color: white;
			}
			input:-ms-input-placeholder{
				color: white;
			}
			.text{
				float: left;
				width: 30px;
				height: 30px;
				line-height: 30px;
				color: white;
				text-align: center;
				background: rgba(46,32,234,0.6);
				opacity: 0.5;
			}
			#searchStar,#searchEnd{
				float: left;
				width: 160px;
				height: 30px;
				border: none;
				outline: none;
				background: rgba(46,32,234,0.6);
				opacity: 0.5;
				color: white;
			}
			#searchBtn{
				position: absolute;
				right: 55px;
				bottom: 40px;
				width: 60px;
				height: 30px;
				border: none;
				color: white;
				background: rgba(255,255,255,0.3);
			}
			#searchContainer{
				position: fixed;
				top: 260px;
				left: 20px;
				z-index: 3;
				width: 300px;
			}
		</style>
	</head>
	<body>
		<div id="container"></div>  <!-- 地图容器 -->
		<div class="search-line">   <!-- 关键词搜索容器 -->
			<div class="searIcon">
				<i class="fa fa-car"></i>
				<i class="fa fa-bus"></i>
				<i class="fa fa-bicycle"></i>
			</div>
			<div class="searInput"><span class="text">起</span><input type="text" id="searchStar" placeholder="请输入起点"/></div>
			<div class="searInput"><span class="text">终</span><input type="text" id="searchEnd" placeholder="请输入终点"/></div>
			<input type="submit" id="searchBtn" value="开车去" />
		</div>
		<div id="searchContainer"></div>  <!-- 路线图容器 -->
		
		<script>
			var map = new AMap.Map('container',{
				zoom:13,
				center:[116.379,39.861]
			});
			var fa = document.querySelectorAll('i'),
				faCar = document.querySelector('.fa-car'),
				faBus = document.querySelector('.fa-bus'),
				faBicycle = document.querySelector('.fa-bicycle'),
				searchStar = document.querySelector('#searchStar'),
				searchEnd = document.querySelector('#searchEnd'),
				searchBtn = document.querySelector('#searchBtn'),
				searchContainer = document.querySelector('#searchContainer');
			var result1 = true,
				result2 = true,
				result3 = true;
			function clearStyle(){
				for(var i=0;i<fa.length;i++){
					fa[i].style.opacity = '0.6';
				}
			}
			faCar.onclick = function(){
				clearStyle();
				this.style.opacity = '1';
				searchBtn.value = '开车去';
				result1 = true;
			};
			faBus.onclick = function(){
				clearStyle();
				this.style.opacity = '1';
				searchBtn.value = '坐公交';
				result2 = true;
			};
			faBicycle.onclick = function(){
				clearStyle();
				this.style.opacity = '1';
				searchBtn.value = '骑车去';
				result3 = true;
			};
			searchBtn.onclick = function(){
				if(searchBtn.value == '开车去' & result1 == true){
					map.clearMap();
					searchContainer.innerHTML = '';
					new AMap.Driving({
						map:map,
						panel:'searchContainer'
					}).search([
						{keyword:searchStar.value,city:'北京'},
						{keyword:searchEnd.value,city:'北京'}
					],function(status,data){
						console.log(data);
					})
				}else if(searchBtn.value == '坐公交' & result2 == true){
					map.clearMap();
					searchContainer.innerHTML = '';
					new AMap.Transfer({
						map:map,
						panel:'searchContainer'
					}).search([
						{keyword:searchStar.value,city:'北京'},
						{keyword:searchEnd.value,city:'北京'}
					],function(status,data){
						console.log(data);
					})
				}else{
					map.clearMap();
					searchContainer.innerHTML = '';
					new AMap.Riding({
						map:map,
						panel:'searchContainer'
					}).search([
						{keyword:searchStar.value,city:'北京'},
						{keyword:searchEnd.value,city:'北京'}
					],function(status,data){
						console.log(data);
					})
				}
			};
			
		</script>
	</body>
</html>


写回答

1回答

好帮手慕慕子

2019-09-01

同学你好, 如果只考虑在chrome浏览器上打开, 可以不做兼容, 直接写input::placeholder即可, 但是一般推荐使用兼容性的写法, 保证在其他浏览器上打开,设置的样式也可以生效。

同学这里实现的逻辑很棒, 效果实现的也很棒, 代码已经很精简了, 不应在修改了哦

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

0

0 学习 · 6815 问题

查看课程