老师请问怎么改可以使代码更精简呢?
来源: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即可, 但是一般推荐使用兼容性的写法, 保证在其他浏览器上打开,设置的样式也可以生效。
同学这里实现的逻辑很棒, 效果实现的也很棒, 代码已经很精简了, 不应在修改了哦
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~
相似问题