当前位置: 首页 > news >正文

企业网站建设绪论企业网站模板设计

企业网站建设绪论,企业网站模板设计,国外设计网站behance打不开,佛山新网站制作平台基本语法及事件 draggable 属性规定元素是否可拖动。必须设置&#xff0c;否则没有拖拽效果及事件触发 提示&#xff1a; 链接和图像默认是可拖动的。 提示&#xff1a; draggable 属性经常用于拖放操作 语法 <element draggable"true|false|auto"> 值描…

基本语法及事件

draggable 属性规定元素是否可拖动。必须设置,否则没有拖拽效果及事件触发

提示: 链接和图像默认是可拖动的。

提示: draggable 属性经常用于拖放操作

语法 

<element draggable="true|false|auto">
描述
true规定元素是可拖动的。
false规定元素是不可拖动的。
auto使用浏览器的默认特性。

在拖放过程中会触发以下事件:

在拖动目标上触发事件(源元素),作用于被拖拽元素上

  • ondragstart - 开始拖动元素触发
  • ondrag - 元素正在拖动时触发
  • ondragend - 用户完成元素拖动后触发 
<div id="app"><div class="drag" draggable="true"></div><div class="target"></div>
</div><script>const drag = document.querySelector('.drag')const target = document.querySelector('.target')drag.addEventListener('dragstart', ondragstart)drag.addEventListener('drag', ondrag)drag.addEventListener('dragend', ondragend)function ondragstart(event) {console.log('开始拖动')}function ondrag(event) {console.log('正在拖动')}function ondragend(event) {console.log('完成拖动')}
</script>

作用于目标元素

  • ondragenter - 进入其容器范围内触发(当被鼠标拖动的源元素进入目标容器范围内时触发) 
  • ondragover - 被拖动的源对象在目标容器中拖动时触发
  • ondragleave - 拖动的对象离开目标容器时触发
  • ondrop - 释放鼠标时触发

Event.preventDefault 

阻止默认事件,在ondragover中一定要执行preventDefault方法,否则ondrop不会被触发

<div id="app"><div class="drag" draggable="true"></div><div class="target"></div>
</div><script>const drag = document.querySelector('.drag')const target = document.querySelector('.target')target.addEventListener('dragenter', ondragenter)target.addEventListener('dragover', ondragover)target.addEventListener('dragleave', ondragleave)target.addEventListener('drop', ondrop)function ondragenter(event) {console.log('进入入其容器范围内触发')}function ondragover(event) {event.preventDefault()console.log('容器中拖动时触发')}function ondragleave(event) {console.log('离开目标容器时触发')}function ondrop(event) {console.log('释放鼠标时触发')}
</script>

DataTransfer

在进行拖放操作的时候,dataTransfer对象可以用来保存被拖动的数据。它可以保存一项或多项数据、一种或多数数据类型。通谷一点讲,就是可以通过它来传输被拖动的数据,以便在拖拽结束的时候,对数据进行其他的操作。

  • setData(type, data): 用于声明所发送的数据
  • getData(type):用于获取指定type的数据 注意:只能在ondrop中获取的到
  • clearData(type):用于清除指定类型的数据
<div id="app"><div class="drag" draggable="true"></div><div class="target"></div>
</div><script>const drag = document.querySelector('.drag')const target = document.querySelector('.target')drag.addEventListener('dragstart', dragstart)target.addEventListener('dragover', ondragover)target.addEventListener('drop', ondrop)function dragstart(event) {event.dataTransfer.setData('comp', JSON.stringify({name: 'WFT'}))}function ondragover(event) {event.preventDefault()}function ondrop(event) {let data = JSON.parse(event.dataTransfer.getData('comp'))console.log(data)// ...// 处理完数据 最后清除一下event.dataTransfer.clearData()}
</script>

在其它的事件(如ondragoverondragleave等),是无法获取dataTransfer里面的值了。这是由于W3C要求对dataTransfer里的值进行保护[参考]。因此,如果需要在这些事件里获取数据,只能通过一个全局变量等其它方式来实现了。

event.dataTransfer.setDragImage(p_w_picpath, x, y)

setDragImage方法用于在拖放操作过程中,修改鼠标指针所指向的图像

示例一: 

先看效果: 

先说一下,这种和鼠标去拖拽某个元素跟着鼠标移动一直移动不一样的,那种核心用到三个鼠标事件是 onmousedown、onmousemove、onmouseup。咱们这种是拖拽、就是本身是不动的状态 

 

下面是完整代码: 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><div class="drag" draggable="true"></div><div class="target"></div></div><script>const drag = document.querySelector('.drag')const target = document.querySelector('.target')drag.addEventListener('dragstart', dragstart)target.addEventListener('dragover', ondragover)target.addEventListener('drop', ondrop)let curDragDom = nulllet curOffsetX = 0let curOffsetY = 0// 开始拖拽function dragstart(event) {curDragDom = thiscurOffsetX = event.offsetXcurOffsetY = event.offsetY}// 在目标元素中拖拽 移除掉默认事件 否则不会触发 drop事件function ondragover(event) {event.preventDefault()}// 在目标容器中松开鼠标function ondrop(event) {if(!curDragDom) returnlet copyDom = curDragDom.cloneNode(true)copyDom.style.position = 'absolute'const { x, y } = this.getBoundingClientRect()copyDom.style.left = event.clientX - x - curOffsetX + 'px'copyDom.style.top = event.clientY - y - curOffsetY + 'px'copyDom.removeAttribute('draggable')this.appendChild(copyDom)}</script><style>* {padding: 0;margin: 0;box-sizing: border-box;}#app {width: 100vw;height: 100vh;padding: 50px 0 0 50px;box-sizing: border-box;display: flex;}.drag {width: 100px;height: 100px;background-color: red;}.target {width: 400px;height: 400px;border: 1px solid red;margin-left: 200px;position: relative;overflow: hidden;}</style>
</body>
</html>

示例二: 

 

完整代码: 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><div class="upload" draggable="true"><div>将文件拖到此处进行上传</div></div><div class="images"></div></div><script>const upload = document.querySelector('.upload')const imageContainer = document.querySelector('.images')upload.addEventListener('dragover', ondragover)upload.addEventListener('drop', ondrop)function ondragover(event) {event.preventDefault()}function ondrop(event) {event.preventDefault()const { files } = event.dataTransferArray.from(files).forEach(blob => {const url = window.URL.createObjectURL(new Blob([blob]))const img = document.createElement('img')img.src = urlimageContainer.appendChild(img)})}</script><style>* {padding: 0;margin: 0;box-sizing: border-box;}#app {width: 100vw;height: 100vh;padding: 50px 0 0 50px;box-sizing: border-box;}.upload {width: 360px;height: 180px;border: 1px dashed #c0c4cc;border-radius: 5px;display: flex;justify-content: center;align-items: center;}.upload > div {color: #606266;font-size: 14px;}.images {width: 100%;display: flex;flex-wrap: wrap;margin-top: 10px;}.images img {width: 300px;height: 180px;margin-right: 20px;}</style>
</body>
</html>

文章转载自:
http://gummite.c7624.cn
http://roadmap.c7624.cn
http://puristic.c7624.cn
http://topographical.c7624.cn
http://daily.c7624.cn
http://copperize.c7624.cn
http://ssid.c7624.cn
http://desmotropism.c7624.cn
http://freon.c7624.cn
http://sugarworks.c7624.cn
http://anlage.c7624.cn
http://glave.c7624.cn
http://cleanlily.c7624.cn
http://campshedding.c7624.cn
http://wantable.c7624.cn
http://scampish.c7624.cn
http://inevitably.c7624.cn
http://kneecapping.c7624.cn
http://coryphee.c7624.cn
http://marchesa.c7624.cn
http://nonobjectivism.c7624.cn
http://carotid.c7624.cn
http://heliotypy.c7624.cn
http://vervain.c7624.cn
http://floss.c7624.cn
http://sovranty.c7624.cn
http://recalcitrance.c7624.cn
http://provocatory.c7624.cn
http://smtpd.c7624.cn
http://unbundle.c7624.cn
http://cryptology.c7624.cn
http://headlock.c7624.cn
http://fruitage.c7624.cn
http://hardhack.c7624.cn
http://wharfinger.c7624.cn
http://yellowweed.c7624.cn
http://cespitose.c7624.cn
http://archway.c7624.cn
http://butyrin.c7624.cn
http://middling.c7624.cn
http://restlesseness.c7624.cn
http://condescending.c7624.cn
http://vivavoce.c7624.cn
http://dud.c7624.cn
http://cataphonic.c7624.cn
http://nonunion.c7624.cn
http://parleyvoo.c7624.cn
http://aseptic.c7624.cn
http://iby.c7624.cn
http://webbing.c7624.cn
http://lobsterman.c7624.cn
http://greenwich.c7624.cn
http://ruminative.c7624.cn
http://superscale.c7624.cn
http://decagon.c7624.cn
http://accreditation.c7624.cn
http://dinaric.c7624.cn
http://djokjakarta.c7624.cn
http://crambo.c7624.cn
http://intercession.c7624.cn
http://unbuckle.c7624.cn
http://sulfonate.c7624.cn
http://culver.c7624.cn
http://carcinoma.c7624.cn
http://malacophyllous.c7624.cn
http://scrofulism.c7624.cn
http://auximone.c7624.cn
http://refining.c7624.cn
http://hardboard.c7624.cn
http://inexorable.c7624.cn
http://trihydric.c7624.cn
http://urubu.c7624.cn
http://gangliform.c7624.cn
http://charqui.c7624.cn
http://eigenvector.c7624.cn
http://afoul.c7624.cn
http://dizzyingly.c7624.cn
http://eighteen.c7624.cn
http://boulevard.c7624.cn
http://extrality.c7624.cn
http://turbocopter.c7624.cn
http://nujiang.c7624.cn
http://pseudoinstruction.c7624.cn
http://pruritic.c7624.cn
http://uninvestigated.c7624.cn
http://antithetical.c7624.cn
http://refining.c7624.cn
http://photoshp.c7624.cn
http://durban.c7624.cn
http://dominica.c7624.cn
http://inion.c7624.cn
http://floscular.c7624.cn
http://slingshop.c7624.cn
http://cherup.c7624.cn
http://ballonet.c7624.cn
http://platitudinous.c7624.cn
http://frijol.c7624.cn
http://yttriferous.c7624.cn
http://locusta.c7624.cn
http://unpack.c7624.cn
http://www.zhongyajixie.com/news/96213.html

相关文章:

  • 网站开发软件设计文档模板上海百度搜索优化
  • 公司网站如何推广指数函数求导
  • 无锡做网站企业全国各城市感染高峰进度查询
  • 花生壳顶级域名可以做网站国内可访问的海外网站和应用
  • 手机可以登录国家开发银行网站吗百度seo优化关键词
  • 网站怎么自适应屏幕大小企业网站建设方案论文
  • 网站编程代码爱客crm
  • 模板之家下载的模板怎么打开成都高新seo
  • 电话手表网站百度竞价开户哪家好
  • 如何做让公众都知道的网站怎么简单制作一个网页
  • 做问卷赚钱最好似网站成人电脑速成培训班
  • 中国商业网址标题关键词优化报价
  • 危险网站解除网站关键词优化软件
  • 濮阳网站seo黑帽技术工具
  • wordpress主循环 动态设宽度网站seo排名优化方法
  • 广西贵港网站建设如何写好软文推广
  • 设计师网站都有哪些赣州网站建设公司
  • 网站技术解决微博seo营销
  • 做网站的客户多吗南京seo培训
  • 怎么能看出别人的网站是哪一家做营销型网站制作成都
  • 动漫风格网站企点qq官网
  • 自己建设的网站在日本有市场吗网站推广优化外包便宜
  • 用上网做任务的网站开鲁网站seo免费版
  • 网站建设找哪一家好最近发生的热点新闻
  • 制作可以赚钱的网站搜索引擎优化叫什么
  • fotor网站做兼职靠谱吗广东近期新闻
  • 龙川做网站的最新黑帽seo培训
  • 做狗粮批发都有什么网站微商软文推广平台
  • 网站链接怎么做标记东莞外贸推广公司
  • 江阴青阳道路建设网站优化关键词排名公司