如何使悬停在活动按钮上不使用悬停效果?

2023-11-30前端开发问题
8

本文介绍了如何使悬停在活动按钮上不使用悬停效果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我有一个对按钮具有悬停效果的导航栏.此外,每当页面处于活动状态时,该按钮的右侧都有一个边框,以显示它是当前打开的页面.基本上我想要的是活动按钮没有悬停效果,因为悬停效果覆盖了边框.

I have a navigation bar that has a hover effect for the buttons. Also whenever a page is active that button has a border on the right to show that it's the page that is currently open. Basically what I want is for the active button to not have a hover effect, because the hover effect covers up the border.

$(window).load(function() {
    // Animate loader off screen
    $(".loader").fadeOut("slow");;
});

function homeTransition()
{   
    $(this).toggleClass('activePage');

    if(document.getElementById("aboutContent").className.indexOf("slideInLeft") !== -1){
        document.getElementById("aboutContent").className = " animated slideOutRight";
    }
    if(document.getElementById("projectsContent").className.indexOf("slideInUp") !== -1){
        document.getElementById("projectsContent").className = " animated slideOutUp";
    }
    if(document.getElementById("contactContent").className.indexOf("slideInUp") !== -1){
        document.getElementById("contactContent").className = " animated slideOutUp";
    }
    document.getElemenatById("al-saba").className = " animated bounceInDown";
}

function aboutTransition()
{   
    document.getElementById("al-saba").className = " animated bounceOutUp";
    document.getElementById("aboutContent").style.visibility = "visible";
    document.getElementById("aboutContent").className = "activePage animated slideInLeft";

    document.getElementById("projectsContent").className = " animated slideOutUp";
    document.getElementById("contactContent").className = " animated slideOutUp";
}

function projectsTransition()
{   
    $(this).toggleClass('activePage');

    document.getElementById("al-saba").className = " animated bounceOutUp";
    document.getElementById("projectsContent").style.visibility = "visible";
    document.getElementById("projectsContent").className = "activePage animated slideInUp";

    document.getElementById("aboutContent").className = " animated slideOutRight";
    document.getElementById("contactContent").className = " animated slideOutUp";
}

function contactTransition()
{
    $(this).toggleClass('activePage');

    document.getElementById("al-saba").className = " animated bounceOutUp";
    document.getElementById("contactContent").style.visibility = "visible";
    document.getElementById("contactContent").className = "activePage animated slideInUp";

    document.getElementById("aboutContent").className = " animated slideOutRight";
    document.getElementById("projectsContent").className = " animated slideOutUp";
}

//Menu
$(function() {
    function expand() {
        $(this).toggleClass("on");
        $(".menu").toggleClass("active");
    };

    $('.noselect').click(function() {
        $('.noselect').removeClass('activePage');
        $(this).toggleClass('activePage');
    });

    $(".button").on('click', expand);
});

body {
     font-family: "Source Sans Pro", sans-serif;
     color: #ccc;
     z-index: -100;
     background-color: black;
     overflow: hidden;
     text-align: center;
}
 .menu{
     position: fixed;
     top: 0;
     left: 0;
     bottom: 0;
     padding: 0;
     overflow: hidden;
     background: rgba(0, 0, 0, 0.6);
     width: 250px;
     box-sizing: border-box;
     transition: all 250ms;
     -webkit-transform: translateZ(0) translateX(-100%);
     transform: translateZ(0) translateX(-100%);
     text-align:center;
     box-shadow: 0 0 10px #000;
}
 .active {
     transform: translateZ(0) translateX(0);
     transform: translateZ(0) translateX(0);
     -webkit-transition: 0.4s;
     transition: 0.4s;
     color: #e5e5e5;
}
 ul{
     padding:0;
     list-style:none;
     font-size:14px;
}
 li{
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
     font-family: "Raleway";
     width: 250px;
     padding: 40px 5px;
     color: #a7a7a7;
     font-size: 1.8em;
     font-weight: 300;
     cursor: pointer;
     transition: all .4s ease-in-out;
}
 li:hover {
     color: white;
     background-color: #38d8b4;
     -o-transition:.6s;
     -ms-transition:.6s;
     -moz-transition:.6s;
     -webkit-transition:.6s;
     transition:.6s;
}
 .liSeperator {
     width: 100%;
     padding: 1px;
     color: (0, 0, 0, .4);
}
 .content {
     position: relative;
     width: 240px;
}
 .button {
     width:22px;
     height:40px;
     margin:80px 97px;
     padding: 10px;
     cursor:pointer;
     transition: all .2s ease-in-out;
}
 .button:hover{
     transform: scale(1.2);
}
 .line {
     width: 40px;
     height: 2px;
     background-color:#fff;
     transition: transform 0.3s ease, background 0.3s ease, opacity 0.3s ease, top 0.3s ease;
}
 .line.first{
     transform: translateX(-10px) translateY(22px) rotate(-90deg);
}
 .line.second{
     transform: translateX(-10px) translateY(19px) rotate(0deg);
}
 .button.on .line.top{
     width: 40px;
     transform: translateX(-10px) translateY(20px) rotate(45deg);
}
 .button.on .line.bottom{
     width: 40px;
     transform: translateX(-10px) translateY(17px)rotate(-45deg);
}
 .activePage li {
     transition: all .1s ease-in-out;
     color: white;
     border-right: 8px solid #38d8a1;
}

<div id="wrapper">
                                    <div class="menu">
                                        <h1 class="noselect">MENU</h1>
                                        <ul>
                                                <li id="home" class="noselect" onclick="homeTransition()">
                                                    <i class="fa fa-home"></i> home
                                                </li>
                                            <div class="liSeperator"></div>
                                                <li id="about" class="noselect" onclick="aboutTransition()">
                                                    <i class="fa fa-user"></i> about                                        
                                                </li>
                                            <div class="liSeperator"></div>
                                                <li id="projects" class="noselect" onclick="projectsTransition()">
                                                    <i class="fa fa-code"></i> projects
                                                </li>
                                            <div class="liSeperator"></div>
                                                <li id="contact" class="noselect" onclick="contactTransition()">
                                                    <i class="fa fa-paper-plane"></i> contact
                                                </li>
                                        </ul>
                                    </div>
                                    <div class="content animated fadeInDown">
                                        <div class="button">
                                            <div class="line first top"></div>
                                            <div class="line second bottom"></div>
                                        </div>
                                    </div>

推荐答案

正如@Pete 所说,您的 HTML 无效.但是您可以使用 :not():hover 选择器来排除 .activePage 类.

As @Pete said, your HTML is invalid. But you can exclude the .activePage class using :not() with your :hover selector.

所以用 .noselect:not(.activePage) li:hover

//Menu
$(function() {
    function expand() {
        $(this).toggleClass("on");
        $(".menu").toggleClass("active");
    };

    $('.noselect').click(function() {
        $('.noselect').removeClass('activePage');
        $(this).toggleClass('activePage');
    });

    $(".button").on('click', expand);
});

body {
  font-family: "Source Sans Pro", sans-serif;
  color: #ccc;
  z-index: -100;
  background-color: black;
  overflow: hidden;
  text-align: center;
}

.menu {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  padding: 0;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.6);
  width: 250px;
  box-sizing: border-box;
  transition: all 250ms;
  -webkit-transform: translateZ(0) translateX(-100%);
  transform: translateZ(0) translateX(-100%);
  text-align: center;
  box-shadow: 0 0 10px #000;
}

.active {
  transform: translateZ(0) translateX(0);
  transform: translateZ(0) translateX(0);
  -webkit-transition: 0.4s;
  transition: 0.4s;
  color: #e5e5e5;
}

ul {
  padding: 0;
  list-style: none;
  font-size: 14px;
}

li {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  font-family: "Raleway";
  width: 250px;
  padding: 40px 5px;
  color: #a7a7a7;
  font-size: 1.8em;
  font-weight: 300;
  cursor: pointer;
  transition: all .4s ease-in-out;
}

.noselect:not(.activePage) li:hover {
  color: white;
  background-color: #38d8b4;
  -o-transition: .6s;
  -ms-transition: .6s;
  -moz-transition: .6s;
  -webkit-transition: .6s;
  transition: .6s;
}

.liSeperator {
  width: 100%;
  padding: 1px;
  color: (0, 0, 0, .4);
}

.content {
  position: relative;
  width: 240px;
}

.button {
  width: 22px;
  height: 40px;
  margin: 80px 97px;
  padding: 10px;
  cursor: pointer;
  transition: all .2s ease-in-out;
}

.button:hover {
  transform: scale(1.2);
}

.line {
  width: 40px;
  height: 2px;
  background-color: #fff;
  transition: transform 0.3s ease, background 0.3s ease, opacity 0.3s ease, top 0.3s ease;
}

.line.first {
  transform: translateX(-10px) translateY(22px) rotate(-90deg);
}

.line.second {
  transform: translateX(-10px) translateY(19px) rotate(0deg);
}

.button.on .line.top {
  width: 40px;
  transform: translateX(-10px) translateY(20px) rotate(45deg);
}

.button.on .line.bottom {
  width: 40px;
  transform: translateX(-10px) translateY(17px)rotate(-45deg);
}

.activePage li {
  transition: all .1s ease-in-out;
  color: white;
  border-right: 8px solid #38d8a1;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wrapper">
  <div class="menu">
    <h1 class="noselect">MENU</h1>
    <ul>
      <div id="home" class="noselect" onclick="homeTransition()">
        <li>
          <i class="fa fa-home"></i> home
        </li>
      </div>
      <div class="liSeperator"></div>
      <div id="about" class="noselect" onclick="aboutTransition()">
        <li>
          <i class="fa fa-user"></i> about
        </li>
      </div>
      <div class="liSeperator"></div>
      <div id="projects" class="noselect" onclick="projectsTransition()">
        <li>
          <i class="fa fa-code"></i> projects
        </li>
      </div>
      <div class="liSeperator"></div>
      <div id="contact" class="noselect" onclick="contactTransition()">
        <li>
          <i class="fa fa-paper-plane"></i> contact
        </li>
      </div>
    </ul>
  </div>
  <div class="content animated fadeInDown">
    <div class="button">
      <div class="line first top"></div>
      <div class="line second bottom"></div>
    </div>
  </div>

这篇关于如何使悬停在活动按钮上不使用悬停效果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

js删除数组中指定元素的5种方法
在JavaScript中,我们有多种方法可以删除数组中的指定元素。以下给出了5种常见的方法并提供了相应的代码示例: 1.使用splice()方法: let array = [0, 1, 2, 3, 4, 5];let index = array.indexOf(2);if (index -1) { array.splice(index, 1);}// array = [0,...
2024-11-22 前端开发问题
182

layui 实现实时刷新一个外部的div
主页面上显示了一个合计,在删除和增加的时候需要更改这个总套数的值: //html代码div class="layui-inline layui-show-xs-block" style="margin-left: 10px" id="sumDiv"spanSOP合计:/spanspan${totalNum}/spanspan套/span/div 于是在我们删除这个条数据后,...
2024-11-14 前端开发问题
156

layui 单选框、复选框、下拉菜单不显示问题如何解决?
1. 如果是ajax嵌套了 页面, 请确保 只有最外层的页面引入了layui.css 和 layui.js ,内层页面 切记不要再次引入 2. 具体代码如下 layui.use(['form', 'upload'], function(){ var form = layui.form; form.render(); // 加入这一句});...
2024-11-09 前端开发问题
313

layui要如何改变时间日历布局大小?
问题描述 我想改变layui时间日历布局大小,这个要怎么操作呢? 解决办法 可以用css样式对时间日历进行重新布局,具体代码如下: !DOCTYPE htmlhtmlheadmeta charset="UTF-8"title/titlelink rel="stylesheet" href="../../layui/css/layui.css" /style#test-...
2024-10-24 前端开发问题
271

JavaScript小数运算出现多位的解决办法
在开发JS过程中,会经常遇到两个小数相运算的情况,但是运算结果却与预期不同,调试一下发现计算结果竟然有那么长一串尾巴。如下图所示: 产生原因: JavaScript对小数运算会先转成二进制,运算完毕再转回十进制,过程中会有丢失,不过不是所有的小数间运算会...
2024-10-18 前端开发问题
301

jQuery怎么动态向页面添加代码?
append() 方法在被选元素的结尾(仍然在内部)插入指定内容。 语法: $(selector).append( content ) var creatPrintList = function(data){ var innerHtml = ""; for(var i =0;i data.length;i++){ innerHtml +="li class='contentLi'"; innerHtml +="a href...
2024-10-18 前端开发问题
125