亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

懸停時在 Font-Awesome 圖標之間切換

懸停時在 Font-Awesome 圖標之間切換

LEATH 2022-12-22 12:47:30
我試圖了解不同的解決方案,但它們似乎都不適用于我的項目。我得到的最遠的是這個;function onBackButtonHover() {    const backButton = document.getElementById("page-controls").querySelector(".fas");    $(backButton).removeClass();    $(backButton).addClass("fas fa-arrow-left");    $(backButton).mouseout(function(){        console.log("Hello.");    });}page-controls .navbar-brand {    background-color: #54aaff;    position: absolute;    left: 0;    top: 0;    bottom: 0;    width: 56px;    padding: 0;    margin: 0;    text-align: center;    color: #fff;    transition: transform .25s ease-in-out;}#page-controls .navbar-brand:focus, #page-controls .navbar-brand:hover {    color: #fff;    transform: scale(.85);}#page-controls .navbar-brand .fas {    font-size: 32px;    margin: 12px auto;}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><link href="//dfzlwjdb9r0y9.cloudfront.net/fa/css/all.css" rel="stylesheet"><a id="backButton intranet" class="navbar-brand" href="/dashboard" onmouseover="onBackButtonHover()">    <i class="fas fa-user-lock"></i></a>但是這里的問題是我不知道如何在不使用靜態類的情況下將圖標恢復正常,一旦它被更改。我想避免使用靜態類,因為相同的腳本會在具有不同圖標的頁面上運行,因此類會因頁面而異。另一個問題似乎是腳本在一次鼠標懸停期間運行了多次,如圖console.log所示。我的目標是簡單地將當前圖標更改fa-arrow-left為懸停鏈接時的圖標,并在完成后將其切換回原始圖標。該解決方案還應該涵蓋移動用戶,因此它也必須注冊一個觸摸輸入——我應該如何處理這個問題?
查看完整描述

2 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

如果我沒猜錯,那很簡單


$('document').ready(function() {

  

  $('#backButton').on( "mouseover", function() {

    $('#backButton > i').removeClass('fa-user-lock').addClass('fa-arrow-left');

  });

  

  $('#backButton').on( "mouseout", function() {

    $('#backButton > i').removeClass('fa-arrow-left').addClass('fa-user-lock');

  });

  

});

<script   src="https://code.jquery.com/jquery-3.5.1.min.js"   integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="   crossorigin="anonymous"></script>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" integrity="sha512-1PKOgIY59xJ8Co8+NE6FZ+LOAZKjy+KY8iq0G4B3CyeY6wYHN3yt9PW0XpSriVlkMXe40PTKnXrLnZ9+fkDaog==" crossorigin="anonymous" />


<a id="backButton" class="navbar-brand" href="/dashboard">

    <i class="fas fa-user-lock"></i>

</a>

現在你的問題的第二部分 - 如何不硬編碼類名?好吧,顯然你需要做這樣的事情——讀取活動元素的類,記住它并在 mouseout 上使用……這樣的事情……(我將backButtonID 更改為類以顯示多個圖標示例)


$('document').ready(function() {

  // Remember active class

  let tmpClass;

  

  // On mouse over

  $('.backButton').on( "mouseover", function() {

    // get current class

    tmpClass = $(this).children('i').attr('class').split(/\s+/);

    // Swap

    $(this).children('i').removeClass(tmpClass[1]).addClass('fa-arrow-left');

  });

  

  // On mouse out

  $('.backButton').on( "mouseout", function() {

    $(this).children('i').removeClass('fa-arrow-left').addClass(tmpClass[1]);

  });

  

});

<script   src="https://code.jquery.com/jquery-3.5.1.min.js"   integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="   crossorigin="anonymous"></script>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" integrity="sha512-1PKOgIY59xJ8Co8+NE6FZ+LOAZKjy+KY8iq0G4B3CyeY6wYHN3yt9PW0XpSriVlkMXe40PTKnXrLnZ9+fkDaog==" crossorigin="anonymous" />


<a class="navbar-brand backButton" href="/dashboard">

    <i class="fas fa-user-lock"></i>

</a>

<a class="navbar-brand backButton" href="/dashboard">

    <i class="fas fa-bomb"></i>

</a>

<a class="navbar-brand backButton" href="/dashboard">

    <i class="fas fa-bell-slash"></i>

</a>


查看完整回答
反對 回復 2022-12-22
?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

你可以試試這個,這樣你就可以為具有相同功能的不同組件調用相同的函數。


function onBackButtonHover(e) {

    var i = $(e).find('i.fas')

  $(i).removeClass($(i).attr("default")).addClass($(i).attr("hover"))

}


function onBackButtonOut(e) {

    var i = $(e).find('i.fas')

  $(i).removeClass($(i).attr("hover")).addClass($(i).attr("default"))

}

<script   src="https://code.jquery.com/jquery-3.5.1.min.js"   integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="   crossorigin="anonymous"></script>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" integrity="sha512-1PKOgIY59xJ8Co8+NE6FZ+LOAZKjy+KY8iq0G4B3CyeY6wYHN3yt9PW0XpSriVlkMXe40PTKnXrLnZ9+fkDaog==" crossorigin="anonymous" />


<a id="backButton intranet" class="navbar-brand" href="/dashboard" onmouseover="onBackButtonHover(this)" onmouseout="onBackButtonOut(this)">

    <i class="fas fa-user-lock" default="fa-user-lock" hover="fa-arrow-left"></i>

</a>


查看完整回答
反對 回復 2022-12-22
  • 2 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號