点击按钮置顶案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .topBtn{
            width: 50px;
            height: 50px;
            border: 1px solid #000;
            box-shadow: 2px 2px 2px 2px #ccc;
            text-align: center;
            font-size: 40px;
            line-height: 60px;
            outline: 1px solid #000;
            outline-offset: 0px;
            position: fixed;
            bottom: 100px;
            right:100px;
            transition: all 0.5s;
            display: none;
        }
        .topBtn:hover{
            outline-offset: 20px;
        }
    </style>
</head>
<body>
    <div class="topBtn">
        ^
    </div>
    <script>

        var topbtn;
        var bool = false;
        init()
        function init(){
            topbtn = document.querySelector('.topBtn');
            topbtn.onclick = clickHandler;
            window.onscroll = scrollHandler
            setInterval( enterFrame,16)
        }
        function clickHandler(){
            // console.log(111)
            bool = true;
        }
        function scrollHandler(){
            if(document.documentElement.scrollTop > document.documentElement.clientHeight){
                topbtn.style.display = "block"
            }else{
                topbtn.style.display = "none"
            }
        }
        function enterFrame(){
            console.log(13123)
            if( !bool ) return;
            document.documentElement.scrollTop -= 100
            if(document.documentElement.scrollTop === 0) bool = false
        }
        for(var i=0;i<10;i++){
            ce('img',null,document.body,{
                src:'../img/a.png'
            })
        }
        function ce(type, style, parent, props) {
            let elem = document.createElement(type)
            for (let prop in style) {
                elem.style[prop] = style[prop]
            }
            for (let prop in props) {
                elem[prop] = props[prop]
            }
            if (parent) parent.appendChild(elem)
            return elem
        }
    </script>
</body>
</html>
  • 0
    点赞
  • 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、付费专栏及课程。

余额充值