成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > HTML 拖拉功能的實(shí)現(xiàn)代碼

HTML 拖拉功能的實(shí)現(xiàn)代碼

熱門標(biāo)簽:重慶人工智能電銷機(jī)器人報(bào)價(jià) 愛(ài)巢地圖標(biāo)注 長(zhǎng)春極信防封電銷卡公司 貴陽(yáng)ai外呼系統(tǒng) 電話機(jī)器人批發(fā) 強(qiáng)訊外呼系統(tǒng) 智能電銷機(jī)器人廣告語(yǔ) 電銷外呼線路改不外呼線路 crm外呼系統(tǒng)好不好

基于 vue

此功能核心思想就是通過(guò) JavaScript 代碼控制 node 在頁(yè)面上的左邊距與頂邊距,不同的的樣式定位方式有不同的解決方案

本方案采用position: absolute定位方式的解決方案

css 樣式的核心代碼

// 父容器核心樣式

  width: 100%;
  height: 100%;
// 子容器核心樣式
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);

父容器通過(guò)width && height字段占滿整個(gè)瀏覽器的可視范圍,子容器通過(guò)position: absolute屬性開(kāi)啟在父容器內(nèi)的絕對(duì)定位,在通過(guò)top && left && transform: translate(-50%, -50%)屬性控制子容器在父容器內(nèi)的絕對(duì)位置

JavaScript 邏輯控制的核心代碼

首先分解下,要實(shí)現(xiàn) node 的移動(dòng)需要哪些步驟和對(duì)應(yīng)的 event 事件

  • 子容器創(chuàng)建時(shí),在父容器內(nèi)的絕對(duì)位置
  • 鼠標(biāo)按鍵按下時(shí),onmousedown 事件
  • 鼠標(biāo)移動(dòng)時(shí),onmousemove 事件
  • 鼠標(biāo)按鍵彈起時(shí),onmouseup 事件

只要使用 onMousedown、onMousemove和onMouseup 這三個(gè)事件,就可以實(shí)現(xiàn)最簡(jiǎn)單的移動(dòng)

/*
* 在子容器創(chuàng)建的時(shí)候獲取子容器相對(duì)于父容器的 top 和 left 位置
*/

mounted () {
  this.left = this.$refs.fatherBox.offsetLeft
  this.top = this.$refs.fatherBox.offsetTop
}
/*
* 鼠標(biāo)按下時(shí)
* 1. 開(kāi)啟允許子容器移動(dòng)的 flag
* 2. 記錄鼠標(biāo)點(diǎn)擊時(shí)的位置信息
*/

mouseDown (e) {
  // 設(shè)置允許彈窗移動(dòng)的 flag
  this.moveFlag = true
  // 保存鼠標(biāo)開(kāi)始位置
  this.startLeft = e.clientX - this.left
  this.startTop = e.clientY - this.top
}
/*
* 鼠標(biāo)移動(dòng)時(shí)
* 1. 判斷 flag 是否允許子容器移動(dòng)
* 2. 設(shè)置彈框左邊位置
* 3. 設(shè)置彈框右邊位置
*/

move (e) {
  // 判斷 flag 是否允許移動(dòng)
  if (!this.moveFlag) return

  // 設(shè)置彈框左邊位置
  this.left = e.clientX - this.startLeft
  // 設(shè)置彈框右邊位置
  this.top = e.clientY - this.startTop

}
/*
* 鼠標(biāo)按鍵彈起時(shí)
* 1. 關(guān)閉允許子容器移動(dòng)的 flag
*/

mouseUp (e) {
  this.flag = false
}

通過(guò)這幾個(gè)方法就可以獲取鼠標(biāo)按下移動(dòng)時(shí),鼠標(biāo)的top 和 left 的偏移量,通過(guò)把這偏移量暴露出去給父組件,父組件實(shí)時(shí)設(shè)置子組件的 top 和 left 值,來(lái)使得子容器跟隨鼠標(biāo)的移動(dòng)

父組件部分代碼

父組件通過(guò)設(shè)置子組件的 ref、zIndex 值,而且父組件的 backValue 方法會(huì)從子組件接收 zIndex 值,通過(guò) zIndex 來(lái)識(shí)別具體的子組件實(shí)例

/*
* 父組件代碼片段 jsx 版
*/

export default {
  props: {
    playList: {
      type: Array,
      required: true
    }
  },
  render () {
    return (
      <div style={{width: '100%', height: '100%'}} ref={'father'}>
        {
          this.playList && this.playList.map((item, index) => {
            return (
              <ChildComponents
                key={index}
                ref={index}
                zIndex={index}
                visible={true}
                backValue={this.backValue}
                info={item}
                width={600}
                height={400}
              />
            )
          })
        }
      </div>
    )
  },
  methods: {
    backValue (left, top, zIndex) {
      this.$refs[zIndex].$el.style.top = `${top}px`
      this.$refs[zIndex].$el.style.left = `${left}px`
    }
  }
}
<!-- 父組件代碼片段 vue 文件版 -->

<template>
  <div
    ref="father"
    style"width: 100%, height: 100%"
  >
    <ChildComponents
      v-for="(item, index) in playList"
      :key="index"
      :ref="index"
      :visible="true"
      :z-index="index"
      :back-value="backValue"
      :info="item"
      :close="close"
      :width="600"
      :height="400"
    />
  </div>
</template>
<script>
export default {
  components: {
    VideoPlayerModal
  },
  props: {
    playList: {
      type: Array,
      required: true
    }
  },
  methods: {
    backValue (left, top, zIndex) {
      this.$refs[zIndex][0].$el.style.top = `${top}px`
      this.$refs[zIndex][0].$el.style.left = `${left}px`
    }
  }
}
</script>

設(shè)置子組件的圍欄范圍

這個(gè)功能只需要在 onmousemove 事件中進(jìn)行判斷 子容器的 top 和 left 是否超出瀏覽器的可視范圍

/*
* 1. this.width 數(shù)據(jù)為父組件傳遞進(jìn)來(lái)的 width 值,或者子組件本身設(shè)置的默認(rèn)值
* 2. this.height 數(shù)據(jù)為父組件傳遞進(jìn)來(lái)的 height 值,或者子組件本身設(shè)置的默認(rèn)值
*/

move (e) {
  // 判斷 flag 是否允許移動(dòng)
  if (!this.moveFlag) return

  // 判斷是否超出左邊視圖
      if (this.$refs.fatherBox.offsetLeft < this.width / 2) {
        // 禁止彈框移動(dòng)
        this.moveFlag = false
        // 設(shè)置彈框左邊位置
        this.left = this.width / 2 + 10
        // 調(diào)用回調(diào)函數(shù)把偏移量暴露給父組件
        this.backValue(this.left, this.top, this.zIndex)
        return
      }

      // 判斷是否超出右邊視圖
      if (this.$refs.fatherBox.offsetLeft > document.body.clientWidth - this.width / 2) {
        // 禁止彈框移動(dòng)
        this.moveFlag = false
        // 設(shè)置彈框右邊位置
        this.left = document.body.clientWidth - this.width / 2 - 10
        // 調(diào)用回調(diào)函數(shù)把偏移量暴露給父組件
        this.backValue(this.left, this.top, this.zIndex)
        return
      }

      // 判斷是否超出頂部視圖
      if (this.$refs.fatherBox.offsetTop < this.height / 2 + 70) {
        // 禁止彈框移動(dòng)
        this.moveFlag = false
        // 設(shè)置彈框頂部位置
        this.top = this.height / 2 + 70 + 10
        // 調(diào)用回調(diào)函數(shù)把偏移量暴露給父組件
        this.backValue(this.left, this.top, this.zIndex)
        return
      }

      // 判斷是否超出底部視圖
      if (this.$refs.fatherBox.offsetTop > document.body.clientHeight - this.height / 2 - 50) {
        // 禁止彈框移動(dòng)
        this.moveFlag = false
        // 設(shè)置彈框底部位置
        this.top = document.body.clientHeight - this.height / 2 - 50 - 10
        // 調(diào)用回調(diào)函數(shù)把偏移量暴露給父組件
        this.backValue(this.left, this.top, this.zIndex)
        return
      }

      // 設(shè)置彈框左邊位置
      this.left = e.clientX - this.startLeft
      // 設(shè)置彈框右邊位置
      this.top = e.clientY - this.startTop

      // 調(diào)用回調(diào)函數(shù)把偏移量暴露給父組件
      this.backValue(this.left, this.top, this.zIndex)
}

子組件還要設(shè)置一個(gè)當(dāng)鼠標(biāo)超出子容器時(shí)的 onmouseout 事件,用來(lái)防止不可預(yù)期的 bug 問(wèn)題

mouseOut (e) {
  this.moveFlag = false
}

到此這篇關(guān)于HTML 拖拉功能的文章就介紹到這了,更多相關(guān)HTML 拖拉功能內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

標(biāo)簽:陜西 山南 清遠(yuǎn) 保定 吳忠 廣安 內(nèi)蒙古 上海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HTML 拖拉功能的實(shí)現(xiàn)代碼》,本文關(guān)鍵詞  HTML,拖拉,功能,的,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《HTML 拖拉功能的實(shí)現(xiàn)代碼》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于HTML 拖拉功能的實(shí)現(xiàn)代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    久久久蜜桃一区二区| 麻豆精品视频在线观看视频| 成人av地址| 亚洲精品视频一二三| 丝袜理论片在线观看| 天海翼一区二区三区免费| 91视频一区| 成人手机在线播放| 国产欧美久久久久| 欧美乱大交xxxxx另类电影| 国产欧美日韩视频一区二区三区| 樱桃视频成人在线观看| 白浆视频在线观看| 精品久久中文字幕| 亚洲精品二三区| 黄色手机在线视频| 亚洲丝袜另类动漫二区| 日韩精品一区二区三区老鸭窝| 国产免费视频在线| 成人97人人超碰人人99| 国产亚洲欧美中文| 国产亚洲1区2区3区| 亚洲综合五月天| 激情六月综合| 在线免费91| 欧美日韩免费精品| 国模大尺度私拍在线视频| 久久尤物电影视频在线观看| 欧美美女搞黄| 精品自拍视频在线观看| 555夜色666亚洲国产免| 亚洲va欧美va天堂v国产综合| 欧美精品一区二区三区四区五区| 狠狠久久伊人中文字幕| 俺去啦;欧美日韩| 久久精品123| 蜜臀av无码一区二区三区| 红桃视频国产一区| 亚洲国产精品成人久久蜜臀| 日韩欧美一二三区| 国产欧美一区二区色老头| 久久成人综合网| 91精品一久久香蕉国产线看观看| 中国女人特级毛片| 一本一本大道香蕉久在线精品| 簧片在线免费看| 精品国产自在久精品国产| 男同互操gay射视频在线看| 免费看成人片| 99在线精品视频免费观看20| 69xxxx国产| 波多野结衣激情| 国产精品久久久久77777丨| 中日韩精品视频在线观看| 国产精品久久久久久久久久| 中日韩一级黄色片| 日本精品久久久久久久久久| 精品处破学生在线二十三| 福利视频一区二区三区四区| 在线天堂中文资源最新版| 国产精品毛片一区二区三区四区| 飘雪影院手机免费高清版在线观看| 久久av在线| 成人免费毛片日本片视频| 日韩激情精品| 亚洲一级视频在线观看| 国产精品一区三区在线观看| 精品国产乱码久久久久久果冻传媒| 久久99热国产| av男人的天堂在线观看| 亚洲午夜激情| 精品一卡二卡三卡| 国产精品99久久免费观看| 俺去俺来也在线www色官网| 国产va免费精品观看精品| 操人视频在线观看欧美| 老牛国产精品一区的观看方式| 一级做a爰片久久毛片16| 色综合久久中文综合久久牛| 久久人人爽人人爽人人片av不| 国产最新免费视频| 亚洲成人1234| 国产清纯白嫩初高生在线观看91| 91超碰这里只有精品国产| 久久精品亚洲天堂| 亚洲 高清 成人 动漫| 成人亚洲欧美日韩在线观看| 国产免费电影网站入口| 欧美日韩国产一区二区| 日本一区二区久久精品| 麻豆tv免费在线观看| 香蕉视频官网在线观看日本一区二区| 国产一区二区在线观看免费视频| 久久99国产成人小视频| 99精品福利视频| 黄色av网址在线免费观看| 一本到一区二区三区| 亚洲va国产日韩欧美精品色婷婷| 日韩精品黄色| 国产精品51麻豆cm传媒| 热久久天天拍国产| 欧美大片在线免费观看| 亚洲国产中文字幕久久网| 亚洲五月六月丁香激情| 麻豆av电影在线观看| 国产成人啪午夜精品网站男同| 欧美日韩国产在线播放网站| 奇米影视第四色777| 成人黄色大片在线免费观看| 三年中文高清在线观看第6集| 久久精品国产亚洲aⅴ| 2019国产精品视频| 亚洲第一在线综合在线| 色婷婷精品视频| 欧美xxav| 国产精品久久毛片av大全日韩| 97色婷婷成人综合在线观看| 免费日韩一区二区| 日韩黄色大片网站| 99久久伊人网影院| 精品国产sm最大网站免费看| 国产精品久久久久久久av福利| 亚洲av人人澡人人爽人人夜夜| 人人澡人人澡人人看| 一区二区三区免费在线观看| 久久av高潮av无码av喷吹| 最新中文字幕在线| 污影院在线观看| 欧美最顶级a∨艳星| 老司机午夜激情| 精品999在线观看| 欧美成人全部免费| 九色在线播放| 国产精品无码在线播放| 亚洲国产精品一区二区久| 欧美日韩亚洲另类| 亚洲在线视频| 国产精品剧情一区二区在线观看| 欧美与亚洲与日本直播| 亚洲乱码国产一区三区| 精品一区二区三区视频在线观看| 牛人国产偷窥女洗浴在线观看| 91福利视频在线| 精品极品在线| 免费a级片网站| 国产成人麻豆精品午夜在线| 国产精品一区二区免费福利视频| 99精品国产高清一区二区| 五月天久久网站| 粉嫩一区二区三区性色av| www.男人天堂.com| 日本xxxxxxxxxx75| 色天天综合狠狠色| 色av中文字幕| 黄色免费看片| 欧美激情亚洲一区| 亚洲精品国产欧美| 亚洲大片精品免费| 男女污视频在线观看| 精品国产亚洲一区二区麻豆| 亚洲欧美一区二区三区四区五区| 色婷婷久久久| 欧美色图色综合| 成人免费视频国产在线观看| 久久综合网色—综合色88| 污视频在线免费观看| 欧美性xxxxx极品| 亚洲国产高清一区二区三区| 久草视频免费在线播放| 亚洲国产成人爱av在线播放| 欧美主播一区二区三区美女| 国产精品7区| 日韩有吗在线观看| 一本久道久久久| 尤物网站在线看| 久久久久性色av无码一区二区| 舔着乳尖日韩一区| 欧美日韩久久久| 亚洲japanese制服美女| 亚洲精品成人| 国产精品一二三在线| aa在线观看视频| 午夜宅男久久久| 日韩pacopacomama| 美女网站黄页| asian性开放少妇pics| 日韩亚洲欧美一区二区| 香港日本韩国三级网站| 久久亚洲人体| 欧美三区免费完整视频在线观看| 先锋影音av321| 久久国产主播| 久久久久久久久久久网| 国产91精品黑色丝袜高跟鞋| 日韩欧美精品一区二区三区| 天天躁日日躁狠狠躁av麻豆男男| 成人国产一区二区三区精品| 91亚洲一区二区| 欧美性猛交xxxx黑人猛交| 永久免费在线观看视频| 国产三区视频在线观看| 福利片免费在线观看| 99中文视频在线| 欧美连裤袜在线视频| 青青草超碰在线| 欧美综合一区第一页| 亚洲 欧美 日韩 国产综合 在线| 野花国产精品入口| 亚洲天堂成人在线| 久久久久.com| 狂野欧美xxxx韩国少妇| 亚洲天堂成人av| 永久免费精品影视网站| 日本在线免费观看一区| 亚洲精品免费播放| 国产69久久精品成人看| 国产91在线免费观看| 日韩porn| 久久综合伊人77777| 国产成人精品免高潮在线观看| 亚洲一区在线直播| 精品人妻无码一区二区| 黑人巨大精品欧美一区二区一视频| 精品久久久久久久久久中文字幕| 91gao视频| 午夜精品久久久久久久蜜桃| 欧洲激情一区二区| 欧美乱偷一区二区三区在线| 性欧美精品一区二区三区在线播放| 国产精品人成在线观看免费| a级黄色片网站| 日本欧美中文字幕| 亚洲欧美天堂在线| 日韩av一区二区在线播放| 久久国产午夜精品理论片最新版本| 韩国一区二区三区四区| 色姑娘综合网| 欧美日韩在线精品一区二区三区激情| gogogo影视剧免费观看在线观看| 色拍拍在线精品视频8848| 91豆花视频在线播放| 午夜精品视频在线| 在线日韩av永久免费观看| 亚洲精品资源在线| 国产亚洲精品av| 久久精品视频久久| 日本少妇精品亚洲第一区| 国产三级短视频| 韩国av在线播放| 成人午夜淫片100集| 黄色片网站在线播放| 国产精品久久久久久免费观看| 国产农村一级特黄α**毛片| 超碰在线最新| 天堂成人在线观看| 国产高清在线视频| 福利片一区二区三区| 精品偷拍一区二区三区在线看| 欧美激情xxxxx| 国产在线看一区| 成人激情自拍| www在线看| 国产男女猛烈无遮挡91| 久操视频在线观看| 亚洲熟妇无码另类久久久| 91超碰国产在线| 久久久亚洲欧洲日产国码αv| 7777kkk亚洲综合欧美网站| www.成人精品| 久久久精品国产sm调教网站| 在线观看亚洲黄色| 超级碰碰视频| 国产主播一区二区| 综合一区中文字幕| 美女黄视频在线播放| 精品成人无码久久久久久| 在线观看日韩中文字幕| 精品欧美不卡一区二区在线观看| 欧美在线一级视频| 蜜臀久久99精品久久久画质超高清| 夜夜精品浪潮av一区二区三区| 久久精品电影网站| 一个人在线视频免费观看www| 蜜桃视频在线观看免费视频| 日本特级黄色片| 国产黄色激情视频| 成人信息集中地欧美| 久久婷婷成人综合色| 国产黄色精品| 久草资源在线视频| www.黄色网址.com| 57pao成人永久免费视频| 日日摸夜夜添夜夜添毛片av| 麻豆成全视频免费观看在线看| 全程偷拍露脸中年夫妇| 99热这里只有精品在线播放| 成人国产在线观看| 老司机在线视频二区| 日韩中文字幕一区二区高清99| 欧美性黄网官网| 亚洲人成绝费网站色www| 欧日韩一区二区三区| 逼特逼视频在线观看| 黄色小视网站| 亚洲综合av影视| 欧美中文高清| 97精品中文字幕| 亚洲一本大道在线| 国产视频xxxx| 欧美激情一区二区三区免费观看| 天天色图综合网| 日韩禁在线播放| 国产精品变态另类虐交| 奇米一区二区三区av| 国产日本一区二区三区| 久久精品成人av| 成人免费一区二区三区牛牛| 国产又爽又黄又刺激的软件| 视频成人永久免费视频| 亚洲天堂精品在线观看| 中文字幕在线中文字幕二区| 亚洲欧美乱综合图片区小说区| 无套内谢的新婚少妇国语播放| 男人捅女人免费视频| 亚洲国产黄色| 蜜桃av网站| 成人情趣视频网站| 色婷婷综合久久久久久|