最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實現div高度可拖拽

 更新時間:2021年10月27日 11:46:28   作者:秦浩鋮  
這篇文章主要為大家詳細介紹了vue實現div高度可拖拽,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了vue實現div高度可拖拽的具體代碼,供大家參考,具體內容如下

這里有一個現成的demo,可以實現頁面div的拖拽功能,但是和我想要的效果不是很一樣,所以說后邊有根據我的實際需求又重新修改了一下,先看一下現在的demo效果。

<template>
  <div id="eagleMapContainer" style="border: 1px solid red;overflow-y: auto;" title="">
    <div id="tz" @mousedown="dragEagle" style="border: 1px solid blue;">
      <div title="拖動調整大小" id="move_tz" style="border: 1px solid green;"></div>
    </div>
  </div>
</template>

<script>
  export default {
    name: "eagleMap",
    data() {
      return {}
    },
    methods: {
      dragEagle: function (e) {
        var targetDiv = document.getElementById('eagleMapContainer'); 
        //得到點擊時該地圖容器的寬高:
        var targetDivHeight = targetDiv.offsetHeight;
        var startX = e.clientX;
        var startY = e.clientY;
        var _this = this;
        document.onmousemove = function (e) {
          e.preventDefault();
          //得到鼠標拖動的寬高距離:取絕對值
          var distX = Math.abs(e.clientX - startX);
          var distY = Math.abs(e.clientY - startY);
          //往上方拖動:
          if (e.clientY < startY) {
            targetDiv.style.height = targetDivHeight + distY + 'px';
          }
          //往下方拖動:
          if (e.clientX < startX && e.clientY > startY) {
            targetDiv.style.height = (targetDivHeight - distY) + 'px';
          }
          if (parseInt(targetDiv.style.height) >= 300) {
            targetDiv.style.height = 300 + 'px';
          }
          if (parseInt(targetDiv.style.height) <= 150) {
            targetDiv.style.height = 150 + 'px';
          }
        }
        document.onmouseup = function () {
          document.onmousemove = null;
        }
      }
    },
  };
</script>

<style scoped>
  #eagleMapContainer {
    position: absolute;
    left: 13%;
    bottom: 10px;
    z-index: 200;
    overflow: hidden;
    visibility: visible;
    width: 200px;
    height: 200px;
  }

  #tz {
    position: absolute;
    right: 1px;
    top: 1px;
    width: 27px;
    height: 20px;
    cursor: ne-resize;
    z-index: 200001;
    background-image: url("");

  }

  #tz:hover {
    background-color: #666;
  }

  #move_tz {
    position: absolute;
    right: 0px;
    top: 0px;
    width: 27px;
    height: 20px;
    cursor: ne-resize;
    z-index: 100;
    background-image: url("");
    background-position: 0px 0px;
  }
</style>

但是這個效果和我想要的不是很一樣,所以得稍微改造了一下。

我想要效果是: 我有一個div,里面包含了很多小方塊列表,因為超出設置了超出滾動,所以是在有滾動條的div上添加實現高度變化的拖拽。

接下來就是改造一下上邊的demo,簡單點,直接上代碼:

在上邊需要拖拽的div下面添加一個div,就是點到這個div開始實現拖拽功能。

<!-- 拖拉拽的小框 -->
    <div id="tz" @mousedown="dragEagle">
      <div title="拖動調整大小" id="move_tz"></div>
    </div>

需要根據拖拽實現高度變化的div設置一個id,假設為 “fuDiv”,然后編寫方法。

// 拖拉
      dragEagle(e) {
        var targetDiv = document.getElementById('fuDiv');
        //得到點擊時該地圖容器的寬高:
        var targetDivHeight = targetDiv.offsetHeight;
        var startX = e.clientX;
        var startY = e.clientY;
        var _this = this;
        document.onmousemove = function (e) {
          e.preventDefault();
          //得到鼠標拖動的寬高距離:取絕對值
          var distY = Math.abs(e.clientY - startY);

          //往上方拖動:
          if (e.clientY < startY) {
            targetDiv.style.height = targetDivHeight - distY + 'px';
          }
          //往下方拖動:
          if (e.clientX < startX && e.clientY > startY) {
            targetDiv.style.height = (targetDivHeight + distY) + 'px';
          }
          if (parseInt(targetDiv.style.height) >= 320) {
            targetDiv.style.height = 320 + 'px';
          }
          if (parseInt(targetDiv.style.height) <= 160) {
            targetDiv.style.height = 160 + 'px';
          }
        }
        document.onmouseup = function () {
          document.onmousemove = null;
        }
      },

然后給他們設置一下css樣式,其實這個地方就隨意了,根據自己喜好來。

  #tz {
    width: 100%;
    height: 5px;
    cursor: s-resize;
    z-index: 200001;
  }
  
  #move_tz {
    width: 100%;
    height: 5px;
    cursor: s-resize;
    z-index: 100;
    background-image: url("");
    background-position: 0px 0px;
  }

最后效果:

效果不是特別的好,還有很多地方是值得優(yōu)化以下的,暫時不寫了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • vue 路由meta 設置導航隱藏與顯示功能的示例代碼

    vue 路由meta 設置導航隱藏與顯示功能的示例代碼

    這篇文章主要介紹了vue 路由meta 設置導航隱藏與顯示功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 使用vue實現pdf預覽功能的方法

    使用vue實現pdf預覽功能的方法

    許多朋友想要材料上傳之后點擊預覽實現在瀏覽器上預覽的效果,所以本文將給大家介紹如何使用vue實現pdf預覽功能,文中有實現代碼,有需要的朋友可以參考閱讀下
    2023-08-08
  • vue2實現封裝動態(tài)表單組件

    vue2實現封裝動態(tài)表單組件

    這篇文章主要介紹了vue2實現封裝動態(tài)表單組件,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Vue分別運用class綁定和style綁定通過點擊實現樣式切換

    Vue分別運用class綁定和style綁定通過點擊實現樣式切換

    這篇文章主要為大家介紹了Vue分別運用class綁定和style綁定通過點擊實現樣式切換,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • vue 獲取視頻時長的實例代碼

    vue 獲取視頻時長的實例代碼

    這篇文章主要介紹了vue 獲取視頻時長的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • Vue如何動態(tài)修改el-table的某列數據

    Vue如何動態(tài)修改el-table的某列數據

    這篇文章主要介紹了Vue如何動態(tài)修改el-table的某列數據,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue解決跨域問題的幾種方式

    vue解決跨域問題的幾種方式

    這篇文章主要給大家介紹了關于vue解決跨域問題的幾種方式,跨域跨域報錯是前端開發(fā)中非常經典的一個錯誤,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • Vue3+Element-plus項目自動導入報錯的解決方案

    Vue3+Element-plus項目自動導入報錯的解決方案

    vue3出來一段時間了,element也更新了版本去兼容vue3,下面這篇文章主要給大家介紹了關于Vue3+Element-plus項目自動導入報錯的解決方案,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • VUE?html5-qrcode實現H5掃一掃功能實例

    VUE?html5-qrcode實現H5掃一掃功能實例

    這篇文章主要給大家介紹了關于VUE?html5-qrcode實現H5掃一掃功能的相關資料,html5-qrcode是輕量級和跨平臺的QR碼和條形碼掃碼的JS庫,集成二維碼、條形碼和其他一些類型的代碼掃描功能,需要的朋友可以參考下
    2023-08-08
  • vue實現圖片拖拽功能

    vue實現圖片拖拽功能

    這篇文章主要為大家詳細介紹了vue實現圖片拖拽功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評論

彩票| 巴东县| 伊宁县| 建昌县| 吉隆县| 鄂伦春自治旗| 琼结县| 新民市| 黄冈市| 桃园市| 邳州市| 抚州市| 宁陵县| 肥城市| 福海县| 乾安县| 长丰县| 阿城市| 鄂伦春自治旗| 深圳市| 竹溪县| 德保县| 封丘县| 盐源县| 漯河市| 镇江市| 辽阳市| 印江| 富民县| 高密市| 扎兰屯市| 蓬安县| 光山县| 文化| 岳阳县| 清丰县| 安阳市| 景谷| 武胜县| 鄂托克旗| 昭通市|