1
私は、マップ上のサイドパネルや多角形で画像間の相互作用を作るしようとしていますので、サイドパネルがmousescrollを経由して移動したときに、同じ名前の対応するポリゴンが焦点になります。Mapboxのサイドパネルとポリゴンの相互作用
、必要に応じて私のcurrent attemptがmousescrollsに応答しません。私が取ったものよりも別のアプローチがありますか?
$('.sidebar').bind('mousewheel', function(e){
$("#help").html(' ');
var winTop = $(this).scrollTop();
var $imgs = $('.sidebar').find('img');
var $midElement;
var distance = null;
var currDistance = 0;
var minHeight = $(window).scrollTop();
var maxHeight = $(window).height();
var img_h=$('.sidebar').find('img');
var img_h1=img_h.height()/2;
var middleHeightA = (maxHeight + minHeight)/2;
var middleHeight = middleHeightA - img_h1;
$.each($imgs, function() {
currDistance = Math.abs(middleHeight - $(this).position().top);
if (distance == null || currDistance < distance) {
/*$midElement = $(element);*/
distance = currDistance;
for (j=0;j<polygons1.length;j++) {
polygons1[j].setStyle({color: '#fff',fillColor:'#000', weight:'1px'});
}
var scrid=$(this).attr('id');
for (j=0;j<help.length;j++) {
id=help[j];
if(id==scrid)
{
polygons1[j].openPopup(polygons1[j].getBounds().getCenter());
map.setView(polygons1[j].getBounds().getCenter(),10);
polygons1[j].setStyle({color: '#e72f2a',fillColor:'#e72f2a',weight:'7px'});
$('.thumbnail').removeClass('active');
$('.'+scrid).addClass('active');
}
}
}
var scrid=$(this).attr('id');
for (j=0;j<help.length;j++) {
id=help[j];
if(id==scrid)
{
polygons1[j].openPopup(polygons1[j].getBounds().getCenter());
map.setView(polygons1[j].getBounds().getCenter(),10);
polygons1[j].setStyle({color: '#e72f2a',fillColor:'#e72f2a',weight:'7px'});
}
}
}*/
Chrome 49.0.2623.110では動作しているようです(さまざまな機能がマウスホイールでスクロールするとハイライトされます)。マウスホイールが動くたびに焦点を合わせるので、少し跳ね上がりますが、応答します。ありがとうございます。 – nathansnider
私は何が欠けているのだろうかと思うので、行動はより速く、より流動的です。 – user259124
'setView'と' openPopup'をあまりにも頻繁に呼び出すことによって俊敏さが増すようです。あなたは実際にハイライトルーチンを使ってforループを2回実行しますか、それともコピーペーストエラーですか? – nathansnider