Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲一区二区三区中文字幕 ,最近中文字幕2019视频1,亚洲一区二区三

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          演示HTML5中的拖曳操作代碼詳見(jiàn)教材demo3-8

          示HTML5中的拖曳操作代碼詳見(jiàn)教材demo3-8

          <!DOCTYPE html>

          <html>

          <head>

          <title>全景圖</title>

          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

          <script type="text/javascript"

          src="http://api.map.baidu.com/api?v=2.0&ak=4qXTGvclMqTZXkLsU3twnMA7">

          </script>

          <style type="text/css">

          body, html{

          width: 100%;

          height: 100%;

          overflow: hidden;

          margin:0;

          font-family:"微軟雅黑";

          }

          #panorama {

          height: 100%;

          width: 100%;

          overflow: hidden;

          }

          </style>

          </head>

          <body>

          <div id="panorama"></div>

          <script type="text/javascript">

          var jd="116.349902";

          var wd="40.065817";

          //全景圖展示

          var panorama = new BMap.Panorama('panorama');

          panorama.setPosition(new BMap.Point(jd, wd)); //根據(jù)經(jīng)緯度坐標(biāo)展示全景圖

          panorama.setPov({heading: -40, pitch: 6});

          //全景圖位置改變后,普通地圖中心點(diǎn)也隨之改變

          panorama.addEventListener('position_changed', function(e){

          var pos = panorama.getPosition();

          map.setCenter(new BMap.Point(pos.lng, pos.lat));

          marker.setPosition(pos);

          });

          </script>

          </body>

          </html>

          目前重點(diǎn)放在別的東西上,所以這個(gè)插件不再更新,只能用于pc端,移動(dòng)端自己可以fork進(jìn)行優(yōu)化。

          Install

          yarn add vue-dragging

          How to use

          普通html

          <script src="./vue.js"></script>
          <script src="./vue-drag.min.js"></script>

          是vue-drag.js不是vue-dragging.js

          如果你的項(xiàng)目使用vue-cli搭建的 那么請(qǐng)這樣使用:

          import Vue from 'vue'
          import vueDrag from 'vue-dragging'
          Vue.use(vueDrag)

          在html當(dāng)中添加標(biāo)簽,然后添加一個(gè)'v-drag',假設(shè)為:

          <div class="demo">
            <div class="drag" v-drag></div>
          </div>

          這樣綁定的dom就可以拖拽

          1.1.0

          加入了一個(gè)可拖拽區(qū)域和不可拖區(qū)域的方法,示例如下:

                  <div class="demo2" v-drag="'#dragable'">
                      <div id="dragable"><span>這里可以拖動(dòng)</span></div>
                      <div class="content"><span>這里不可以</span></div>
                  </div>

          value傳的是一個(gè)選擇器,會(huì)讓當(dāng)前dom下第一個(gè)找到的seletor允許拖拽

          如果你想讓鼠標(biāo)指針變成move,那么這樣:

                  <div class="demo2" v-drag.cursor="'#dragable'">
                      <div id="dragable"><span>這里可以拖動(dòng)</span></div>
                      <div class="content"><span>這里不可以</span></div>
                  </div>

          當(dāng)然你也可以自己寫樣式去替換

          端拖拽技術(shù)是一項(xiàng)非常具有實(shí)用性和發(fā)展?jié)摿Φ募夹g(shù),有望在未來(lái)的項(xiàng)目中得到更加廣泛的應(yīng)用和推廣。

          1、開(kāi)發(fā)前準(zhǔn)備

          要實(shí)現(xiàn)拖拽,你需要掌握以下幾個(gè)知識(shí)點(diǎn):

          HTML5 Drag and Drop API

          JavaScript事件監(jiān)聽(tīng)

          CSS3布局

          jQuery(可選)

          當(dāng)你掌握了這些知識(shí)后,可以開(kāi)始著手開(kāi)發(fā)這個(gè)項(xiàng)目。


          2、搭建項(xiàng)目

          <!DOCTYPE html>
          <html>
          <head>
          	<title>JS前端拖拽DEMO</title>
          	<meta charset="UTF-8">
          	<link rel="stylesheet" type="text/css" href="style.css">
          	<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
          	<script type="text/javascript" src="script.js"></script>
          </head>
          <body>
          	<div class="container"></div>
          </body>
          </html>


          3、實(shí)現(xiàn)拖拽功能

          我們需要利用 HTML5 Drag and Drop API 實(shí)現(xiàn)元素的拖拽功能。該 API 提供了 3 個(gè)事件:dragstart、dragover 和 drop。

          $(function() {
          	var dragElement = null;
          
          	$('.container')
          		.on('dragstart', '.draggable', function(event){
          			dragElement = event.target;
          		})
          		.on('dragover', function(event){
          			event.preventDefault();
          			$(event.target).addClass('over');
          		})
          		.on('dragleave', function(event){
          			event.preventDefault();
          			$(event.target).removeClass('over');
          		})
          		.on('drop', function(event){
          			event.preventDefault();
          			$(event.target).append(dragElement);
          			$('.container').find('*').removeClass('over');
          		});
          });

          這段代碼中,我們定義了一個(gè) dragElement 變量用于存儲(chǔ)被拖動(dòng)的元素,我們?cè)?dragstart 事件中記錄該元素。在 dragover 事件中,取消默認(rèn)行為,并添加樣式類 over,用于表示當(dāng)前元素是可放置的。當(dāng)元素離開(kāi)了可放置的區(qū)域時(shí)(dragleave事件),我們需要移除 over 類。最后,當(dāng)元素被放置到目標(biāo)區(qū)域時(shí)(drop 事件),我們將該元素追加到目標(biāo)容器內(nèi),并移除所有 over 樣式類。


          4、實(shí)現(xiàn)可拖拽元素

          現(xiàn)在我們已經(jīng)能夠讓元素在頁(yè)面上拖拽了,但是我們?cè)趺磳?shí)現(xiàn)拖拽的元素呢?對(duì)于可拖拽的元素,一般來(lái)說(shuō),我們會(huì)將該元素封裝到一個(gè)元素中,將這個(gè)父元素設(shè)置為可拖拽的。

          <div class="item draggable">
          	<h2>標(biāo)題</h2>
          	<p>這里是內(nèi)容</p>
          </div>


          5、實(shí)現(xiàn)添加功能

          我們需要實(shí)現(xiàn)動(dòng)態(tài)添加元素的功能。為了讓項(xiàng)目更有可操作性,我們可以在頁(yè)面上增加一個(gè)添加按鈕。

          <div class="toolbar">
          	<button class="add-item">添加</button>
          </div>

          下面我們來(lái)實(shí)現(xiàn)添加功能。

          $(function() {
          	var dragElement = null;
          
          	$('.container')
          		.on('dragstart', '.draggable', function(event){
          			dragElement = event.target;
          		})
          		.on('dragover', function(event){
          			event.preventDefault();
          			$(event.target).addClass('over');
          		})
          		.on('dragleave', function(event){
          			event.preventDefault();
          			$(event.target).removeClass('over');
          		})
          		.on('drop', function(event){
          			event.preventDefault();
          			$(event.target).append(dragElement);
          			$('.container').find('*').removeClass('over');
          		});
          
          	$('.add-item').click(function(){
          		$('.container').append('<div class="item draggable"><h2>標(biāo)題</h2><p>這里是內(nèi)容</p></div>');
          	});
          });

          在這段代碼中,我們首先定義了一個(gè)變量: dragElement ,用于記錄當(dāng)前被拖拽的元素。添加按鈕的 click 事件中,將一個(gè)新的元素添加到 container 容器中。


          6、實(shí)現(xiàn)樣式和布局

          我們需要對(duì)元素的樣式和布局進(jìn)行設(shè)計(jì)。我們可以先定義一些基本的樣式,然后通過(guò) CSS3 的 flexbox 布局進(jìn)行排列。

          body {
          	margin: 0;
          	padding: 0;
          }
          
          .container {
          	display: flex;
          	flex-wrap: wrap;
          	padding: 20px;
          }
          
          .item {
          	background-color: #fff;
          	box-shadow: 0 2px 4px rgba(0,0,0,0.15);
          	padding: 20px;
          	margin: 10px;
          	flex-basis: calc(33.33% - 20px);
          	max-width: calc(33.33% - 20px);
          	text-align: center;
          }
          
          .item h2 {
          	margin: 0;
          	font-size: 16px;
          }
          
          .item p {
          	margin: 10px 0;
          	font-size: 14px;
          	line-height: 1.5;
          }
          
          .draggable {
          	cursor: move;
          }

          在這段代碼中,我們定義了 container 容器和 item 元素的樣式。我們還將 .draggable 元素的鼠標(biāo)指針樣式設(shè)置為 move,表示該元素可以拖拽。


          小結(jié)

          如果您想要實(shí)現(xiàn)不選中文本即可拖拽組件,您需要為每個(gè)組件的 draggable 屬性設(shè)置為 true 才可以。

          <div class="item" draggable="true">
            <h2>標(biāo)題</h2>
            <p>這里是內(nèi)容</p>
          </div>

          通過(guò)以上的實(shí)現(xiàn)過(guò)程可以深入了解到 HTML5 Drag and Drop API、JavaScript 事件監(jiān)聽(tīng)、CSS3布局、jQuery 庫(kù)的使用等知識(shí)。此外,通過(guò)實(shí)際操作演示,進(jìn)一步了解前端拖拽開(kāi)發(fā)的工作原理和技術(shù)知識(shí)點(diǎn)。

          期望本文的內(nèi)容對(duì)您的學(xué)習(xí)和工作有所幫助,如果您有其他問(wèn)題或建議,歡迎在評(píng)論區(qū)留言。


          人人為我,我為人人,謝謝您的瀏覽,我們一起加油吧。


          主站蜘蛛池模板: 中文字幕一区在线观看视频| 亚洲毛片αv无线播放一区| 无码国产精品一区二区免费式芒果 | aⅴ一区二区三区无卡无码| 91福利国产在线观看一区二区 | 无码人妻精品一区二区三区不卡| 一区二区三区电影网| 偷拍激情视频一区二区三区| 清纯唯美经典一区二区| 日韩成人无码一区二区三区| 亚洲日韩国产一区二区三区| 欧美激情国产精品视频一区二区| 秋霞午夜一区二区| 精品免费久久久久国产一区 | 色婷婷一区二区三区四区成人网 | 精品无码人妻一区二区三区18| 国产自产V一区二区三区C| 国产精品一区二区AV麻豆| 影音先锋中文无码一区| 亚洲国产成人一区二区三区| 三上悠亚亚洲一区高清| 深夜福利一区二区| 无码日韩AV一区二区三区| 精品福利一区二区三区免费视频 | 亚洲日韩中文字幕一区| 人妻久久久一区二区三区| 波多野结衣AV无码久久一区| 国产另类ts人妖一区二区三区| 精品视频在线观看一区二区三区| 国产午夜精品一区二区三区极品 | 国产乱码一区二区三区爽爽爽| 夜夜爽一区二区三区精品| 精品在线视频一区| 国产亚洲福利精品一区二区| 国产精品成人一区无码 | 无码日韩精品一区二区免费| 极品人妻少妇一区二区三区| 精品一区精品二区制服| 国产精品福利一区二区久久| 国产福利一区二区三区在线观看| 曰韩人妻无码一区二区三区综合部 |