简体   繁体   English

如何根据用户当前所在的页面部分更改链接的颜色?

[英]how to color change links according to page section user is currently on?

I have 4 sections horizontally placed in a container and a fixed navbar on top that has tabs for users to get to different sections of the page.我有 4 个部分水平放置在一个容器中,顶部有一个固定的导航栏,它有供用户访问页面不同部分的选项卡。 I'm trying to make the color of text white when they are on the 'show' tab but if the user clicks on any other tab, I wanted the link to turn white.当它们位于“显示”选项卡上时,我试图将文本颜色设为白色,但如果用户单击任何其他选项卡,我希望链接变为白色。 I thought of using JS to add/remove a class 'white-visible' or 'black-visible' depending on button click but not sure how to implement this in the quickest way.我想使用 JS 添加/删除 class 'white-visible' 或 'black-visible' 取决于按钮点击但不确定如何以最快的方式实现它。

Here is my code-这是我的代码-

HTML HTML

<div class="main-info">
      <div class="nav-container">
         <div class="nav-bar">

         <a href="#show" data-tab-target="#show" class="tab  white-visible">Show</a>
        <a href="#about" data-tab-target="#about" class="tab  white-visible">About</a>
        <a href="#lookbook" data-tab-target="#lookbook" class="tab  white-visible">Lookbook</a>
        <a href="#process" data-tab-target="#process" class="tab white-visible">Process</a>

     </div>
     <div class="info overlay">
        <div class="text">
           <a href="#">MA</a>
           <a href="#">Coming Soon</a>
           <a href="#">BA</a>
        </div>
        <a href="index.html" class="info-back">Back</a>
     </div>
  </div>
  <div class="tab-content">
     <span>
        <div id="show" data-tab-content class="active">
           <div class="video-wrapper">
              <video width="1920" height="1080" autoplay loop muted>
                 <source src="MA/SAMSON LEUNG MA COLLECTION AW20.mp4" type="video/mp4">
              </video>
           </div>
           <!-- video catwalk -->

        </div>
        <div id="about" data-tab-content>
           <div class="about-text">
           </div>
           <!-- about text -sum stills -->

        </div>
        <div id="lookbook" data-tab-content>
           <div class="ma-about">
              <h1>1dk</h1>
           </div>
           <!-- lookbook - videos + stills -->

        </div>
        <div id="process" data-tab-content>
           <div class="ma-">
              <h1>ndkj</h1>
              <!-- lookbook continues -->
           </div>
        </div>
     </span>
  </div>

CSS CSS

.nav-bar a {
   font-family: Helvetica, sans-serif;
   font-weight: bold;
   font-size: 1rem;
   text-decoration: none;
}

.black-visible {
   color: black;
}

.white-visible {
   color: var(--grCol3);
}

.tab:hover {
   cursor: pointer;
   opacity: 0.6;
}

.tab.active  {
   opacity: 0.6;
}



.info {
   width: 90vw;
   height: 10vh;
   left: 5vw;
   position: absolute;
   top: 80vh;
   display: flex;
   justify-content: space-between;
   align-items: flex-end;
}

.info a {
   font-family: Helvetica, sans-serif;
   text-transform: uppercase;
   font-weight: bold;
   font-size: 1.2rem;
   color: var(--grCol3);
   text-decoration: none;
   /* border: 1px solid teal; */
}

.text {
   width: 30%;
   display: flex;
   justify-content: space-around;
}

.text > a:first-child {
   text-decoration: underline;
   pointer-events: none;
}

.tab-content {
   position: absolute;
   left: 0;
   top: 0;
   height: 100vh;
   z-index: -11;
   scroll-behavior: smooth;

   
}


.tab-content span {
   overflow: visible;
   display: flex;
   flex: row nowrap;
   justify-content: flex-start;
}


[data-tab-content] {
   /* background-color: violet; */
   font-size: 3rem;
   width: 100vw;
   height: 100vh;
   scroll-behavior: smooth;

}

.video-wrapper {
   width: 100%;
   height: 100%;

}

#catwalk-ma {
   width: 100%    !important;
   height: auto   !important;
}

Assuming you have jQuery in your project, you can do this:假设你的项目中有 jQuery,你可以这样做:

$("a.tab").on("click", (e) => {
    // Remove active class from all tabs
    $("a.tab").removeClass("active");
    // Add active class to your current clicked tab
    $(e.target).addClass("active");
});

You can define the colour you want the active tab to have using.active in your css您可以在 css 中定义希望活动选项卡具有 using.active 的颜色

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何根据用户选择更改web页面的背景颜色? - How to change background color of the web page according to user choice? 如何更改页面中所有用户个人资料链接的颜色? - How to change the color of all user profile links in a page? 当用户查看页面的特定部分时如何更改导航栏图标的颜色 - How to change the color of navbar icon when the user is viewing a specific section of page 如何更改当前打开链接的文本颜色并保持未打开链接的默认颜色?这样用户就可以了解他当前所处的链接 - how to change the text color of currently open link and remain default color of unopened link?so user gets an idea on which link he is currently on 如何使用jQuery根据菜单项将菜单项更改为其他颜色 - How change the menu item to a different color according to its section using jquery 如何用javascript更改链接的颜色? - How to change the color of the links with javascript? 如何根据该值动态更改td的颜色? - How to change the color of a td dynamically according to the value? 如何更改引导滑块中所选部分的颜色 - How to Change color of selected section in bootstrap slider 如何使用jQuery将导航背景颜色部分更改为部分 - How to change navigation background color section to section with jquery 根据用户从-选择下拉菜单中所做的选择-如何启用/禁用某些链接并更改其颜色 - How to enable/disable and change color of some links depending on the selection user have made from a - slect dropdown menu -
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM