js点击选项置顶动画效果

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>js置顶动画</title>
    <style>
      *{margin:0;padding:0;}
      ul {width: 1000px;margin:100px auto;position:relative;}
      li {position:absolute;height: 100px;width:900px;font-size:30px;background:#fff;line-height:100px;border:1px solid #eee;list-style:none;padding-left:50px;margin-top:-1px;transition:all .8s ease;}
      li button {float:right;position:relative;top:40px;right:30px;}
    </style>
</head>
<body>
  <ul>
    <li data-index="0">
      <span>内容0</span>
      <button>置顶</button>
    </li>
    <li data-index="1">
      <span>内容1</span>
      <button>置顶</button>
    </li>
    <li data-index="2">
      <span>内容2</span>
      <button>置顶</button>
    </li>
    <li data-index="3">
      <span>内容3</span>
      <button>置顶</button>
    </li>
    <li data-index="4">
      <span>内容4</span>
      <button>置顶</button>
    </li>
  </ul>
</body>
<script>
  function $$(str) {return document.querySelectorAll(str);}
  // 初始化排序
  function intData () {
    for (let i = 0, len = $$('ul li').length; i < len; i++) {
      $$('ul li')[i].style.top = (i * 101) + 'px'; 
      $$('ul li')[i].style.zIndex = (i * 101); 
    }
  }
  function bindEvent () {
    for (let i = 0, len = $$('ul li').length; i < len; i++) {
      $$('ul li')[i].onclick = function() {
        // 将点击的节点追加到第一个
        let first = this.parentNode.firstChild;
        this.parentNode.insertBefore(this, first);
        setTimeout(() => {
          intData();
        }, 50);
      };
    }
  }
  intData();
  bindEvent();
</script>
</html>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 vuedraggable 插件的 `handle` 属性来实现只有在拖动指定元素时才能拖动。这样,你可以将点的元素作为拖动的手柄,其他元素则不会触发拖动。 首先,在你的拖动列表中的每个项中添加一个点的按钮或其他元素,例如一个图标。然后,在 `vuedraggable` 的 `handle` 属性中指定这个按钮或元素的选择器。这样,只有当用户点这个按钮或元素时,才会触发拖动。 以下是一个示例代码: ```html <template> <div> <draggable v-model="list" :options="dragOptions"> <div v-for="(item, index) in list" :key="index"> <div class="handle">点</div> <div>{{ item }}</div> </div> </draggable> </div> </template> <script> import draggable from 'vuedraggable'; export default { components: { draggable }, data() { return { list: ['Item 1', 'Item 2', 'Item 3'], dragOptions: { handle: '.handle' } }; } }; </script> <style> .handle { cursor: move; /* 在这里添加你想要的点样式 */ } </style> ``` 在上面的示例中,我们使用了 `vuedraggable` 插件,并在每个拖动项中添加了一个带有 `handle` 类的 `<div>` 元素作为点按钮。然后,在 `dragOptions` 中指定了 `handle: '.handle'`,以告诉插件使用带有 `handle` 类的元素作为拖动的手柄。 你可以根据你的需求修改示例代码中的样式和拖动列表的数据。希望这可以帮助到你!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值