LWC: Removing a class name on scrollLWC - How to get label name of buttonsHyperlink record name LWC datatableLWC fetching wrapper classHow to target LWC by name attribute?LWC: Using “if” to condition CSS class dynamically in LWCLWC property is not reactiveUnable to load 3rd party lib in Lightning Web ComponentLightning Web Component (lwc): Passing multiple parameters to a classTroubleshooting DYMO Label Printer Web Service as Static ResourceLightning Web Component not loading while using Lightning-Input with Wrapper class variable

Help me, I hate squares!

Using Python in a Bash Script

Gold Battle KoTH

Avoiding Implicit Conversion in Constructor. Explicit keyword doesn't help here

UX writing: When to use "we"?

How did Biff return to 2015 from 1955 without a lightning strike?

Would people understand me speaking German all over Europe?

How to structure presentation to avoid getting questions that will be answered later in the presentation?

Is it unprofessional to mention your cover letter and resume are best viewed in Chrome?

What is the oxidation state of Mn in HMn(CO)5?

Move arrows along a contour

Create two random teams from a list of players

How would a lunar colony attack Earth?

How to prevent a single-element caster from being useless against immune foes?

Can you remove a blindfold using the Telekinesis spell?

Russian pronunciation of /etc (a directory)

Academic progression in Germany, what happens after a postdoc? What is the next step?

Why is Searing Smite not listed in the Roll20 Spell books?

What does 「ちんちんかいかい」 mean?

Rampant sharing of authorship among colleagues in the name of "collaboration". Is not taking part in it a death knell for a future in academia?

Numerically Stable IIR filter

Best Ergonomic Design for a handheld ranged weapon

Applications of pure mathematics in operations research

Applying for mortgage when living together but only one will be on the mortgage



LWC: Removing a class name on scroll


LWC - How to get label name of buttonsHyperlink record name LWC datatableLWC fetching wrapper classHow to target LWC by name attribute?LWC: Using “if” to condition CSS class dynamically in LWCLWC property is not reactiveUnable to load 3rd party lib in Lightning Web ComponentLightning Web Component (lwc): Passing multiple parameters to a classTroubleshooting DYMO Label Printer Web Service as Static ResourceLightning Web Component not loading while using Lightning-Input with Wrapper class variable






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















I am trying to remove a class name once the user has scrolled a certain amount.



In my JS file for a LWC I have the following:



import LightningElement, wire, api, track from 'lwc';

function removeClass()
document.getElementsByClassName('outter-wrapper')[0].remove('outter-wrapper');


export default class SomeClass extends LightningElement

// some other code

connectedCallback()
window.addEventListener('scroll', function()
if (window.pageYOffset > 260)
removeClass();






I get an error in the console saying Cannot read property 'remove' of undefined.



When I do execute document.getElementsByClassName('outter-wrapper')[0].remove('outter-wrapper'); in the console it works no problem.



If this is the JS file for the LWC which contains a div with a class name outter-wrapper how come it cannot find it?










share|improve this question






























    1















    I am trying to remove a class name once the user has scrolled a certain amount.



    In my JS file for a LWC I have the following:



    import LightningElement, wire, api, track from 'lwc';

    function removeClass()
    document.getElementsByClassName('outter-wrapper')[0].remove('outter-wrapper');


    export default class SomeClass extends LightningElement

    // some other code

    connectedCallback()
    window.addEventListener('scroll', function()
    if (window.pageYOffset > 260)
    removeClass();






    I get an error in the console saying Cannot read property 'remove' of undefined.



    When I do execute document.getElementsByClassName('outter-wrapper')[0].remove('outter-wrapper'); in the console it works no problem.



    If this is the JS file for the LWC which contains a div with a class name outter-wrapper how come it cannot find it?










    share|improve this question


























      1












      1








      1








      I am trying to remove a class name once the user has scrolled a certain amount.



      In my JS file for a LWC I have the following:



      import LightningElement, wire, api, track from 'lwc';

      function removeClass()
      document.getElementsByClassName('outter-wrapper')[0].remove('outter-wrapper');


      export default class SomeClass extends LightningElement

      // some other code

      connectedCallback()
      window.addEventListener('scroll', function()
      if (window.pageYOffset > 260)
      removeClass();






      I get an error in the console saying Cannot read property 'remove' of undefined.



      When I do execute document.getElementsByClassName('outter-wrapper')[0].remove('outter-wrapper'); in the console it works no problem.



      If this is the JS file for the LWC which contains a div with a class name outter-wrapper how come it cannot find it?










      share|improve this question














      I am trying to remove a class name once the user has scrolled a certain amount.



      In my JS file for a LWC I have the following:



      import LightningElement, wire, api, track from 'lwc';

      function removeClass()
      document.getElementsByClassName('outter-wrapper')[0].remove('outter-wrapper');


      export default class SomeClass extends LightningElement

      // some other code

      connectedCallback()
      window.addEventListener('scroll', function()
      if (window.pageYOffset > 260)
      removeClass();






      I get an error in the console saying Cannot read property 'remove' of undefined.



      When I do execute document.getElementsByClassName('outter-wrapper')[0].remove('outter-wrapper'); in the console it works no problem.



      If this is the JS file for the LWC which contains a div with a class name outter-wrapper how come it cannot find it?







      class lightning-web-components remove






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 9 hours ago









      ArthleteArthlete

      1,21812 silver badges23 bronze badges




      1,21812 silver badges23 bronze badges























          2 Answers
          2






          active

          oldest

          votes


















          4














          Firstly, document. is not allowed in LWC because of locker-service. You should be using this.template. to identify the elements in HTML.



          Instead, you can add something like this:



          import LightningElement, wire, api, track from 'lwc';

          export default class SomeClass extends LightningElement

          // some other code

          connectedCallback()
          window.addEventListener('scroll', function()
          if (window.pageYOffset > 260)
          this.removeClass();

          );


          removeClass()
          this.template.querySelectorAll('.outter-wrapper')[0].remove('outter-wrapper');




          Note (based on comments):



          When you declare the function outside class, you are out of context of class and so this will be undefined and so you cannot access template. And document is exposed through secure object and so many methods on document will be unavailable. Still if you want to use functions outside class, you will need to pass the class reference via parameter like below:



          import LightningElement from 'lwc';

          function check(cls)
          cls.template.querySelector('.myclass').remove('myclass');


          export default class Poc extends LightningElement
          remove()
          check(this);







          share|improve this answer



























          • Thank you. I see that you moved removeClass() inside my SomeClass class. I thought if the function is not to be referenced from the component then I should probably not put it inside the class. Is my trail of thought wrong?

            – Arthlete
            9 hours ago






          • 1





            adding in answer

            – salesforce-sas
            9 hours ago











          • Thanks for the update! That makes full sense. What if I want to use a HTML directive. So for example if the cmp file had <div class=myClass/> and then in the js file I have get myClass() return window.pageYOffset < 260 ? 'classOne': 'classTwo'; . Is there a way to apply this logic making it re-evaluate on scroll of the page?

            – Arthlete
            9 hours ago



















          1














          You should not be using document to access the element. instead use this.template



          See important note in the bottom of the documentation:
          Docs






          share|improve this answer



























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "459"
            ;
            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: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            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%2fsalesforce.stackexchange.com%2fquestions%2f272015%2flwc-removing-a-class-name-on-scroll%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            4














            Firstly, document. is not allowed in LWC because of locker-service. You should be using this.template. to identify the elements in HTML.



            Instead, you can add something like this:



            import LightningElement, wire, api, track from 'lwc';

            export default class SomeClass extends LightningElement

            // some other code

            connectedCallback()
            window.addEventListener('scroll', function()
            if (window.pageYOffset > 260)
            this.removeClass();

            );


            removeClass()
            this.template.querySelectorAll('.outter-wrapper')[0].remove('outter-wrapper');




            Note (based on comments):



            When you declare the function outside class, you are out of context of class and so this will be undefined and so you cannot access template. And document is exposed through secure object and so many methods on document will be unavailable. Still if you want to use functions outside class, you will need to pass the class reference via parameter like below:



            import LightningElement from 'lwc';

            function check(cls)
            cls.template.querySelector('.myclass').remove('myclass');


            export default class Poc extends LightningElement
            remove()
            check(this);







            share|improve this answer



























            • Thank you. I see that you moved removeClass() inside my SomeClass class. I thought if the function is not to be referenced from the component then I should probably not put it inside the class. Is my trail of thought wrong?

              – Arthlete
              9 hours ago






            • 1





              adding in answer

              – salesforce-sas
              9 hours ago











            • Thanks for the update! That makes full sense. What if I want to use a HTML directive. So for example if the cmp file had <div class=myClass/> and then in the js file I have get myClass() return window.pageYOffset < 260 ? 'classOne': 'classTwo'; . Is there a way to apply this logic making it re-evaluate on scroll of the page?

              – Arthlete
              9 hours ago
















            4














            Firstly, document. is not allowed in LWC because of locker-service. You should be using this.template. to identify the elements in HTML.



            Instead, you can add something like this:



            import LightningElement, wire, api, track from 'lwc';

            export default class SomeClass extends LightningElement

            // some other code

            connectedCallback()
            window.addEventListener('scroll', function()
            if (window.pageYOffset > 260)
            this.removeClass();

            );


            removeClass()
            this.template.querySelectorAll('.outter-wrapper')[0].remove('outter-wrapper');




            Note (based on comments):



            When you declare the function outside class, you are out of context of class and so this will be undefined and so you cannot access template. And document is exposed through secure object and so many methods on document will be unavailable. Still if you want to use functions outside class, you will need to pass the class reference via parameter like below:



            import LightningElement from 'lwc';

            function check(cls)
            cls.template.querySelector('.myclass').remove('myclass');


            export default class Poc extends LightningElement
            remove()
            check(this);







            share|improve this answer



























            • Thank you. I see that you moved removeClass() inside my SomeClass class. I thought if the function is not to be referenced from the component then I should probably not put it inside the class. Is my trail of thought wrong?

              – Arthlete
              9 hours ago






            • 1





              adding in answer

              – salesforce-sas
              9 hours ago











            • Thanks for the update! That makes full sense. What if I want to use a HTML directive. So for example if the cmp file had <div class=myClass/> and then in the js file I have get myClass() return window.pageYOffset < 260 ? 'classOne': 'classTwo'; . Is there a way to apply this logic making it re-evaluate on scroll of the page?

              – Arthlete
              9 hours ago














            4












            4








            4







            Firstly, document. is not allowed in LWC because of locker-service. You should be using this.template. to identify the elements in HTML.



            Instead, you can add something like this:



            import LightningElement, wire, api, track from 'lwc';

            export default class SomeClass extends LightningElement

            // some other code

            connectedCallback()
            window.addEventListener('scroll', function()
            if (window.pageYOffset > 260)
            this.removeClass();

            );


            removeClass()
            this.template.querySelectorAll('.outter-wrapper')[0].remove('outter-wrapper');




            Note (based on comments):



            When you declare the function outside class, you are out of context of class and so this will be undefined and so you cannot access template. And document is exposed through secure object and so many methods on document will be unavailable. Still if you want to use functions outside class, you will need to pass the class reference via parameter like below:



            import LightningElement from 'lwc';

            function check(cls)
            cls.template.querySelector('.myclass').remove('myclass');


            export default class Poc extends LightningElement
            remove()
            check(this);







            share|improve this answer















            Firstly, document. is not allowed in LWC because of locker-service. You should be using this.template. to identify the elements in HTML.



            Instead, you can add something like this:



            import LightningElement, wire, api, track from 'lwc';

            export default class SomeClass extends LightningElement

            // some other code

            connectedCallback()
            window.addEventListener('scroll', function()
            if (window.pageYOffset > 260)
            this.removeClass();

            );


            removeClass()
            this.template.querySelectorAll('.outter-wrapper')[0].remove('outter-wrapper');




            Note (based on comments):



            When you declare the function outside class, you are out of context of class and so this will be undefined and so you cannot access template. And document is exposed through secure object and so many methods on document will be unavailable. Still if you want to use functions outside class, you will need to pass the class reference via parameter like below:



            import LightningElement from 'lwc';

            function check(cls)
            cls.template.querySelector('.myclass').remove('myclass');


            export default class Poc extends LightningElement
            remove()
            check(this);








            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited 9 hours ago

























            answered 9 hours ago









            salesforce-sassalesforce-sas

            2,67419 bronze badges




            2,67419 bronze badges















            • Thank you. I see that you moved removeClass() inside my SomeClass class. I thought if the function is not to be referenced from the component then I should probably not put it inside the class. Is my trail of thought wrong?

              – Arthlete
              9 hours ago






            • 1





              adding in answer

              – salesforce-sas
              9 hours ago











            • Thanks for the update! That makes full sense. What if I want to use a HTML directive. So for example if the cmp file had <div class=myClass/> and then in the js file I have get myClass() return window.pageYOffset < 260 ? 'classOne': 'classTwo'; . Is there a way to apply this logic making it re-evaluate on scroll of the page?

              – Arthlete
              9 hours ago


















            • Thank you. I see that you moved removeClass() inside my SomeClass class. I thought if the function is not to be referenced from the component then I should probably not put it inside the class. Is my trail of thought wrong?

              – Arthlete
              9 hours ago






            • 1





              adding in answer

              – salesforce-sas
              9 hours ago











            • Thanks for the update! That makes full sense. What if I want to use a HTML directive. So for example if the cmp file had <div class=myClass/> and then in the js file I have get myClass() return window.pageYOffset < 260 ? 'classOne': 'classTwo'; . Is there a way to apply this logic making it re-evaluate on scroll of the page?

              – Arthlete
              9 hours ago

















            Thank you. I see that you moved removeClass() inside my SomeClass class. I thought if the function is not to be referenced from the component then I should probably not put it inside the class. Is my trail of thought wrong?

            – Arthlete
            9 hours ago





            Thank you. I see that you moved removeClass() inside my SomeClass class. I thought if the function is not to be referenced from the component then I should probably not put it inside the class. Is my trail of thought wrong?

            – Arthlete
            9 hours ago




            1




            1





            adding in answer

            – salesforce-sas
            9 hours ago





            adding in answer

            – salesforce-sas
            9 hours ago













            Thanks for the update! That makes full sense. What if I want to use a HTML directive. So for example if the cmp file had <div class=myClass/> and then in the js file I have get myClass() return window.pageYOffset < 260 ? 'classOne': 'classTwo'; . Is there a way to apply this logic making it re-evaluate on scroll of the page?

            – Arthlete
            9 hours ago






            Thanks for the update! That makes full sense. What if I want to use a HTML directive. So for example if the cmp file had <div class=myClass/> and then in the js file I have get myClass() return window.pageYOffset < 260 ? 'classOne': 'classTwo'; . Is there a way to apply this logic making it re-evaluate on scroll of the page?

            – Arthlete
            9 hours ago














            1














            You should not be using document to access the element. instead use this.template



            See important note in the bottom of the documentation:
            Docs






            share|improve this answer





























              1














              You should not be using document to access the element. instead use this.template



              See important note in the bottom of the documentation:
              Docs






              share|improve this answer



























                1












                1








                1







                You should not be using document to access the element. instead use this.template



                See important note in the bottom of the documentation:
                Docs






                share|improve this answer













                You should not be using document to access the element. instead use this.template



                See important note in the bottom of the documentation:
                Docs







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 9 hours ago









                Glen De MarcosGlen De Marcos

                1198 bronze badges




                1198 bronze badges






























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Salesforce Stack Exchange!


                    • 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%2fsalesforce.stackexchange.com%2fquestions%2f272015%2flwc-removing-a-class-name-on-scroll%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

                    Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

                    Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

                    Ласкавець круглолистий Зміст Опис | Поширення | Галерея | Примітки | Посилання | Навігаційне меню58171138361-22960890446Bupleurum rotundifoliumEuro+Med PlantbasePlants of the World Online — Kew ScienceGermplasm Resources Information Network (GRIN)Ласкавецькн. VI : Літери Ком — Левиправивши або дописавши її