jQuery:点圆设置位置菜单悬停/悬停并单击导航链接

前端之家收集整理的这篇文章主要介绍了jQuery:点圆设置位置菜单悬停/悬停并单击导航链接 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

jQuery:这是我编写的代码,但无法正常工作,我需要在单击菜单时使活动圈子保持活动链接,而不是回到顶部.

>当悬停导航链接圆圈点到达那里时
>单击导航链接时,圆点保持活动链接
>如果链接处于活动状态,并且在将鼠标悬停在其他任何链接上之后在此处添加圆点,则圆圈点将转到该位置并返回到活动链接

如果您有任何建议或解决方案,请给我答复

  1. jQuery(document).ready(function() {
  2. var activelenght = jQuery(".navigation_Box ul li.active a").length;
  3. var activelenghtfirst = jQuery(".navigation_Box ul li#secmain.active a").length;
  4. var moveobj = jQuery(".nav_active_dot");
  5. var activeobj = jQuery(".navigation_Box ul li.active a");
  6. var activeobjoff = activeobj.offset().top;
  7. var activeparentoff = activeobj.parent().parent().offset().top;
  8. var finaloffactive = activeobjoff-activeparentoff;
  9. if (activelenghtfirst > 0) {
  10. jQuery(moveobj).css("top",finaloffactive);
  11. jQuery(moveobj).css("opacity",1);
  12. } else {
  13. jQuery(moveobj).css("opacity",0);
  14. }
  15. jQuery(".navigation_Box ul li a").each(function() {
  16. jQuery(this).mouSEOver(function () {
  17. var obj = jQuery(this);
  18. var childPos = obj.offset();
  19. var parentPos = obj.parent().parent().offset();
  20. var childOffset = childPos.top - parentPos.top;
  21. jQuery(moveobj).css("opacity",1);
  22. jQuery(moveobj).css("top",childOffset);
  23. });
  24. jQuery(this).mouSEOut(function() {
  25. if( activelenghtfirst > 0) {
  26. jQuery(moveobj).css("top",0);
  27. jQuery(moveobj).css("opacity",0);
  28. console.log("2");
  29. } else {
  30. jQuery(moveobj).css("top",0);
  31. }
  32. });
  33. jQuery(this).click(function(e) {
  34. e.preventDefault();
  35. jQuery(this).parent().addClass("active");
  36. jQuery(this).parent().siblings().removeClass("active");
  37. });
  38. });
  39. });
  1. * { -webkit-Box-sizing:border-Box; -moz-Box-sizing:border-Box; Box-sizing:border-Box;}
  2. .navigation_Box { font-family:arial; position:relative;}
  3. .navigation_Box ul { display:block; margin:0; padding:0; position:relative;}
  4. .navigation_Box ul li { display:block; margin:0; padding:0; position:relative;}
  5. .navigation_Box ul li a { color:#000; margin:0; padding:7px 0 7px 30px; font-size:14px; display:inline-block; vertical-align:top; position:relative; text-decoration:none;}
  6. .navigation_Box ul li a .circle_border { width:10px; height:10px; border-radius:50px; background:#fff; border:solid 1px #000; position:absolute; left:0; top:10px; z-index:1;}
  7. .navigation_Box ul li.active a { color:#47c5f3;}
  8. .navigation_Box ul li a:hover { color:#47c5f3;}
  9. .navigation_Box ul li a:after { position:absolute; left:5px; width:1px; content:''; background:#000; height:30px; top:19px;}
  10. .navigation_Box ul li:last-child a:after { display:none;}
  11. .navigation_Box .nav_active_dot { position:absolute; left:0; top:0; width:10px; height:10px; background:#47c5f3; border-radius:20px; margin:10px 0 0 0; opacity:0; z-index:2;
  12. -webkit-transition:all ease-in-out 0.3s;
  13. -moz-transition:all ease-in-out 0.3s;
  14. transition:all ease-in-out 0.3s;
  15. }
  1. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  2. <div class="navigation_Box">
  3. <ul>
  4. <li class="active"><a href="#" id="secmain" style="opacity:0; visibility:hidden;"><span class="circle_border"></span>Who we are</a></li>
  5. <li><a href="#" id="secwho"><span class="circle_border"></span>Home</a></li>
  6. <li><a href="#" id="secbes"><span class="circle_border"></span>Solutions</a></li>
  7. <li><a href="#" id="secfac"><span class="circle_border"></span>Factor</a></li>
  8. <li><a href="#" id="sectra"><span class="circle_border"></span>Stories</a></li>
  9. <li><a href="#" id="secfor"><span class="circle_border"></span>Services</a></li>
  10. <li><a href="#" id="secnew"><span class="circle_border"></span>News</a></li>
  11. </ul>
  12. <div class="nav_active_dot"></div>
  13. </div>
最佳答案
您可以使用以下方法使活动的项目符号变为蓝色:

  1. .navigation_Box ul li.active a .circle_border {
  2. background: #47c5f3;
  3. border: 1px solid #47c5f3;
  4. }

请参见下面的演示:

  1. jQuery(document).ready(function() {
  2. var activelenght = jQuery(".navigation_Box ul li.active a").length;
  3. var activelenghtfirst = jQuery(".navigation_Box ul li#secmain.active a").length;
  4. var moveobj = jQuery(".nav_active_dot");
  5. var activeobj = jQuery(".navigation_Box ul li.active a");
  6. var activeobjoff = activeobj.offset().top;
  7. var activeparentoff = activeobj.parent().parent().offset().top;
  8. var finaloffactive = activeobjoff - activeparentoff;
  9. if (activelenghtfirst > 0) {
  10. jQuery(moveobj).css("top",finaloffactive);
  11. jQuery(moveobj).css("opacity",1);
  12. } else {
  13. jQuery(moveobj).css("opacity",0);
  14. }
  15. jQuery(".navigation_Box ul li a").each(function() {
  16. jQuery(this).mouSEOver(function() {
  17. var obj = jQuery(this);
  18. var childPos = obj.offset();
  19. var parentPos = obj.parent().parent().offset();
  20. var childOffset = childPos.top - parentPos.top;
  21. jQuery(moveobj).css("opacity",1);
  22. jQuery(moveobj).css("top",childOffset);
  23. });
  24. jQuery(this).mouSEOut(function() {
  25. if (activelenghtfirst > 0) {
  26. jQuery(moveobj).css("top",0);
  27. jQuery(moveobj).css("opacity",0);
  28. console.log("2");
  29. } else {
  30. jQuery(moveobj).css("top",0);
  31. }
  32. });
  33. jQuery(this).click(function(e) {
  34. e.preventDefault();
  35. jQuery(this).parent().addClass("active");
  36. jQuery(this).parent().siblings().removeClass("active");
  37. });
  38. });
  39. });
  1. * {
  2. -webkit-Box-sizing: border-Box;
  3. -moz-Box-sizing: border-Box;
  4. Box-sizing: border-Box;
  5. }
  6. .navigation_Box {
  7. font-family: arial;
  8. position: relative;
  9. }
  10. .navigation_Box ul {
  11. display: block;
  12. margin: 0;
  13. padding: 0;
  14. position: relative;
  15. }
  16. .navigation_Box ul li {
  17. display: block;
  18. margin: 0;
  19. padding: 0;
  20. position: relative;
  21. }
  22. .navigation_Box ul li a {
  23. color: #000;
  24. margin: 0;
  25. padding: 7px 0 7px 30px;
  26. font-size: 14px;
  27. display: inline-block;
  28. vertical-align: top;
  29. position: relative;
  30. text-decoration: none;
  31. }
  32. .navigation_Box ul li a .circle_border {
  33. width: 10px;
  34. height: 10px;
  35. border-radius: 50px;
  36. background: #fff;
  37. border: solid 1px #000;
  38. position: absolute;
  39. left: 0;
  40. top: 10px;
  41. z-index: 1;
  42. }
  43. .navigation_Box ul li.active a {
  44. color: #47c5f3;
  45. }
  46. .navigation_Box ul li.active a .circle_border { /* added */
  47. background: #47c5f3;
  48. border: 1px solid #47c5f3;
  49. }
  50. .navigation_Box ul li a:hover {
  51. color: #47c5f3;
  52. }
  53. .navigation_Box ul li a:after {
  54. position: absolute;
  55. left: 5px;
  56. width: 1px;
  57. content: '';
  58. background: #000;
  59. height: 30px;
  60. top: 19px;
  61. }
  62. .navigation_Box ul li:last-child a:after {
  63. display: none;
  64. }
  65. .navigation_Box .nav_active_dot {
  66. position: absolute;
  67. left: 0;
  68. top: 0;
  69. width: 10px;
  70. height: 10px;
  71. background: #47c5f3;
  72. border-radius: 20px;
  73. margin: 10px 0 0 0;
  74. opacity: 0;
  75. z-index: 2;
  76. -webkit-transition: all ease-in-out 0.3s;
  77. -moz-transition: all ease-in-out 0.3s;
  78. transition: all ease-in-out 0.3s;
  79. }
  1. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  2. <div class="navigation_Box">
  3. <ul>
  4. <li class="active"><a href="#" id="secmain" style="opacity:0; visibility:hidden;"><span class="circle_border"></span>Who we are</a></li>
  5. <li><a href="#" id="secwho"><span class="circle_border"></span>Home</a></li>
  6. <li><a href="#" id="secbes"><span class="circle_border"></span>Solutions</a></li>
  7. <li><a href="#" id="secfac"><span class="circle_border"></span>Factor</a></li>
  8. <li><a href="#" id="sectra"><span class="circle_border"></span>Stories</a></li>
  9. <li><a href="#" id="secfor"><span class="circle_border"></span>Services</a></li>
  10. <li><a href="#" id="secnew"><span class="circle_border"></span>News</a></li>
  11. </ul>
  12. <div class="nav_active_dot"></div>
  13. </div>

但是你已经这样说了:

When link is active and circle dot there after hover any another link
the circle dot goes to there and go back to active link

在这种情况下,您可以使用变量(例如下面的演示中的homePos)来设置默认位置.您可以在鼠标移出时返回该默认位置,然后在活动链接上进行设置-参见下文:

  1. jQuery(document).ready(function() {
  2. var homePos = 0;
  3. var activelenght = jQuery(".navigation_Box ul li.active a").length;
  4. var activelenghtfirst = jQuery(".navigation_Box ul li#secmain.active a").length;
  5. var moveobj = jQuery(".nav_active_dot");
  6. var activeobj = jQuery(".navigation_Box ul li.active a");
  7. var activeobjoff = activeobj.offset().top;
  8. var activeparentoff = activeobj.parent().parent().offset().top;
  9. var finaloffactive = activeobjoff - activeparentoff;
  10. if (activelenghtfirst > 0) {
  11. jQuery(moveobj).css("top",childOffset);
  12. });
  13. jQuery(this).mouSEOut(function() {
  14. jQuery(moveobj).css("top",homePos); /* changed */
  15. jQuery(moveobj).css("opacity",homePos); /* changed */
  16. });
  17. jQuery(this).click(function(e) {
  18. e.preventDefault();
  19. jQuery(this).parent().addClass("active");
  20. jQuery(this).parent().siblings().removeClass("active");
  21. /* added below */
  22. var obj = jQuery(this);
  23. var childPos = obj.offset();
  24. var parentPos = obj.parent().parent().offset();
  25. homePos = childPos.top - parentPos.top;
  26. });
  27. });
  28. });
  1. * {
  2. -webkit-Box-sizing: border-Box;
  3. -moz-Box-sizing: border-Box;
  4. Box-sizing: border-Box;
  5. }
  6. .navigation_Box {
  7. font-family: arial;
  8. position: relative;
  9. }
  10. .navigation_Box ul {
  11. display: block;
  12. margin: 0;
  13. padding: 0;
  14. position: relative;
  15. }
  16. .navigation_Box ul li {
  17. display: block;
  18. margin: 0;
  19. padding: 0;
  20. position: relative;
  21. }
  22. .navigation_Box ul li a {
  23. color: #000;
  24. margin: 0;
  25. padding: 7px 0 7px 30px;
  26. font-size: 14px;
  27. display: inline-block;
  28. vertical-align: top;
  29. position: relative;
  30. text-decoration: none;
  31. }
  32. .navigation_Box ul li a .circle_border {
  33. width: 10px;
  34. height: 10px;
  35. border-radius: 50px;
  36. background: #fff;
  37. border: solid 1px #000;
  38. position: absolute;
  39. left: 0;
  40. top: 10px;
  41. z-index: 1;
  42. }
  43. .navigation_Box ul li.active a {
  44. color: #47c5f3;
  45. }
  46. .navigation_Box ul li a:hover {
  47. color: #47c5f3;
  48. }
  49. .navigation_Box ul li a:after {
  50. position: absolute;
  51. left: 5px;
  52. width: 1px;
  53. content: '';
  54. background: #000;
  55. height: 30px;
  56. top: 19px;
  57. }
  58. .navigation_Box ul li:last-child a:after {
  59. display: none;
  60. }
  61. .navigation_Box .nav_active_dot {
  62. position: absolute;
  63. left: 0;
  64. top: 0;
  65. width: 10px;
  66. height: 10px;
  67. background: #47c5f3;
  68. border-radius: 20px;
  69. margin: 10px 0 0 0;
  70. opacity: 0;
  71. z-index: 2;
  72. -webkit-transition: all ease-in-out 0.3s;
  73. -moz-transition: all ease-in-out 0.3s;
  74. transition: all ease-in-out 0.3s;
  75. }
  1. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  2. <div class="navigation_Box">
  3. <ul>
  4. <li class="active"><a href="#" id="secmain" style="opacity:0; visibility:hidden;"><span class="circle_border"></span>Who we are</a></li>
  5. <li><a href="#" id="secwho"><span class="circle_border"></span>Home</a></li>
  6. <li><a href="#" id="secbes"><span class="circle_border"></span>Solutions</a></li>
  7. <li><a href="#" id="secfac"><span class="circle_border"></span>Factor</a></li>
  8. <li><a href="#" id="sectra"><span class="circle_border"></span>Stories</a></li>
  9. <li><a href="#" id="secfor"><span class="circle_border"></span>Services</a></li>
  10. <li><a href="#" id="secnew"><span class="circle_border"></span>News</a></li>
  11. </ul>
  12. <div class="nav_active_dot"></div>
  13. </div>

猜你在找的HTML相关文章