When writing a script with vertical scrolling, I ran into the problem that the scrolling is not in the right place. I have a card. There are various geo-objects on it. There is a block to the right of the map. There are many blocks with a description of these geo-objects. I want to automatically scroll to the desired description when clicking on a geo object in the right block. Here is the address of the site to make it clearer: an example of implementation . I cite a part of the code with which this situation turned out:
.add('click', function (e) {//ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° Π³Π΅ΠΎΠΎΠ±ΡΠ΅ΠΊΡ var map = Drupal.geofieldYmap.data['geofield-ymap-catalog-page'].map; //ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΊΠ°ΡΡΡ var result = ymaps.geoQuery(map.geoObjects); //ΠΏΠΎΠ»ΡΡΠ°Ρ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π° ΠΊΠ°ΡΡΠ΅ var res = document.getElementsByClassName("view-catalog")[1].getElementsByClassName("views-row"); //ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ, ΡΠΏΡΠ°Π²Π° ΠΎΡ ΠΊΠ°ΡΡΡ if(existchange.length != 0){ //Π΅ΡΠ»ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠ»ΠΈΠΊ Π·Π° ΡΠ΅ΡΡΠΈΡ for(var i=0;i<existchange.length;i++) res[existchange[i]].style.background = 'none'; //Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ ΡΡΠ°ΡΠΎΠ΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ» ΡΠ°Π½Π΅Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ ΠΊΠ»ΠΈΠΊ for(var i = 0; i< result._objects.length; i++){ //ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΠΉΠ΄ΡΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ if(String(result._objects[i].properties._data.hintContent) == res[existchange[0]].getElementsByClassName("views-field-title")[0].getElementsByTagName("span")[0].innerHTML){ //ΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ(ΡΠ΅) ΠΌΠ½Π΅ result._objects[i].options.set('preset', OldPresetByClick); //Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ ΡΡΠ°ΡΡΠΉ ΠΏΡΠ΅ΡΠ΅Ρ } } } existchange = []; //ΠΎΠ±Π½ΡΠ»ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΡ
Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΡΡΠ°ΡΡΡ
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ for(var i=0; i<res.length;i++){ //ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΠΉΠ΄ΡΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΠΌ //ΠΈΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠΊ ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Ρ
ΠΎΠΆΡ ΡΠ°ΠΊΠΎΠΉ(ΠΈΠ΅) if(String(e.get('target').properties._data.hintContent) == res[i].getElementsByClassName("views-field-title")[0].getElementsByTagName("span")[0].innerHTML) existchange.push(i);//Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠΎΠ³ΠΎ(ΠΈΡ
) ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ(ΠΈΠΉ) } res[existchange[0]].id = 'clickhover'; //Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΊΠΎΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΡ Π΄ΠΎ Π½Π΅Π³ΠΎ for(var i=0;i<existchange.length;i++) res[existchange[i]].style.background = 'rgba(102, 102, 102, 0.75)'; //ΠΌΠ΅Π½ΡΡ ΡΡΠΈΠ»Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ if(e.get('target').options._options.preset != 'custom#blockhover'){ //Π΅ΡΠ»ΠΈ ΠΊΠ»ΠΈΠΊ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ Π½Π΅ Π²ΡΠΎΡΠΎΠΉ ΡΠ°Π· ΠΏΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ Π³Π΅ΠΎΠΎΠ±ΡΠ΅ΠΊΡΡ OldPresetByClick = OldPresetByHover; //Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ ΠΏΡΠ΅ΡΠ΅Ρ ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄ΠΎ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΌΡΡΠΈ $('#block-views-catalog-block-1').animate({scrollTop: $('#clickhover').offset().top}, 1300); //ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Ρ Π΄ΠΎ ΡΠΊΠΎΡΡ } for(var i = 0; i< result._objects.length; i++){ //ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΠΉΠ΄ΡΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ //ΠΏΡΠΎΠ²Π΅ΡΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π° ΠΊΠ°ΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠΎΠΌΡ Π»ΠΎΡΡ if(result._objects[i].properties._data.hintContent == e.get('target').properties._data.hintContent){ if(e.get('target').options._options.preset != 'custom#blockhover') //Π΅ΡΠ»ΠΈ ΠΊΠ»ΠΈΠΊ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ Π½Π΅ Π²ΡΠΎΡΠΎΠΉ ΡΠ°Π· ΠΏΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ Π³Π΅ΠΎΠΎΠ±ΡΠ΅ΠΊΡΡ OldPresetByClick = OldPresetByHover; //Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ ΠΏΡΠ΅ΡΠ΅Ρ ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄ΠΎ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΌΡΡΠΈ result._objects[i].options.set('preset', 'custom#blockhover'); //ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π° ΠΊΠ°ΡΡΠ΅ ΠΌΠ΅Π½ΡΡ ΠΏΡΠ΅ΡΠ΅Ρ } } }); Please tell me why scrolling works incorrectly and how can this be corrected?