How to restore default scrolling behaviour on arcGIS?












1















I have one issue using a map with arcGIS API:



When the mouse pointer is above the map, default page scrolling is blocked. I know that I can suppress map zooming on scroll with stopPropagation() on mouse-wheel event, but that leads only to disabling zoom. The page still does not move on scroll...



That causes bad user experience, especially when using large / full-screen maps inside a page.



Any idea?










share|improve this question



























    1















    I have one issue using a map with arcGIS API:



    When the mouse pointer is above the map, default page scrolling is blocked. I know that I can suppress map zooming on scroll with stopPropagation() on mouse-wheel event, but that leads only to disabling zoom. The page still does not move on scroll...



    That causes bad user experience, especially when using large / full-screen maps inside a page.



    Any idea?










    share|improve this question

























      1












      1








      1








      I have one issue using a map with arcGIS API:



      When the mouse pointer is above the map, default page scrolling is blocked. I know that I can suppress map zooming on scroll with stopPropagation() on mouse-wheel event, but that leads only to disabling zoom. The page still does not move on scroll...



      That causes bad user experience, especially when using large / full-screen maps inside a page.



      Any idea?










      share|improve this question














      I have one issue using a map with arcGIS API:



      When the mouse pointer is above the map, default page scrolling is blocked. I know that I can suppress map zooming on scroll with stopPropagation() on mouse-wheel event, but that leads only to disabling zoom. The page still does not move on scroll...



      That causes bad user experience, especially when using large / full-screen maps inside a page.



      Any idea?







      javascript scroll mousewheel arcgis-js-api stoppropagation






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 21 '18 at 15:04









      JörgJörg

      82




      82
























          1 Answer
          1






          active

          oldest

          votes


















          0














          Disabling scroll-zooming on the view using code below (like the esri demo here) does not prevent the DOM element wheel event to be triggered which prevent the default page scrolling;



            //this prevent the mapView to zoom on wheel but does not make the page to scroll as wanted
          view.on("mouse-wheel", function(event) {
          // disable mouse wheel scroll zooming on the view
          event.stopPropagation();
          });


          So what you need to do, is to add a wheel event listener on the DOM element that handle the esri wheel event and then do a event.stopImmediatePropagation() so the esri wheel event that cancel the default page scrolling would not be triggered.



          With the API v.4.9 the DOM element that you have to use have the esri-view-surface class



            var viewSurfaceElem = document.getElementsByClassName("esri-view-surface")[0];
          viewSurfaceElem.addEventListener("wheel", function(event) { event.stopImmediatePropagation(); });


          See live demo here: https://codepen.io/anon/pen/bQLwwm






          share|improve this answer


























          • That´s it. Thanks a lot!

            – Jörg
            Nov 23 '18 at 7:13











          • Thank you for your answer. That worked well. Now I have another similar problem: Since I am only able to embed a client´s app via iFrame, there is the same scrollling issue. I could check the '✓ Prevent map scroll' option in the settings, but the page still stops scrolling when the mouse cursor is above the map. Since the iframe is embedded in full screen size, it block page scrolling completely. Any idea how to solve this? Thanks for your help.

            – Jörg
            Feb 2 at 15:47











          • I am not sure to understand the question, can you provide a demo of the problem? From what I understand, won't you just have to add overflow-y: auto; to the iframe css?

            – Below the Radar
            Feb 4 at 12:42













          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53414904%2fhow-to-restore-default-scrolling-behaviour-on-arcgis%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          Disabling scroll-zooming on the view using code below (like the esri demo here) does not prevent the DOM element wheel event to be triggered which prevent the default page scrolling;



            //this prevent the mapView to zoom on wheel but does not make the page to scroll as wanted
          view.on("mouse-wheel", function(event) {
          // disable mouse wheel scroll zooming on the view
          event.stopPropagation();
          });


          So what you need to do, is to add a wheel event listener on the DOM element that handle the esri wheel event and then do a event.stopImmediatePropagation() so the esri wheel event that cancel the default page scrolling would not be triggered.



          With the API v.4.9 the DOM element that you have to use have the esri-view-surface class



            var viewSurfaceElem = document.getElementsByClassName("esri-view-surface")[0];
          viewSurfaceElem.addEventListener("wheel", function(event) { event.stopImmediatePropagation(); });


          See live demo here: https://codepen.io/anon/pen/bQLwwm






          share|improve this answer


























          • That´s it. Thanks a lot!

            – Jörg
            Nov 23 '18 at 7:13











          • Thank you for your answer. That worked well. Now I have another similar problem: Since I am only able to embed a client´s app via iFrame, there is the same scrollling issue. I could check the '✓ Prevent map scroll' option in the settings, but the page still stops scrolling when the mouse cursor is above the map. Since the iframe is embedded in full screen size, it block page scrolling completely. Any idea how to solve this? Thanks for your help.

            – Jörg
            Feb 2 at 15:47











          • I am not sure to understand the question, can you provide a demo of the problem? From what I understand, won't you just have to add overflow-y: auto; to the iframe css?

            – Below the Radar
            Feb 4 at 12:42


















          0














          Disabling scroll-zooming on the view using code below (like the esri demo here) does not prevent the DOM element wheel event to be triggered which prevent the default page scrolling;



            //this prevent the mapView to zoom on wheel but does not make the page to scroll as wanted
          view.on("mouse-wheel", function(event) {
          // disable mouse wheel scroll zooming on the view
          event.stopPropagation();
          });


          So what you need to do, is to add a wheel event listener on the DOM element that handle the esri wheel event and then do a event.stopImmediatePropagation() so the esri wheel event that cancel the default page scrolling would not be triggered.



          With the API v.4.9 the DOM element that you have to use have the esri-view-surface class



            var viewSurfaceElem = document.getElementsByClassName("esri-view-surface")[0];
          viewSurfaceElem.addEventListener("wheel", function(event) { event.stopImmediatePropagation(); });


          See live demo here: https://codepen.io/anon/pen/bQLwwm






          share|improve this answer


























          • That´s it. Thanks a lot!

            – Jörg
            Nov 23 '18 at 7:13











          • Thank you for your answer. That worked well. Now I have another similar problem: Since I am only able to embed a client´s app via iFrame, there is the same scrollling issue. I could check the '✓ Prevent map scroll' option in the settings, but the page still stops scrolling when the mouse cursor is above the map. Since the iframe is embedded in full screen size, it block page scrolling completely. Any idea how to solve this? Thanks for your help.

            – Jörg
            Feb 2 at 15:47











          • I am not sure to understand the question, can you provide a demo of the problem? From what I understand, won't you just have to add overflow-y: auto; to the iframe css?

            – Below the Radar
            Feb 4 at 12:42
















          0












          0








          0







          Disabling scroll-zooming on the view using code below (like the esri demo here) does not prevent the DOM element wheel event to be triggered which prevent the default page scrolling;



            //this prevent the mapView to zoom on wheel but does not make the page to scroll as wanted
          view.on("mouse-wheel", function(event) {
          // disable mouse wheel scroll zooming on the view
          event.stopPropagation();
          });


          So what you need to do, is to add a wheel event listener on the DOM element that handle the esri wheel event and then do a event.stopImmediatePropagation() so the esri wheel event that cancel the default page scrolling would not be triggered.



          With the API v.4.9 the DOM element that you have to use have the esri-view-surface class



            var viewSurfaceElem = document.getElementsByClassName("esri-view-surface")[0];
          viewSurfaceElem.addEventListener("wheel", function(event) { event.stopImmediatePropagation(); });


          See live demo here: https://codepen.io/anon/pen/bQLwwm






          share|improve this answer















          Disabling scroll-zooming on the view using code below (like the esri demo here) does not prevent the DOM element wheel event to be triggered which prevent the default page scrolling;



            //this prevent the mapView to zoom on wheel but does not make the page to scroll as wanted
          view.on("mouse-wheel", function(event) {
          // disable mouse wheel scroll zooming on the view
          event.stopPropagation();
          });


          So what you need to do, is to add a wheel event listener on the DOM element that handle the esri wheel event and then do a event.stopImmediatePropagation() so the esri wheel event that cancel the default page scrolling would not be triggered.



          With the API v.4.9 the DOM element that you have to use have the esri-view-surface class



            var viewSurfaceElem = document.getElementsByClassName("esri-view-surface")[0];
          viewSurfaceElem.addEventListener("wheel", function(event) { event.stopImmediatePropagation(); });


          See live demo here: https://codepen.io/anon/pen/bQLwwm







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 22 '18 at 14:58

























          answered Nov 21 '18 at 16:03









          Below the RadarBelow the Radar

          3,24453387




          3,24453387













          • That´s it. Thanks a lot!

            – Jörg
            Nov 23 '18 at 7:13











          • Thank you for your answer. That worked well. Now I have another similar problem: Since I am only able to embed a client´s app via iFrame, there is the same scrollling issue. I could check the '✓ Prevent map scroll' option in the settings, but the page still stops scrolling when the mouse cursor is above the map. Since the iframe is embedded in full screen size, it block page scrolling completely. Any idea how to solve this? Thanks for your help.

            – Jörg
            Feb 2 at 15:47











          • I am not sure to understand the question, can you provide a demo of the problem? From what I understand, won't you just have to add overflow-y: auto; to the iframe css?

            – Below the Radar
            Feb 4 at 12:42





















          • That´s it. Thanks a lot!

            – Jörg
            Nov 23 '18 at 7:13











          • Thank you for your answer. That worked well. Now I have another similar problem: Since I am only able to embed a client´s app via iFrame, there is the same scrollling issue. I could check the '✓ Prevent map scroll' option in the settings, but the page still stops scrolling when the mouse cursor is above the map. Since the iframe is embedded in full screen size, it block page scrolling completely. Any idea how to solve this? Thanks for your help.

            – Jörg
            Feb 2 at 15:47











          • I am not sure to understand the question, can you provide a demo of the problem? From what I understand, won't you just have to add overflow-y: auto; to the iframe css?

            – Below the Radar
            Feb 4 at 12:42



















          That´s it. Thanks a lot!

          – Jörg
          Nov 23 '18 at 7:13





          That´s it. Thanks a lot!

          – Jörg
          Nov 23 '18 at 7:13













          Thank you for your answer. That worked well. Now I have another similar problem: Since I am only able to embed a client´s app via iFrame, there is the same scrollling issue. I could check the '✓ Prevent map scroll' option in the settings, but the page still stops scrolling when the mouse cursor is above the map. Since the iframe is embedded in full screen size, it block page scrolling completely. Any idea how to solve this? Thanks for your help.

          – Jörg
          Feb 2 at 15:47





          Thank you for your answer. That worked well. Now I have another similar problem: Since I am only able to embed a client´s app via iFrame, there is the same scrollling issue. I could check the '✓ Prevent map scroll' option in the settings, but the page still stops scrolling when the mouse cursor is above the map. Since the iframe is embedded in full screen size, it block page scrolling completely. Any idea how to solve this? Thanks for your help.

          – Jörg
          Feb 2 at 15:47













          I am not sure to understand the question, can you provide a demo of the problem? From what I understand, won't you just have to add overflow-y: auto; to the iframe css?

          – Below the Radar
          Feb 4 at 12:42







          I am not sure to understand the question, can you provide a demo of the problem? From what I understand, won't you just have to add overflow-y: auto; to the iframe css?

          – Below the Radar
          Feb 4 at 12:42






















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53414904%2fhow-to-restore-default-scrolling-behaviour-on-arcgis%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          MongoDB - Not Authorized To Execute Command

          How to fix TextFormField cause rebuild widget in Flutter

          in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith