javascript 如何在点击div中的元素后将其移动到第一个位置

f3temu5u  于 2023-06-28  发布在  Java
关注(0)|答案(2)|浏览(127)
var position = $("#navigationAccount").position();
document.getElementById('navigationMobile').scrollLeft += position.left;
zdwk9cvp

zdwk9cvp1#

您可以使用$.fn.siblings$.fn.insertBefore函数轻松地切换子对象。
下面的jQuery插件将允许您将子节点移动到其兄弟节点的前面。

(function($) {
  $.fn.shiftChild = function($target) {
    let $first = this.siblings().first();
    if ($target.get(0) !== $first.get(0)) {
      $target.insertBefore($first);
    }
    return this;
  }
})(jQuery);


$('.nav-menu').on('click', (e) => {
  $('.nav-menu').shiftChild($(e.target));
});
#nav {
  background: #aaa;
  padding: 2px;
}

.nav-menu {
  display: inline-block;
  width: 80px;
  height: 20px;
  text-align: center;
  line-height: 20px;
  background: #ddd;
  margin: 2px 2px;
}

.nav-menu:first-child {
  background: #fff;
}

.nav-menu:not(:first-child) {
  cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="nav"><!--
  --><div class="nav-menu" id="nav-account">Account</div><!--
  --><div class="nav-menu" id="nav-mobile">Mobile</div><!--
  --><div class="nav-menu" id="nav-help">Help</div>
</div>
tzdcorbm

tzdcorbm2#

position不符合您的需要,请参阅https://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_css_position
position用于获取目标元素的位置。
相反,您需要使用类似prependTo的东西。

$("button").on("click", function(){
  $(".move").prependTo("#wrapper")
})
body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#wrapper {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  transition: all 0.2s;
  margin: 0 auto;
  width: 300px;
}

button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 15px;
  color: #fff;
}

#banner-message.alt {
  background: #0084ff;
  color: #fff;
  margin-top: 40px;
  width: 200px;
}

#banner-message.alt button {
  background: #fff;
  color: #000;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="wrapper">
  <p>Hello World</p>
  <p class="move">move</p>
  <button>Change color</button>
</div>

相关问题