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;
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
add a comment |
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
add a comment |
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
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
class lightning-web-components remove
asked 9 hours ago
ArthleteArthlete
1,21812 silver badges23 bronze badges
1,21812 silver badges23 bronze badges
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
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);
Thank you. I see that you movedremoveClass()
inside mySomeClass
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 haveget 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
add a comment |
You should not be using document
to access the element. instead use this.template
See important note in the bottom of the documentation:
Docs
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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);
Thank you. I see that you movedremoveClass()
inside mySomeClass
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 haveget 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
add a comment |
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);
Thank you. I see that you movedremoveClass()
inside mySomeClass
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 haveget 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
add a comment |
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);
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);
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 movedremoveClass()
inside mySomeClass
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 haveget 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
add a comment |
Thank you. I see that you movedremoveClass()
inside mySomeClass
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 haveget 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
add a comment |
You should not be using document
to access the element. instead use this.template
See important note in the bottom of the documentation:
Docs
add a comment |
You should not be using document
to access the element. instead use this.template
See important note in the bottom of the documentation:
Docs
add a comment |
You should not be using document
to access the element. instead use this.template
See important note in the bottom of the documentation:
Docs
You should not be using document
to access the element. instead use this.template
See important note in the bottom of the documentation:
Docs
answered 9 hours ago
Glen De MarcosGlen De Marcos
1198 bronze badges
1198 bronze badges
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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