jquery實現(xiàn)移動端懸浮拖拽框
使用jquery 實現(xiàn)了一個基礎的懸浮彈拖拽窗, 根據(jù)自己的需求去完善動效。 分享給大家供大家參考,具體如下:
演示效果
代碼塊
需要引入jquery , 引入本地或線上根據(jù)自己的情況修改
<!DOCTYPE html> <html lang="en"> <head> ? <meta charset="UTF-8"> ? <meta http-equiv="X-UA-Compatible" content="IE=edge"> ? <meta name="viewport" content="width=device-width, initial-scale=1.0"> ? <title>移動端 拖拽按鈕</title> ? <link rel="stylesheet" href="./static/css/base.css"> ? <link rel="stylesheet" href="./static/css/index.css"> ? <!-- js --> ? <script src="./static/js/jquery-3.5.1.js"></script> </head> <body> ? <div class="main"> ? ? <div class="circle-box" ontouchmove="touchMove(event)" ontouchend="touchEnd()"> ? ? ? <div class="circle"></div> ? ? </div> ? </div> </body> </html> <script> ? var startX = 0; ? var startY = 0; ? $(function () { ? ? ? $('.circle-box').on('touchstart', function (event) { ? ? ? ? var element = event.targetTouches[0]; ? ? ? ? // 初始化位置 ? ? ? ? startX = element.pageX - this.offsetLeft; ? ? ? ? startY = element.pageY - this.offsetTop; ? ? ? ? console.log(startX, startY); ? ? ? ? return false ? ? ? }) ? }) ? function touchMove(event) { ?? ? ?var element = event.targetTouches[0]; ?? ? ?var x = element.clientX - startX; ?? ? ?var y = element.clientY - startY; ?? ? ?parentWidth = $('.main').innerWidth(); ?? ? ?parentHeight = $('.main').innerHeight(); ?? ? ?// 設置 上邊界 ?? ? ?if (y <= 0) { ?? ? ? ?y = 1; ?? ? ?} ?? ? ? ?? ? ?// 設置 下邊界 40: 移動框自身寬度 ?? ? ?if (y >= parentHeight - 40) { ?? ? ? ?x = parentHeight - 40 - 1; ?? ? ?} ?? ? ?? ? ?// 設置 左邊界 ?? ? ?if (x <= 0) { ?? ? ? ?x = 1; ?? ? ?} ?? ? ?// 設置 右邊界 40: 移動框自身寬度 ?? ? ?if (x >= parentWidth - 40) { ?? ? ? ?x = parentWidth - 40 - 1; ?? ? ?} ?? ? ?? ? ?$('.circle-box').css({ ?? ? ? ?'left': x + 'px', ?? ? ? ?'top': y + 'px' ?? ? ?}) ?? ? ?? ? ?return false } function touchEnd(event) { ? $('.main').unbind('mousemove') ? $('.main').unbind('mouseup') } </script>
CSS
基礎css 根據(jù)自己需求修改
.main { ? position: relative; ? overflow: hidden; ? width: 100vw; ? height: 100vh; ? background: pink; ? padding: 1px; ? box-sizing: border-box; } .circle-box { ? position: absolute; ? top: 200px; ? bottom: 0; /* 如果初始化設置right, 需先隱藏left, left級別大于right*/ ? /* left: 0; */ ? right: 1px; ? width: 40px; ? height: 40px; ? line-height: 40px; ? border-radius: 50%; ? background-color: transparent; ? display: flex; ? justify-content: center; ? align-items: center; ? box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3); ? z-index: 999; } .circle-box .circle { ? width: 30px; ? height: 30px; ? border-radius: 50%; ? box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1); ? background-color: #fff; ? opacity: 0.5; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
jQuery可見性過濾器:hidden和:visibility用法實例
這篇文章主要介紹了jQuery可見性過濾器:hidden和:visibility用法,實例分析了:hidden和:visibility的功能及相關使用技巧,需要的朋友可以參考下2015-06-06jQuery中通過ajax調用webservice傳遞數(shù)組參數(shù)的問題實例詳解
本文通過實例給大家詳細介紹jQuery中通過ajax調用webservice傳遞數(shù)組參數(shù)的相關資料,需要的朋友可以參考下2016-05-05jQuery獲取文本節(jié)點之 text()/val()/html() 方法區(qū)別
在jquery中val,text,html都能取到值,或加一個參數(shù)來賦值,那么它們有些什么區(qū)別?2011-03-03jQuery-ui引入后Vs2008的無智能提示問題解決方法
引入jQuery-vsdoc文件后,jQuery庫就能智能提示了,解決方法很簡單在jQuery-ui的目錄下再加入一個空的JS文件,命名jquery-ui-vsdoc.js2014-02-02jquery請求servlet實現(xiàn)ajax異步請求的示例
下面小編就為大家?guī)硪黄猨query請求servlet實現(xiàn)ajax異步請求的示例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06jQuery實現(xiàn)多級聯(lián)動下拉列表查詢框
這篇文章主要為大家介紹了jQuery實現(xiàn)多級聯(lián)動下拉列表查詢框,感興趣的小伙伴們可以參考一下2016-01-01Jquery通過Ajax訪問XML數(shù)據(jù)的小例子
這篇文章主要介紹了Jquery通過Ajax訪問XML數(shù)據(jù),有需要的朋友可以參考一下2013-11-11jquery ready函數(shù)、css函數(shù)及text()使用示例
想必大家對jquery的ready函數(shù)、css函數(shù)、text()并不陌生吧,其實很好理解的,接下來有個不錯的示例,如果你對此理解還是很模糊可以參考下2013-09-09