Jquery實現自訂視窗隨意的拖拽

來源:互聯網
上載者:User

在網頁上我們經常看到,當點擊一個按鈕時,彈出一個自訂視窗,並且可以隨意的拖拽,從而改變其位置

使用jquery實現拖拽,則必須要jquery的檔案了,實現步驟:

1、引入jquery檔案

2、編寫js指令碼

具體代碼:

html代碼:
複製代碼 代碼如下:
<button id="show">顯示</button>
<div class="win">
<div class="wTop"><p style="float:right;margin:5px 5px 0px 0px;color:white" id="hidden">X</p></div>
<div class="content"></div>
</div>

css樣式:
複製代碼 代碼如下:
<style type="text/css">
.win{width:500px;height:600px;background:#000000;border-radius:8px;box-shadow:0px 0px 5px 10px;opacity:0.8;position:absolute;left:0;top:0;display:none}
.win .wTop{height:30px;width:100%;cursor:move}
.win .content{height:570px;width:100%;border-radius:5px;background:white}
</style>

js指令碼:
複製代碼 代碼如下:
<script language="javascript" type="text/javascript">
$(function(){
//拖拽
dragAndDrop();
//初始化位置
initPosition();
//點擊按鈕
clickShowBtn();
});
//拖拽
function dragAndDrop(){
var _move=false;//移動標記
var _x,_y;//滑鼠離控制項左上方的相對位置
$(".wTop").mousedown(function(e){
_move=true;
_x=e.pageX-parseInt($(".win").css("left"));
_y=e.pageY-parseInt($(".win").css("top"));
//$(".wTop").fadeTo(20,0.5);//點擊開始拖動並透明顯示
});
$(document).mousemove(function(e){
if(_move){
var x=e.pageX-_x;//移動時滑鼠位置計算控制項左上方的絕對位置
var y=e.pageY-_y;
$(".win").css({top:y,left:x});//控制項新位置
}
}).mouseup(function(){
_move=false;
//$(".wTop").fadeTo("fast",1);//鬆開滑鼠後停止移動並恢複成不透明
});
}
//初始化拖拽div的位置
function initPosition(){
//計算初始化位置
var itop=($(document).height()-$(".win").height())/2;
var ileft=($(document).width()-$(".win").width())/1.8;
//設定被拖拽div的位置
$(".win").css({top:itop,left:ileft});
}
//點擊顯示按鈕
function clickShowBtn(){
$("#show").click(function(){
$(".win").show(1000);
});

$("#hidden").click(function(){
$(".win").hide(1000);
});
}
</script>

引入的js檔案
複製代碼 代碼如下:
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.