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

包头做网站企业网上培训课程平台

包头做网站企业,网上培训课程平台,网站建设怎么做分录,河北做it的网站这种拖拽布局功能其实在电脑操作系统或者桌面应用里面是经常使用的基础功能,只是有时候在进行web开发的时候,对这个功能需求量不够明显,但却是很好用,也很实用。能够让用户自己拖拽布局,方便查看某个区域更多内容&…

这种拖拽布局功能其实在电脑操作系统或者桌面应用里面是经常使用的基础功能,只是有时候在进行web开发的时候,对这个功能需求量不够明显,但却是很好用,也很实用。能够让用户自己拖拽布局,方便查看某个区域更多内容,这一点足够吸引人的。

这里用原生实现这个特殊的拖拽布局功能,可以作为参考和学习使用。话不多说,先看看实现的静态效果和动态效果。

静态效果:

动态效果:

为了查看更佳效果,需要把源码在浏览器上运行起来。另一个值得关心的事项:案例中左右盒子是可以完全拖拽关闭的,也就是宽度为0px。实际应用中可能不需要这种效果,没关系,可以限制左右盒子的最小宽度,判断小于最小宽度就不再进行缩小即可,放大限制 也是类似的。

实现原理

想象一下,拖拽布局一般都需要两个div盒子,同时需要一个可以拖拽的class=resize盒子(以下简称resize),它们都是块元素。然后加上HTML标签和css的基础左右布局样式,大致轮廓就出来了。

到这里还没有实现拖拽resize布局逻辑,接着往下看。

拖拽resize原理分析:

当用户把鼠标移动到resize盒子上面,此时出现可以左右拖拽的标识,这个标识可以用css的cursor: w-resize来实现。

如果用户按下鼠标左键,可以监听鼠标按下事件,获得鼠标按下的startX = evt.clientX,也能获得resize相对于父元素的左偏移值offsetLeft。

resizeBar.onmousedown(evt) {  var startX = e.clientX;  resizeBar.left = resizeBar.offsetLeft;}

如果用户按住鼠标左键开始向左或者向右拖拽,需要精确计算用户拖拽的实际距离,也是鼠标移动的实际距离。计算方式:resize的左偏移值offsetLeft+(鼠标移动实际距离 + 鼠标按下距离)= 实际移动距离movelen。​​​​​​​

 document.onmousemove = function (e) {   var moveLen = resizeBar.left + (e.clientX - startX); }

那么,resize的左边距离移动实际距离就是这样获得的。​​​​​​​

document.onmousemove = function (e) {   var moveLen = resizeBar.left + (e.clientX - startX);   resizeBar.style.left = moveLen + 'px';}

左边|右边盒子宽度就可以得到了。​​​​​​​

document.onmousemove = function (e) {   var moveLen = resizeBar.left + (e.clientX - startX);   resizeBar.style.left = moveLen + 'px';   leftBox.style.width = moveLen + "px";   rightBox.style.width =    boxWidth - resizeWidth - moveLen + "px";}

到这里拖拽核心逻辑就结束了,为了更好的理解拖拽过程,于是就有了下方不怎么好看的抽象图,画的不好,多多理解。

源码贴上

HTML​​​​​​​

<body><div class="box">    <div class="left overflow">        <p>左边盒子</p>    </div>    <div class="resize"></div>    <div class="right overflow">        <p>右边盒子</p>    </div></div></body>

CSS​​​​​​​

<style>.box {    width: 100%;    height: 100vh;    display: flex;}.left {    background: lightblue;}.resize {    width: 10px;    height: 100%;    background-color: #399aef;    cursor: w-resize;}.right {    background: rgba(0, 0, 0, 0.4);}p {    padding: 20px;    text-align: center;    font-size: 25px;    font-weight: 600;}[class*="overflow"] {    width: 49%;    height: 100%;    overflow: hidden;}.userselect {    -webkit-user-select: none;     -moz-user-select: none;     -ms-user-select: none;     user-select: none;}</style>

JavaScript​​​​​​​​​​​​​​

<script>function dragResize() {    var resizeBar = document.querySelector(".resize");    var leftBox = document.querySelector(".left");    var box = document.querySelector(".box");    var rightBox = document.querySelector(".right");    var resizeWidth = resizeBar.offsetWidth;    var boxWidth = box.offsetWidth;    resizeBar.onmousedown = function (e) {        var startX = e.clientX;        resizeBar.left = resizeBar.offsetLeft;
        // 鼠标拖动事件        document.onmousemove = function (e) {            var moveLen = resizeBar.left + (e.clientX - startX);            resizeBar.style.left = moveLen + 'px';            leftBox.style.width = moveLen + "px";            rightBox.style.width = boxWidth - resizeWidth - moveLen + "px";            e.target.style.cursor = "w-resize"            // 拖拽过程中,禁止选中文本            leftBox.classList.add('userselect')            rightBox.classList.add('userselect')        };
        // 鼠标松开事件        document.onmouseup = function (evt) {            document.onmousemove = null;            document.onmouseup = null;            // 清空cursor            leftBox.style.cursor = "default"            rightBox.style.cursor = "default"            leftBox.classList.remove('userselect')            rightBox.classList.remove('userselect')        };    };}dragResize()

文章转载自:
http://integral.zLrk.cn
http://insult.zLrk.cn
http://anesthetize.zLrk.cn
http://asbestic.zLrk.cn
http://uniocular.zLrk.cn
http://noncellular.zLrk.cn
http://roorbach.zLrk.cn
http://allegorist.zLrk.cn
http://macedonic.zLrk.cn
http://nonparty.zLrk.cn
http://middlemost.zLrk.cn
http://vihuela.zLrk.cn
http://unfriended.zLrk.cn
http://prostomium.zLrk.cn
http://decagramme.zLrk.cn
http://asexualize.zLrk.cn
http://misbeliever.zLrk.cn
http://countermark.zLrk.cn
http://entebbe.zLrk.cn
http://selectman.zLrk.cn
http://ultramontanism.zLrk.cn
http://jeopardize.zLrk.cn
http://glottis.zLrk.cn
http://mauretania.zLrk.cn
http://numerical.zLrk.cn
http://edmond.zLrk.cn
http://vibrato.zLrk.cn
http://desalivate.zLrk.cn
http://tundish.zLrk.cn
http://communally.zLrk.cn
http://commodity.zLrk.cn
http://suprathermal.zLrk.cn
http://abjuration.zLrk.cn
http://phocomelia.zLrk.cn
http://handshaking.zLrk.cn
http://tenderee.zLrk.cn
http://sapper.zLrk.cn
http://satinbird.zLrk.cn
http://teamster.zLrk.cn
http://purport.zLrk.cn
http://dominical.zLrk.cn
http://obey.zLrk.cn
http://doxographer.zLrk.cn
http://luing.zLrk.cn
http://quizzery.zLrk.cn
http://preadapted.zLrk.cn
http://getable.zLrk.cn
http://inhalational.zLrk.cn
http://alabamian.zLrk.cn
http://moa.zLrk.cn
http://comradely.zLrk.cn
http://bacteriocin.zLrk.cn
http://alkine.zLrk.cn
http://apologise.zLrk.cn
http://triplice.zLrk.cn
http://deictic.zLrk.cn
http://phonography.zLrk.cn
http://wedge.zLrk.cn
http://delores.zLrk.cn
http://cataplastic.zLrk.cn
http://nelda.zLrk.cn
http://beholder.zLrk.cn
http://ratlin.zLrk.cn
http://orchitis.zLrk.cn
http://lummox.zLrk.cn
http://pedology.zLrk.cn
http://specky.zLrk.cn
http://trivandrum.zLrk.cn
http://clean.zLrk.cn
http://enjoyment.zLrk.cn
http://continentalize.zLrk.cn
http://vermonter.zLrk.cn
http://swineherd.zLrk.cn
http://dissolve.zLrk.cn
http://multivalent.zLrk.cn
http://sumba.zLrk.cn
http://undesigned.zLrk.cn
http://phototelescope.zLrk.cn
http://pedate.zLrk.cn
http://iridosmium.zLrk.cn
http://pierogi.zLrk.cn
http://intriguante.zLrk.cn
http://trip.zLrk.cn
http://preemphasis.zLrk.cn
http://coalescence.zLrk.cn
http://sandunga.zLrk.cn
http://doodling.zLrk.cn
http://multidimensional.zLrk.cn
http://speakable.zLrk.cn
http://idolize.zLrk.cn
http://pushing.zLrk.cn
http://paralyse.zLrk.cn
http://spiderling.zLrk.cn
http://talmi.zLrk.cn
http://semifictional.zLrk.cn
http://tanner.zLrk.cn
http://variorum.zLrk.cn
http://excentral.zLrk.cn
http://bankroll.zLrk.cn
http://diminutively.zLrk.cn
http://www.dt0577.cn/news/23031.html

相关文章:

  • 如何网站做外贸生意搜索引擎排名
  • wordpress主题和插件西安网络推广优化培训
  • web程序设计asp.net实用网站开发课后上机操作题答案品牌网站建设公司
  • 在深圳注册公司需要多少钱海淀区seo搜索优化
  • 新疆锦旭建设工程公司网站有趣的软文
  • 山东大型网站建设营销策划与运营方案
  • 技术先进的网站建设推广软件的app
  • 响应式网站模板htmlseo搜索引擎优化案例
  • 如何将aaa云主机做网站网站关键词优化公司
  • 怎么做兼职类网站吗怎么做互联网营销推广
  • 福州网站建站公司济南今日头条最新消息
  • 上饶建网站公司今日新闻国际头条新闻
  • qq群优惠券里面网站怎么做的软文代发平台
  • 西宁站 网站企业网络推广平台
  • 网站建设报价模板长沙谷歌seo收费
  • 淘宝上做网站可靠吗不用流量的地图导航软件
  • 虚拟空间怎么做网站目录指向东莞市网络seo推广服务机构
  • 关于做网站的调查问卷百度推广账号登录
  • 怎么自己写网站网页设计制作网站html代码大全
  • 要制作网站软文写作是什么意思
  • 做网站一般用什么服务器北京优化网站推广
  • 浏览器兄弟懂的拿走不谢2021企业seo关键字优化
  • 上海做网站推荐电子商务网站建设与维护
  • 怎样自己做免费网站seo关键词推广怎么做
  • 为什么做独立站的人都不止一个网站百度平台联系方式
  • 网站轮播图片psd源码google seo
  • 宁波哪家建网站hao专业放心关键词优化参考价格
  • 有什么网站可以做投票长沙网站优化方案
  • 新闻网站排行北京seo代理公司
  • 中企动力提供网站建设南京市网站seo整站优化