老师帮忙看一下有没有优化的点
来源:8-11 自由编程
qq_初晴moment_5
2019-11-09 15:55:29
<!DOCTYPE html>
<html>
<head>
<title>练习</title>
<link rel="stylesheet" type="text/css" href="https://netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<style type="text/css">
*{
padding:0;
margin:0;
}
#container {
width:100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
#wrap{
width: 300px;
height: 200px;
position: absolute;
top: 10px;
left: 10px;
background-color: rgba(30,144,255,1);
}
.icon{
width: 100%;
height: 40px;
/*background-color: yellow;*/
text-align: center;
}
.fa{
display: inline-block;
width: 40px;
height: 40px;
line-height: 40px;
cursor: pointer;
color: rgba(255,255,255,0.7);
/*background-color: red;*/
}
.start,.end{
width: 200px;
height: 30px;
line-height: 30px;
color: rgba(255,255,255,0.8);
font-size: 14px;
background-color: rgba(0,0,255,0.3);
margin-left: 50px;
padding-left: 5px;
}
.end{
margin-top: 8px;
}
#startInput,#endInput{
display: inline-block;
font-size: 14px;
color: rgba(255,255,255,0.8);
background-color: transparent;
border: none;
outline: none;
}
#btn{
width: 80px;
height: 30px;
line-height: 30px;
text-align: center;
font-size: 14px;
color: rgba(255,255,255,0.8);
background-color: rgba(255,255,255,0.1);
margin-left: 173px;
margin-top: 30px;
cursor: pointer;
}
#panel{
width: 300px;
position: absolute;
top: 210px;
left: 10px;
background-color: #fff;
}
</style>
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=fc606e66068012687b43d619876ea26c&plugin=AMap.Autocomplete,AMap.PlaceSearch,AMap.Driving,AMap.Transfer,AMap.Riding"></script>
</head>
<body>
<div id="container"></div>
<div id="wrap">
<div class="icon" id="icon"><i class="fa fa-car" id="fa_car"></i><i class="fa fa-bus" id="fa_bus"></i><i class="fa fa-bicycle" id="fa_bicycle"></i></div>
<div class="start">起
<input type="text" id="startInput" placeholder="请输入起点">
</div>
<div class="end">终
<input type="text" id="endInput" placeholder="请输入终点">
</div>
<div id="btn">开车去</div>
</div>
<div id="panel"></div>
<script type="text/javascript">
var map=new AMap.Map("container",{
zoom:10,
center:[121.472644,31.231706]
});
var fa_car=document.getElementById("fa_car"),
fa_bus=document.getElementById("fa_bus"),
fa_bicycle=document.getElementById("fa_bicycle"),
startInput=document.getElementById("startInput"),
endInput=document.getElementById("endInput"),
btn=document.getElementById("btn"),
icon=document.getElementById("icon"),
panel=document.getElementById("panel");
//输入提示
new AMap.Autocomplete({
input:'startInput'
});
startInput.oninput=function(){
panel.style.display="none";
}
new AMap.Autocomplete({
input:'endInput'
});
endInput.oninput=function(){
panel.style.display="none";
}
function clear(){
var icons=icon.childNodes;
for(var i=0;i<icons.length;i++){
icons[i].style.color="rgba(255,255,255,0.7)";
}
}
//点击图标替换按钮文字
fa_car.onclick=function(){
btn.innerHTML="开车去";
clear();
this.style.color="rgba(255,255,255,1)";
}
fa_bus.onclick=function(){
btn.innerHTML="坐公交";
clear();
this.style.color="rgba(255,255,255,1)";
}
fa_bicycle.onclick=function(){
btn.innerHTML="骑车去";
clear();
this.style.color="rgba(255,255,255,1)";
}
//点击按钮出现路线
btn.onclick=function(){
if(btn.innerHTML == '开车去'){
map.clearMap();
panel.innerHTML="";
panel.style.display="block";
new AMap.Driving({
map:map,
panel:'panel'
}).search([
{keyword:startInput.value},
{keyword:endInput.value}
],function(status,data){});
}else if(btn.innerHTML == '坐公交'){
map.clearMap();
panel.innerHTML="";
panel.style.display="block";
new AMap.Transfer({
map:map,
panel:'panel'
}).search([
{keyword:startInput.value,city:'上海'},
{keyword:endInput.value,city:'上海'}
],function(status,data){});
}else if(btn.innerHTML == '骑车去'){
map.clearMap();
panel.innerHTML="";
panel.style.display="block";
new AMap.Riding({
map:map,
panel:'panel'
}).search([
{keyword:startInput.value},
{keyword:endInput.value}
],function(status,data){});
}
};
</script>
</body>
</html>老师,点击图标颜色变化有没有更好的方法,用childNodes会获取到空白元素,必须得去掉空格才可以,感觉太麻烦
1回答
同学你好, 点击图标颜色变化,同学的这个思路已经是很简单明了的, 可以通过getElementsByTagName获取所有的图标元素,然后通过元素个数长度控制循环条件,这样就不需要删除空格了

通过CSS设置首次打开页面第一个图标的样式

代码中可以优化的地方, 可以参考如下解答, 增加代码的可读性,简化代码的书写
将设置规划路线以及搜索结果和清空样式提取出来,单独分装成函数

在按钮点击事件中调用函数即可

如果帮助到了你, 欢迎采纳,祝学习愉快~~~
相似问题