亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

jQuery實(shí)現(xiàn)點(diǎn)擊按鈕彈出可拖拽模態(tài)對(duì)話框完整實(shí)例【測(cè)試可用】 原創(chuàng)

原創(chuàng)  更新時(shí)間:2023年04月25日 18:26:15   原創(chuàng) 投稿:shichen2014  
這篇文章主要介紹了jQuery實(shí)現(xiàn)點(diǎn)擊按鈕彈出可拖拽模態(tài)對(duì)話框的方法,結(jié)合完整實(shí)例形式分析了jQuery調(diào)用模態(tài)對(duì)話框的基本原理、實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下

css部分:

.dialog {
  display: none; /* 初始隱藏 */
  position: absolute;
  width: 300px;
  height: 200px;
  top: 50px;
  left: 50px;
  background-color: #fff;
  border: 1px solid #ccc;
  box-shadow: 0 0 10px rgba(0,0,0,.2);
}
.dialog-header {
  height: 30px;
  line-height: 30px;
  padding: 0 10px;
  font-size: 16px;
  font-weight: bold;
  background-color: #f5f5f5;
  border-bottom: 1px solid #ccc;
  cursor: move; /* 允許拖拽 */
}
.dialog-body {
  padding: 10px;
}

/* 遮罩層樣式 */
.mask {
  display: none; /* 初始隱藏 */
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: rgba(0,0,0,.3);
}

html部分:

<!-- 點(diǎn)擊按鈕彈出對(duì)話框的按鈕 -->

<button class="dialog-trigger">點(diǎn)擊彈出對(duì)話框</button>

<!-- 對(duì)話框 -->

<div class="dialog" id="dialog">

  <div class="dialog-header">對(duì)話框</div>

  <div class="dialog-body">這里是對(duì)話框內(nèi)容</div>

</div>

js部分:

$(function() {
  var $dialog = $('.dialog'); // 對(duì)話框
  var $mask = $('.mask'); // 遮罩層
  var isDragging = false; // 是否拖拽中

  // 點(diǎn)擊彈出對(duì)話框
  $('.dialog-trigger').click(function() {
    $dialog.show(); // 顯示對(duì)話框
    $mask.show(); // 顯示遮罩層
  });

  // 拖拽對(duì)話框
  $dialog.find('.dialog-header').mousedown(function(e) {
    isDragging = true; // 開(kāi)始拖拽
    var startX = e.pageX; // 鼠標(biāo)按下時(shí)的X坐標(biāo)
    var startY = e.pageY; // 鼠標(biāo)按下時(shí)的Y坐標(biāo)
    var left = $dialog.offset().left; // 對(duì)話框初始的left值
    var top = $dialog.offset().top; // 對(duì)話框初始的top值

    // 拖拽事件
    $(document).mousemove(function(e) {
      if (isDragging) {
        var moveX = e.pageX - startX; // 鼠標(biāo)移動(dòng)的X距離
        var moveY = e.pageY - startY; // 鼠標(biāo)移動(dòng)的Y距離
        $dialog.css({
          left: left + moveX + 'px',
          top: top + moveY + 'px'
        });
      }
    });

    // 停止拖拽事件
    $(document).mouseup(function() {
      isDragging = false;
    });
  });

  // 點(diǎn)擊遮罩層或?qū)υ捒虻年P(guān)閉按鈕,隱藏對(duì)話框和遮罩層
  $mask.click(function() {
    $dialog.hide();
    $mask.hide();
  });
  $dialog.find('.dialog-close').click(function() {
    $dialog.hide();
    $mask.hide();
  });
});

完整實(shí)例如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery點(diǎn)擊彈出模態(tài)對(duì)話框</title>
<style>

.dialog {
  display: none; /* 初始隱藏 */
  position: absolute;
  width: 300px;
  height: 200px;
  top: 50px;
  left: 50px;
  background-color: #fff;
  border: 1px solid #ccc;
  box-shadow: 0 0 10px rgba(0,0,0,.2);
}
.dialog-header {
  height: 30px;
  line-height: 30px;
  padding: 0 10px;
  font-size: 16px;
  font-weight: bold;
  background-color: #f5f5f5;
  border-bottom: 1px solid #ccc;
  cursor: move; /* 允許拖拽 */
}
.dialog-body {
  padding: 10px;
}

/* 遮罩層樣式 */
.mask {
  display: none; /* 初始隱藏 */
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: rgba(0,0,0,.3);
}

</style>

</head>

<body>

<!-- 點(diǎn)擊按鈕彈出對(duì)話框的按鈕 -->

<button class="dialog-trigger">點(diǎn)擊彈出對(duì)話框</button>

<!-- 對(duì)話框 -->

<div class="dialog" id="dialog">

  <div class="dialog-header">對(duì)話框</div>

  <div class="dialog-body">這里是對(duì)話框內(nèi)容</div>

</div>

<script src="http://libs.baidu.com/jquery/2.0.3/jquery.min.js"></script>

<script>

$(function() {
  var $dialog = $('.dialog'); // 對(duì)話框
  var $mask = $('.mask'); // 遮罩層
  var isDragging = false; // 是否拖拽中

  // 點(diǎn)擊彈出對(duì)話框
  $('.dialog-trigger').click(function() {
    $dialog.show(); // 顯示對(duì)話框
    $mask.show(); // 顯示遮罩層
  });

  // 拖拽對(duì)話框
  $dialog.find('.dialog-header').mousedown(function(e) {
    isDragging = true; // 開(kāi)始拖拽
    var startX = e.pageX; // 鼠標(biāo)按下時(shí)的X坐標(biāo)
    var startY = e.pageY; // 鼠標(biāo)按下時(shí)的Y坐標(biāo)
    var left = $dialog.offset().left; // 對(duì)話框初始的left值
    var top = $dialog.offset().top; // 對(duì)話框初始的top值

    // 拖拽事件
    $(document).mousemove(function(e) {
      if (isDragging) {
        var moveX = e.pageX - startX; // 鼠標(biāo)移動(dòng)的X距離
        var moveY = e.pageY - startY; // 鼠標(biāo)移動(dòng)的Y距離
        $dialog.css({
          left: left + moveX + 'px',
          top: top + moveY + 'px'
        });
      }
    });

    // 停止拖拽事件
    $(document).mouseup(function() {
      isDragging = false;
    });
  });

  // 點(diǎn)擊遮罩層或?qū)υ捒虻年P(guān)閉按鈕,隱藏對(duì)話框和遮罩層
  $mask.click(function() {
    $dialog.hide();
    $mask.hide();
  });
  $dialog.find('.dialog-close').click(function() {
    $dialog.hide();
    $mask.hide();
  });
});

</script>

</body>

</html>

感興趣的朋友可以使用本站在線工具:http://tools.jb51.net/code/HtmlJsRun 測(cè)試上述代碼運(yùn)行效果!

PS:該實(shí)例中的模態(tài)對(duì)話框?qū)崿F(xiàn),其實(shí)是增加上了一層mask的遮罩層,將這層遮罩層去掉,就是非模態(tài)對(duì)話框!感興趣的朋友可以自己動(dòng)手調(diào)試一下~

相關(guān)文章

最新評(píng)論