欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

css彈窗可拖動

傅智翔2年前12瀏覽0評論

CSS彈窗是網頁設計中常用的功能,可以讓用戶進行交互并看到特定的信息。而在實際開發中,我們常常需要自定義彈窗,比如可以讓用戶拖動彈窗位置,以達到更好的用戶體驗。

// 彈窗對應的HTML代碼
<div class="dialog">
<div class="titleBar">
<span class="title">彈窗標題</span>
<span class="closeBtn">×</span>
</div>
<div class="content">
彈窗內容
</div>
</div>
// CSS樣式
.dialog{
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
width: 300px;
height: 200px;
background-color: #fff;
border: 1px solid #ccc;
}
.titleBar{
height: 30px;
width: 100%;
background-color: #f5f5f5;
cursor: move;
}
.title{
display: inline-block;
margin-left: 10px;
font-size: 14px;
color: #333;
}
.closeBtn{
display: inline-block;
float: right;
margin-right: 10px;
font-size: 20px;
cursor: pointer;
}
.content{
padding: 10px;
font-size: 16px;
color: #666;
}
// JS代碼
var dialog = document.querySelector('.dialog');
var titleBar = document.querySelector('.titleBar');
var isDrag = false;//標識是否拖動
// 鼠標按下事件
titleBar.addEventListener('mousedown',function(event){
isDrag = true;
// 計算鼠標與彈窗的偏移量,方便后續計算新位置
offsetX = event.clientX - dialog.offsetLeft;
offsetY = event.clientY - dialog.offsetTop;
});
// 鼠標移動事件
titleBar.addEventListener('mousemove',function(event){
 if(isDrag){
// 計算新位置
left = event.clientX - offsetX;
top = event.clientY - offsetY;
// 邊界限制,不超過瀏覽器窗口
if(left< 0) left = 0;
if(top< 0) top = 0;
if(left >document.documentElement.clientWidth - dialog.offsetWidth)
left = document.documentElement.clientWidth - dialog.offsetWidth;
if(top >document.documentElement.clientHeight - dialog.offsetHeight)
top = document.documentElement.clientHeight - dialog.offsetHeight;
// 修改位置
dialog.style.left = left + 'px';
dialog.style.top = top + 'px';
}
});
// 鼠標松開事件
titleBar.addEventListener('mouseup',function(event){
isDrag = false;
});

上述代碼通過CSS和JS實現了彈窗可拖動的功能。在CSS中,設置了彈窗的基本樣式,并為標題欄添加了鼠標拖動的樣式(cursor:move)。在JS中,添加了mousedown、mousemove、mouseup等事件,監聽用戶的拖動操作,并計算新位置、邊界限制等操作。

通過實現此功能,不僅可以增加網頁的交互性和可用性,還能提高用戶的使用體驗。同時,可以參考此代碼,根據實際需求進行更多的自定義操作。

上一篇css 3 叉號