js實(shí)現(xiàn)盒子拖拽動(dòng)畫效果
本文實(shí)例為大家分享了js實(shí)現(xiàn)盒子拖拽動(dòng)畫的具體代碼,供大家參考,具體內(nèi)容如下
<!DOCTYPE html><html lang='zh-CN'><head> <meta charset='UTF-8'> <title>Document</title> <script src='http://m.b3g6.com/bcjs/jquery.js'></script> <style> * { margin: 0; padding: 0; } .wrap { width: 400px; height: 200px; border: 1px solid #ccc; border-right-color: red; position: absolute; top: 50%; left: 50%; margin-left: -200px; margin-top: -100px; box-sizing: border-box; } .wrap .head { height: 40px; padding-left: 4px; padding-right: 4px; background-color: #ccc; box-sizing: border-box; line-height: 40px; user-select: none; } .head:hover { cursor: move; } .head span { float: left; } #close { float: right; } #close:hover { cursor: pointer; } </style></head><body> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <div class='wrap'> <div class='head'> <span>試著拖拽我</span> <span id='close'>【關(guān)閉】</span> </div> </div> <script> let wrap = document.querySelector(’.wrap’); let close = document.getElementById(’close’); let head = document.querySelector(’.head’); head.onmousedown = function (e) { // 獲得鼠標(biāo)在 head 中的坐標(biāo) let x = e.pageX - wrap.offsetLeft; let y = e.pageY - wrap.offsetTop; console.log(x, y); document.onmousemove = function (e) { let xx = e.pageX - x; let yy = e.pageY - y; // 設(shè)置邊界限制 xx = xx < 0 ? 0 : xx; yy = yy < 0 ? 0 : yy; if (xx >= innerWidth - wrap.offsetWidth) { document.documentElement.scrollLeft = 20; } else { document.documentElement.scrollLeft = 0; } xx = xx > innerWidth - wrap.offsetWidth ? innerWidth-wrap.offsetWidth : xx; yy = yy > innerHeight - wrap.offsetHeight + document.documentElement.scrollTop ? innerHeight - wrap.offsetHeight + document.documentElement.scrollTop : yy; wrap.style.left = xx + ’px’; wrap.style.top = yy + ’px’; // 禁止X滾動(dòng)軸 document.body.style.overflowX = ’hidden’; wrap.style.marginLeft = 0; wrap.style.marginTop = 0; }; }; document.onmouseup = function () { document.onmousemove = null; }; close.onclick = function () { wrap.style.display = ’none’; }; </script></body></html>
實(shí)現(xiàn)效果:

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Java commons-httpclient如果實(shí)現(xiàn)get及post請求2. 一文帶你徹底理解Java序列化和反序列化3. JS中6個(gè)對(duì)象數(shù)組去重的方法4. Python基于requests庫爬取網(wǎng)站信息5. vscode運(yùn)行php報(bào)錯(cuò)php?not?found解決辦法6. python中文本字符處理的簡單方法記錄7. PHP laravel實(shí)現(xiàn)導(dǎo)出PDF功能8. Python使用Selenium自動(dòng)進(jìn)行百度搜索的實(shí)現(xiàn)9. PHP利用curl發(fā)送HTTP請求的實(shí)例代碼10. 資深程序員:給Python軟件開發(fā)測試的25個(gè)忠告!

網(wǎng)公網(wǎng)安備