js面板拖拽效果

步骤:

1.在指定可拖动区域中按下;

2.在页面中移动;

3.释放图标时停止移动;

事件onmousedown:在用户按下任何鼠标按钮时触发。

光标的位置可用event的属性clientX和clientY来获得,他们的值表示事件发生时鼠标指针在视口中的水平坐标和垂直坐标。不包括页面滚动的距离。(离页面最左边和最上边的距离)

时间onmousemove:当鼠标指针在元素内部移动时重复的触发。

伪代码:

//先获得可拖动区域对象即面板的一部分 var otitle;

//添加事件otitle.οnmοusedοwn=fndown;

function fndown()

{       获得面板对象var odragon;

function(e)//event

{
           event=event||window.event;

           odragon,style.left=event.clientX+'px';

           odragon.style.top=event.clientY+'px';

}




实现一个可移动的悬浮按钮,并且点击后有展开效果,可以使用 HTML、CSS 和 JavaScript。下面是一个简单的示例代码: HTML 代码: ``` <div id="floatBtn"> <div class="btn-icon">按钮</div> <div class="btn-panel"> <ul> <li>选项一</li> <li>选项二</li> <li>选项三</li> </ul> </div> </div> ``` CSS 代码: ``` #floatBtn { position: fixed; bottom: 20px; right: 20px; z-index: 9999; } .btn-icon { background-color: #4CAF50; color: white; border: none; border-radius: 50%; padding: 15px; font-size: 24px; cursor: pointer; } .btn-panel { display: none; position: absolute; bottom: 70px; right: 0; background-color: white; border: 1px solid #ccc; padding: 10px; } .btn-panel ul { list-style: none; margin: 0; padding: 0; } .btn-panel ul li { padding: 5px; cursor: pointer; } .btn-panel ul li:hover { background-color: #f5f5f5; } ``` JavaScript 代码: ``` var floatBtn = document.getElementById("floatBtn"); var btnIcon = floatBtn.querySelector(".btn-icon"); var btnPanel = floatBtn.querySelector(".btn-panel"); // 点击按钮展开/收起面板 btnIcon.addEventListener("click", function() { if (btnPanel.style.display === "none") { btnPanel.style.display = "block"; } else { btnPanel.style.display = "none"; } }); // 拖拽按钮 var isDragging = false; var offsetX = 0; var offsetY = 0; btnIcon.addEventListener("mousedown", function(e) { isDragging = true; offsetX = e.clientX - floatBtn.offsetLeft; offsetY = e.clientY - floatBtn.offsetTop; }); document.addEventListener("mousemove", function(e) { if (isDragging) { var x = e.clientX - offsetX; var y = e.clientY - offsetY; floatBtn.style.left = x + "px"; floatBtn.style.top = y + "px"; } }); document.addEventListener("mouseup", function() { isDragging = false; }); ``` 这段代码实现了一个在页面右下角的悬浮按钮,点击按钮可以展开一个带有选项的面板,同时也实现了可拖拽效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值