add 推荐

This commit is contained in:
lh_wang
2015-08-10 15:08:13 +08:00
parent 5c32c377b7
commit f6228f3014
7 changed files with 177 additions and 182 deletions
+2 -4
View File
@@ -306,7 +306,7 @@ html body {
left: 0px; left: 0px;
right: 0px; right: 0px;
bottom: 5px; bottom: 5px;
height: 130px; height: 25px;
z-index: 10000; z-index: 10000;
overflow: hidden; overflow: hidden;
} }
@@ -337,9 +337,8 @@ html body {
} }
.SN_info_tui { .SN_info_tui {
position: relative; position: relative;
margin-top: 20px;
margin-left: 4px; margin-left: 4px;
height: 100px; min-height: 100px;
overflow: hidden; overflow: hidden;
} }
.SN_info_tui_div { .SN_info_tui_div {
@@ -358,7 +357,6 @@ html body {
} }
#SN_info_btn { #SN_info_btn {
position: absolute; position: absolute;
top: 2px;
width: 25px; width: 25px;
margin-left: -12px; margin-left: -12px;
left: 50%; left: 50%;
+25 -34
View File
@@ -189,48 +189,39 @@
<div id="ROUTER_TPL"></div> <div id="ROUTER_TPL"></div>
</div> </div>
<!--信息窗--> <!--信息窗-->
<div class="SN_info"> <div class="SN_info" style="display:none;">
<div id="SN_info_btn"> <div id="SN_info_btn">
<i class="fa fa-bars SN_info_btn_icon" style="font-size:17px;"></i> <i class="fa fa-bars SN_info_btn_icon" style="font-size:17px;"></i>
</div> </div>
<div id="SN_TPL"></div> <div id="SN_TPL"></div>
<script type="text/template" id="tpl"> <script type="text/template" id="tpl">
<div class="SN_info_wrapper"> <div class="SN_info_wrapper">
<% for(var i = 0; i < list.length; i++) { %> <% for(var i = 0; i < list.length; i++) {%>
<div style="width:<%=width%>px;" class="SN_info_item sh"> <div style="width:<%=width%>px;" class="SN_info_item sh">
<div class="fl SN_info_tui" style="width:<%=tui_width%>px;"> <div class="fl SN_info_tui" style="width:<%=tui_width%>px;">
<div class="SN_info_tui_div" style="width:<%=tui_width%>px;"> <div style="font-size:14px;font-style: italic;color:#4C4C4C;">
<a target="_blank"> <%=i+1%>
<i class="fa fa-star SN_info_tui_icon"></i> <span style="font-style:normal;"><%=list[i].content%></span>
<span class="SN_info_rmb"><i class="fa fa-jpy"></i> 899</span> </div>
</a> <%if(data){%>
</div> <%for(var n = 0; n < 5; n++){%>
<%var k = n + i * 5; %>
<div class="SN_info_tui_div" style="width:<%=tui_width%>px;"> <div class="SN_info_tui_div" style="width:<%=tui_width%>px;">
<a target="_blank"> <a target="_blank">
<i class="fa fa-star SN_info_tui_icon"></i> <i class="fa fa-star SN_info_tui_icon"></i>
<span class="SN_info_rmb"><i class="fa fa-jpy"></i> 899</span> <span><%=data[k].name%></span>
</a> <span style="color:#999;"><%=data[k].address%></span>
</div> <%if(data[k].tel){%>
<div class="SN_info_tui_div" style="width:<%=tui_width%>px;"> <a href="tel:<%=data[k].tel%>">
<a target="_blank"> <span class="SN_info_rmb">
<i class="fa fa-star SN_info_tui_icon"></i> <i class="fa fa-phone" style="color:#23BCFF;font-size:16px;"></i>
<span class="SN_info_rmb"><i class="fa fa-jpy"></i> 899</span> </span>
</a> </a>
</div> <%}%>
<div class="SN_info_tui_div" style="width:<%=tui_width%>px;"> </a>
<a target="_blank"> </div>
<i class="fa fa-star SN_info_tui_icon"></i> <%}%>
<span class="SN_info_rmb"><i class="fa fa-jpy"></i> 899</span> <%}%>
</a>
</div>
<div class="SN_info_tui_div" style="width:<%=tui_width%>px;">
<a target="_blank">
<i class="fa fa-star SN_info_tui_icon"></i>
<span class="SN_info_rmb"><i class="fa fa-jpy"></i> 899</span>
</a>
</div>
</div> </div>
<div class="fr SN_info_img"> <div class="fr SN_info_img">
<img src="img/iio.png" /> <img src="img/iio.png" />
+4
View File
@@ -32,8 +32,12 @@ define('home/dashboard', function(require, exports, module) {
setInterval(function(){ setInterval(function(){
var val = parseInt(events.get('dashSpeed')); var val = parseInt(events.get('dashSpeed'));
val = val + parseInt(Math.random() * 2); val = val + parseInt(Math.random() * 2);
if(isNaN(val)){
return;
}
gauge.set(val); gauge.set(val);
}, 1000); }, 1000);
}else{ }else{
charts_dash.fadeOut(); charts_dash.fadeOut();
} }
+29 -25
View File
@@ -9,29 +9,6 @@ define('home/events', function(require, exports, module) {
var map = require('home/map'); var map = require('home/map');
//获取路线数据 //获取路线数据
var router = require('common/data').router[0]; var router = require('common/data').router[0];
// //地图对象
// events.set('map', map);
// //默认路线
// events.set('router', router);
// //起点
// events.set('origin', new AMap.LngLat(router[0].x, router[0].y));
// //终点
// events.set('destination', new AMap.LngLat(router[router.length - 1].x, router[router.length - 1].y));
// //途经点
// events.set('wayPoints', []);
// //采集数据
// events.set('disTime', []);
// //所有点集合
// events.set('allPoints', []);
// //汽车点
// events.set('carMarker', null);
// //实时车的位置
// events.set('realCarIndex', 0);
// //仪表盘车速
// events.set('dashSpeed', 0);
// //计时器
// events.set('realSpeedHandle', null);
// events.set('carWatchHandle', null);
events.on('mapRefresh', function(){ events.on('mapRefresh', function(){
map.clearMap(); map.clearMap();
@@ -66,6 +43,8 @@ define('home/events', function(require, exports, module) {
//计时器 //计时器
events.set('realSpeedHandle', null); events.set('realSpeedHandle', null);
events.set('carWatchHandle', null); events.set('carWatchHandle', null);
//热门推荐
events.set('hots', []);
}); });
@@ -111,6 +90,31 @@ define('home/events', function(require, exports, module) {
driving(sp, ep); driving(sp, ep);
} }
}); });
//拿到地点数据
AMap.service(['AMap.PlaceSearch'], function(){
var search = new AMap.PlaceSearch({
type: '餐饮服务|购物服务|生活服务|住宿服务|风景名胜|餐饮|酒店',
extensions: 'base'
});
var router = events.get('router');
router.forEach(function(data){
var center = new AMap.LngLat(data.x, data.y);
search.searchNearBy('酒店|景点', center, 50000, function(status, result){
if(result.info === 'OK'){
var hots = events.get('hots');
var pois = result.poiList.pois;
var len = pois.length > 5 ? 5: pois.length;
for(var n = 0; n < len; n++){
hots.push(pois[n]);
}
events.set('hots', hots);
}else{
console.log('服务出错');
}
});
});
});
}); });
//绘制起点和终点 //绘制起点和终点
@@ -224,9 +228,9 @@ define('home/events', function(require, exports, module) {
$('#router_circle_' + i).removeClass('firebug_flash'); $('#router_circle_' + i).removeClass('firebug_flash');
} }
} }
if (Math.abs(carPos.lng - router[router.length - 1].x) < 0.01 && Math.abs(carPos.lat - router[router.length - 1].y) < 0.01) { if (Math.abs(carPos.lng - router[router.length - 1].x) < 0.01 && Math.abs(carPos.lat - router[router.length - 1].y) < 0.01) {
clearInterval(carWatch); clearInterval(carWatchHandle);
} }
}, 500); }, 500);
+102 -117
View File
@@ -1,119 +1,104 @@
define('home/info', function (require, exports, module) { define('home/info', function(require, exports, module) {
var _ = require('lib/underscore'); var _ = require('lib/underscore');
var $ = require('lib/zepto_pj'); var $ = require('lib/zepto_pj');
var router = require('common/data').router[1];
//渲染数据 var Events = require('lib/events');
var width = document.body.clientWidth; var info = new Events();
var wrapper = $('#SN_TPL'); var wrapper = $('#SN_TPL');
var tpl = $('#tpl').html(); var tpl = $('#tpl').html();
var data = { //隐藏和显示
width: width - 20, var SN_info_btn = $('#SN_info_btn');
tui_width: width - 140, var SN_info = $('.SN_info');
list: [ var SN_info_item = $('.SN_info_item');
{ SN_info_btn.on('click', function() {
name: '苏州' if (parseInt(SN_info.css('height')) > 100) {
}, SN_info.css('height', '25px');
{ $('.SN_info_btn_icon').css('fontSize', '20px');
name: '上海' SN_info_item.hide();
}, } else {
{ SN_info.css('height', '130px');
name: '南京' SN_info_item.show();
}, $('.SN_info_btn_icon').css('fontSize', '17px');
{ }
name: '苏州' });
},
{ //外部触发
name: '上海' info.on('refresh', function(){
}, var width = document.body.clientWidth;
{ var items = info.get('list');
name: '南京' var router = info.get('router');
}
] var data = {
}; width: width - 20,
tui_width: width - 140,
var html = _.template(tpl)(data); list: router,
wrapper.html(html); data: items
};
//动画特效 var html = _.template(tpl)(data);
var wrapperContent = $('.SN_info_wrapper'); wrapper.html(html);
var wholeLength = width * data.list.length;
wrapper.css('width', wholeLength); //使用动画
var wrapperContent = $('.SN_info_wrapper');
//记录初始位置 var wholeLength = width * data.list.length;
var startX = 0; wrapper.css('width', wholeLength);
wrapperContent.on('touchstart', function (e) {
startX = e.changedTouches[0].clientX; //默认隐藏在底部
}); SN_info.fadeIn();//加载
SN_info.css('height', '25px');
wrapperContent.on('touchend', endTouch); $('.SN_info_btn_icon').css('fontSize', '20px');
SN_info_item.hide();
//隐藏和显示
var SN_info_btn = $('#SN_info_btn'); //记录初始位置
var SN_info = $('.SN_info'); var startX = 0;
var SN_info_item = $('.SN_info_item'); wrapperContent.on('touchstart', function(e) {
startX = e.changedTouches[0].clientX;
SN_info_btn.on('click', function(){ });
if(parseInt(SN_info.css('height')) > 100){ wrapperContent.on('touchend', endTouch);
SN_info.css('height', '25px');
$('.SN_info_btn_icon').css('fontSize', '20px'); //动画
SN_info_item.hide(); function endTouch(e) {
}else{ var dis = e.changedTouches[0].clientX - startX;
SN_info.css('height', '130px'); //获取当前translate3d的位置
SN_info_item.show(); var transform = wrapperContent.css('transform') || wrapperContent.css('-webkit-transform');
$('.SN_info_btn_icon').css('fontSize', '17px'); var currentPos = parseInt(transform.split(',')[0].split('(')[1]);
}
}); //移动
if (Math.abs(dis) > 20) {
//左移
function endTouch(e){ if (dis < -20) {
var dis = e.changedTouches[0].clientX - startX; var w = 0;
//获取当前translate3d的位置 var handle = setInterval(function() {
var transform = wrapperContent.css('transform') || wrapperContent.css('-webkit-transform'); w += width / 8;
var currentPos = parseInt(transform.split(',')[0].split('(')[1]); if (w <= width && Math.abs(currentPos) < (wholeLength - width - 10)) {
console.log(currentPos); var newX = (currentPos - w);
//移动 wrapperContent.css('transform', 'translate3d(' + newX + 'px, 0px, 0px)');
if (Math.abs(dis) > 20) { wrapperContent.css('-webkit-transform', 'translate3d(' + newX + 'px, 0px, 0px)');
//左移 } else {
if (dis < -20) { clearInterval(handle);
var w = 0; }
var handle = setInterval(function () {
w += width/8; }, 30);
if (w <= width && Math.abs(currentPos) < (wholeLength - width - 10)) { }
var newX = (currentPos - w);
wrapperContent.css('transform', 'translate3d(' + newX + 'px, 0px, 0px)'); //右移
wrapperContent.css('-webkit-transform', 'translate3d(' + newX + 'px, 0px, 0px)'); if (dis > 20) {
} else { var w = 0;
clearInterval(handle); var handle = setInterval(function() {
} w += width / 8;
if (w <= width && Math.abs(currentPos) > 10) {
}, 30); var newX = (currentPos + w);
} wrapperContent.css('transform', 'translate3d(' + newX + 'px, 0px, 0px)');
wrapperContent.css('-webkit-transform', 'translate3d(' + newX + 'px, 0px, 0px)');
//右移 } else {
if (dis > 20) { clearInterval(handle);
var w = 0; }
var handle = setInterval(function () { }, 30);
w += width/8; }
if (w <= width && Math.abs(currentPos) > 10) { }
var newX = (currentPos + w); }
wrapperContent.css('transform', 'translate3d(' + newX + 'px, 0px, 0px)');
wrapperContent.css('-webkit-transform', 'translate3d(' + newX + 'px, 0px, 0px)');
} else {
clearInterval(handle);
}
}, 30);
}
}
}
});
});
return info;
});
+13
View File
@@ -4,6 +4,7 @@ define('home/search', function(require, exports, module){
var $ = require('lib/zepto_pj'); var $ = require('lib/zepto_pj');
var map = require('home/map'); var map = require('home/map');
var events = require('home/events'); var events = require('home/events');
var info = require('home/info');
var routers = require('common/data').router; var routers = require('common/data').router;
var input = $('#search_input_text'); var input = $('#search_input_text');
var btn = $('.search_btn'); var btn = $('.search_btn');
@@ -59,6 +60,12 @@ define('home/search', function(require, exports, module){
events.trigger('carRun'); events.trigger('carRun');
events.trigger('calcuSpeed'); events.trigger('calcuSpeed');
events.trigger('getWeather'); events.trigger('getWeather');
//触发数据填充到推荐列表
setTimeout(function(){
info.set('router', events.get('router'));
info.set('list', events.get('hots'));
info.trigger('refresh');
}, 3000);
}); });
@@ -127,6 +134,12 @@ define('home/search', function(require, exports, module){
events.trigger('carRun'); events.trigger('carRun');
events.trigger('calcuSpeed'); events.trigger('calcuSpeed');
events.trigger('getWeather'); events.trigger('getWeather');
//触发数据填充到推荐列表
setTimeout(function(){
info.set('router', events.get('router'));
info.set('list', events.get('hots'));
info.trigger('refresh');
}, 3000);
} }
} }
+2 -2
View File
@@ -25,11 +25,11 @@ requirejs([
//iPad优先 //iPad优先
if(bIsIpad){ if(bIsIpad){
console.log('ipad'); console.log('ipad');
fastclick(document.body); //fastclick(document.body);
return; return;
} }
if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) { if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
fastclick(document.body); //fastclick(document.body);
console.log('mobile'); console.log('mobile');
} else { } else {
console.log('pc'); console.log('pc');