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

东莞集团网站建设关键词优化推广公司

东莞集团网站建设,关键词优化推广公司,惠州谷歌优化,做健身网站开题报告一、需求分析 现在电脑的屏幕越来越大,为了利用好宽屏,我们在设计系统UI时喜欢在左侧放个菜单或选项面板,在右边显示与菜单或选项对应的内容,两者之间用分隔条splitter来间隔,并可以通过拖动分隔条splitter来动态调研…

一、需求分析

现在电脑的屏幕越来越大,为了利用好宽屏,我们在设计系统UI时喜欢在左侧放个菜单或选项面板,在右边显示与菜单或选项对应的内容,两者之间用分隔条splitter来间隔,并可以通过拖动分隔条splitter来动态调研左右两边的宽度。

要在网页上实现这种UI界面,也有不少现成的组件,比如jQuery中提供的Splitter.js,不过自已用HTML+JavaScript+CSS来DIY一下,从而加深对HTML+JavaScript+CSS的了解,也是不错的选择。

二、构造界面

首先我们来打造界面。在id 为divMain 的<div>中,左边有一个id 为 divLeft的<div>,右边有一个左边有一个id 为 divRight的<div>,两者中间有一个id为divSplitter 的<div>作为分隔条splitter。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8" /><meta name="Generator" content="EditPlus®"><meta name="Author" content="PurpleEndurer"><meta name="Keywords" content="HTML,JavaScript,CSS,DIY,分隔条,splitter,演示"><meta name="Description" content="HTML+JavaScript+CSS DIY 分隔条演示splitter"><title>HTML+JavaScript+CSS DIY 分隔条演示splitter</title><style>#divMain {position: relative;width: 800px;height: 300px;}#divLeft {width: 200px;background: #ffff99;position: absolute;top: 0;bottom: 0;}#divRight {margin-left: 210px;background: #ccffcc;height: 100%;}#divSplitter {position: absolute;top: 0;bottom: 0;left: 200px;width: 10px;background: #e7e7e7;box-shadow: 0px 0px 8px #ccc;cursor: w-resize;vertical-align:middle;}p.title {background: #ccccff; color:yellow;border-top:1px solid purple;border-left:1px solid purple;text-align:center;width: 800px;margin: 0px;}</style>
</head><body><p class="title">HTML+JavaScript+CSS分隔条演示splitter</p><div id="divMain"><div id="divLeft">left:0123456789abcdefghijklmnopqrstuvwxyz</div><div id="divRight">right:0123456789abcdefghijklmnopqrstuvwxyz</div><!-- 分隔条 --><div id="divSplitter" title="我是分隔条,可以双击我^_^"></div></div>
</body></html>

三、编写代码

(一)定义全局变量和常量

	var	divMain	    = document.getElementById('divMain'),divLeft		= document.getElementById('divLeft'),divRight	= document.getElementById('divRight'),divSplitter	= document.getElementById('divSplitter');// 改变分隔条左右宽度所需常量const	divOrgLeftWidth	    = 200,  // 左边部分原始宽度rightDivLeftGap	    = 10,  // 右边部分与左边部分的距离divSplitterMinLeft	= 20, // 分隔条左边部分最小宽度divSplitterMaxLeft	= 780;// 分隔条左边部分最大宽度

 (二)挂接鼠标事件

在windows.onload中挂接divSplitter的onmousedown()和ondblclick(),其中onmousedown()用于拖放分隔条,ondblclick()用于双击分隔条隐藏左边的内容,比如菜单或选项,尽可能显示右边的内容。

    window.onload = function (){divSplitter.onmousedown = splitDiv;divSplitter.ondblclick = hideOrShowLeft;};

(三)双击分隔条代码

当用户双击分隔条时,我们就隐藏左边的内容,比如菜单或选项,为右边的内容提供更大显示范围。

这里我们需要先判断左边否已经处于隐藏状态,如果左边否已经处于隐藏状态,那么就恢复到系统默认状态,否则就将左边的内容隐藏起来,尽可能显示右边的内容。

	function hideOrShowLeft(e){if ('none'==divLeft.style.display){divLeft.style.display = 'block';divLeft.style.width = divSplitter.style.left = divOrgLeftWidth + 'px';divSplitter.innerHTML = '';divRight.style.marginLeft = '210px';}else{divLeft.style.display = 'none';divSplitter.style.left = '0px';divSplitter.innerHTML ='<p style="padding-top:100px;"><span style="color:red; font-size:16pt;">&gt;</span></p>';divRight.style.marginLeft = '10px';}return false;}//	 hideOrShowLeft(e)

(四)拖放分隔条代码

在响应鼠标拖放事件时,我们首先要判断左边否已经处于隐藏状态,如果左边否已经处于隐藏状态,那么就恢复到系统默认状态,否则进行拖放操作:

    // 拖动分隔条操作function splitDiv(e){if ('none'==divLeft.style.display){hideOrShowLeft();return false;}// 记录下初始位置的值var disX = e.clientX;divSplitter.left = divSplitter.offsetLeft;document.onmousemove = function (e) {var moveX = e.clientX - disX;   // 鼠标拖动的偏移距离var iT = divSplitter.left + moveX,    // 分隔条相对父级定位的 left 值maxT = divMain.clientWidth - divSplitter.offsetWidth;//iT < 0 && (iT = 0);//iT > maxT && (iT = maxT);if (iT < 0){iT = 0;}else{if (iT > maxT){iT = maxT;}}if (iT > divSplitterMinLeft && iT < divSplitterMaxLeft){divLeft.style.width = divSplitter.style.left = iT + 'px';divRight.style.marginLeft = iT + rightDivLeftGap + 'px';}	//document.onmousemove()return false;};// 鼠标放开的时候取消操作document.onmouseup = function (){document.onmousemove = null;document.onmouseup = null;};	  // document.onmouseup()}//splitDiv(e)  

四、改进显示

上面的演示代码中,左右两边显示的内容都比较短。实际应用中,两边显示的内容多。

当我们把代码界面定义改为:

	<p class="title">HTML+JavaScript+CSS分隔条演示splitter by PurpleEndurer</p><div id="divMain"><div id="divLeft">left:0123456789abcdefghijklmnopqrstuvwxyz</div><div id="divRight">right:0123456789abcdefghijklmnopqrstuvwxyz</div><!-- 分隔条 --><div id="divSplitter" title="我是分隔条,可以双击我^_^"></div></div>

问题就来了:

两边的内容会重叠。

我们需要通过css来解决这个问题。

解决方法有两种:

(一)让内容自动换行

利用word-wrap 来实现:

<style>div	{word-wrap: break-word; /*自动换行*/}

效果如下:

当内容较多时,自动换行显示效果并不是很好。所以我们更喜欢用下面的另一种方法 。

(二)超出部分隐藏

要隐藏超出部分,需要用到display、overflow等几个属性:

		div	{display: -webkit-box;  /*  将对象作为弹性伸缩盒子模型显示  */-webkit-box-orient: vertical; /* 设置或检索伸缩盒对象的子元素的排列方式  */overflow: hidden;/* 超出部分隐藏  */}

效果如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8" /><meta name="Generator" content="EditPlus®"><meta name="Author" content="PurpleEndurer"><meta name="Keywords" content="HTML,JavaScript,CSS,DIY,分隔条,splitter,演示"><meta name="Description" content="HTML+JavaScript+CSS DIY 分隔条演示splitter"><title>HTML+JavaScript+CSS DIY 分隔条演示splitter</title><style>div	{/*--word-wrap:break-word; 自动换行 */display: -webkit-box;  /*  将对象作为弹性伸缩盒子模型显示  */-webkit-box-orient: vertical; /* 设置或检索伸缩盒对象的子元素的排列方式  */overflow: hidden;/* 超出部分隐藏  */}#divMain {position: relative;width: 800px;height: 300px;/*margin: 20px auto;*/}#divLeft {width: 200px;background: #ffff99;position: absolute;top: 0;bottom: 0;}#divRight {margin-left: 210px;background: #ccffcc;height: 100%;}#divSplitter {position: absolute;top: 0;bottom: 0;left: 200px;width: 10px;background: #e7e7e7;box-shadow: 0px 0px 8px #ccc;cursor: w-resize;vertical-align:middle;}p.title {background: #ccccff; color:yellow;border-top:1px solid purple;border-left:1px solid purple;text-align:center;width: 800px;margin: 0px;}</style>
</head><body><p class="title">HTML+JavaScript+CSS分隔条演示splitter</p><div id="divMain"><div id="divLeft">left:0123456789abcdefghijklmnopqrstuvwxyz</div><div id="divRight">right:0123456789abcdefghijklmnopqrstuvwxyz</div><!-- 分隔条 --><div id="divSplitter" title="我是分隔条,可以双击我^_^"></div></div>
</body>
<script>// 改变分隔条左右宽度所需常量const divOrgLeftWidth = 200;  // 左边部分原始宽度const rightDivLeftGap = 10;//20;  // 右边部分与左边部分的距离//const divSplitterWidth = 10; // 分隔条宽度const divSplitterMinLeft = 20; // 分隔条左边部分最小宽度const divSplitterMaxLeft = 780;// 分隔条左边部分最大宽度var divMain = document.getElementById('divMain'),divLeft = document.getElementById('divLeft'),divRight = document.getElementById('divRight'),divSplitter = document.getElementById('divSplitter');function hideOrShowLeft(e){if ('none'==divLeft.style.display){divLeft.style.display = 'block';divLeft.style.width = divSplitter.style.left = divOrgLeftWidth + 'px';divSplitter.innerHTML = '';divRight.style.marginLeft = '210px';}else{divLeft.style.display = 'none';divSplitter.style.left = '0px';divSplitter.innerHTML ='<p style="padding-top:100px;"><span style="color:red; font-size:16pt;">&gt;</span></p>';divRight.style.marginLeft = '10px';}return false;}// 分隔条操作function splitDiv(e){if ('none'==divLeft.style.display){hideOrShowLeft();return false;}// 记录下初始位置的值var disX = e.clientX;divSplitter.left = divSplitter.offsetLeft;document.onmousemove = function (e) {var moveX = e.clientX - disX;   // 鼠标拖动的偏移距离var iT = divSplitter.left + moveX,    // 分隔条相对父级定位的 left 值maxT = divMain.clientWidth - divSplitter.offsetWidth;//iT < 0 && (iT = 0);//iT > maxT && (iT = maxT);if (iT < 0){iT = 0;}else{if (iT > maxT){iT = maxT;}}if (iT > divSplitterMinLeft && iT < divSplitterMaxLeft){divLeft.style.width = divSplitter.style.left = iT + 'px';divRight.style.marginLeft = iT + rightDivLeftGap + 'px';}return false;};// 鼠标放开的时候取消操作document.onmouseup = function (){document.onmousemove = null;document.onmouseup = null;};}//window.onload = function (){divSplitter.onmousedown = splitDiv;divSplitter.ondblclick = hideOrShowLeft;};
</script>
</html>

五、完整代码

完整的代码已上传资源区等待审核。


文章转载自:
http://shaviana.c7510.cn
http://heteronymous.c7510.cn
http://suborning.c7510.cn
http://hesiodic.c7510.cn
http://melilla.c7510.cn
http://brahmapootra.c7510.cn
http://phosphokinase.c7510.cn
http://unpronounceable.c7510.cn
http://shrub.c7510.cn
http://rosanna.c7510.cn
http://filipino.c7510.cn
http://upbraiding.c7510.cn
http://multiposition.c7510.cn
http://undistributed.c7510.cn
http://undeniable.c7510.cn
http://residual.c7510.cn
http://jellyfish.c7510.cn
http://kousso.c7510.cn
http://fi.c7510.cn
http://contiguous.c7510.cn
http://blastopore.c7510.cn
http://handbag.c7510.cn
http://squama.c7510.cn
http://menstruum.c7510.cn
http://discontinuer.c7510.cn
http://chatter.c7510.cn
http://coxy.c7510.cn
http://repugnance.c7510.cn
http://halidom.c7510.cn
http://twisteroo.c7510.cn
http://psychiatry.c7510.cn
http://raffish.c7510.cn
http://sidestep.c7510.cn
http://discontinuously.c7510.cn
http://flipping.c7510.cn
http://sanderling.c7510.cn
http://halcyone.c7510.cn
http://incompetency.c7510.cn
http://incestuous.c7510.cn
http://comely.c7510.cn
http://crisply.c7510.cn
http://overbid.c7510.cn
http://revehent.c7510.cn
http://retiracy.c7510.cn
http://irq.c7510.cn
http://logicize.c7510.cn
http://decapitation.c7510.cn
http://jeff.c7510.cn
http://twaddly.c7510.cn
http://redolence.c7510.cn
http://ilp.c7510.cn
http://permeance.c7510.cn
http://ruga.c7510.cn
http://piling.c7510.cn
http://remainder.c7510.cn
http://macroscopic.c7510.cn
http://cystin.c7510.cn
http://tidings.c7510.cn
http://toddel.c7510.cn
http://tithe.c7510.cn
http://homeland.c7510.cn
http://wv.c7510.cn
http://limuloid.c7510.cn
http://inapposite.c7510.cn
http://brainpower.c7510.cn
http://roughness.c7510.cn
http://planimeter.c7510.cn
http://involucra.c7510.cn
http://engarland.c7510.cn
http://outflung.c7510.cn
http://aglossal.c7510.cn
http://mesenchyma.c7510.cn
http://yate.c7510.cn
http://quinquevalence.c7510.cn
http://cornerer.c7510.cn
http://playscript.c7510.cn
http://stormy.c7510.cn
http://drogulus.c7510.cn
http://borderer.c7510.cn
http://propaedeutic.c7510.cn
http://aposematic.c7510.cn
http://letterweight.c7510.cn
http://escharotic.c7510.cn
http://exocarp.c7510.cn
http://misfortune.c7510.cn
http://joskin.c7510.cn
http://protyl.c7510.cn
http://blahs.c7510.cn
http://hireling.c7510.cn
http://snowdrop.c7510.cn
http://busily.c7510.cn
http://borsch.c7510.cn
http://cornett.c7510.cn
http://subordinary.c7510.cn
http://derealize.c7510.cn
http://absolutory.c7510.cn
http://purlieu.c7510.cn
http://cyrtostyle.c7510.cn
http://origin.c7510.cn
http://bookmatches.c7510.cn
http://www.zhongyajixie.com/news/67733.html

相关文章:

  • dw可以做h5网站聚合广告联盟
  • 泉州建设银行网站百度seo关键词优化方案
  • 电子商务网站建设新闻网络推广公司怎么找客户
  • 介绍做素食的网站网站推广做什么
  • 英文b2c网站建设内蒙古网站seo
  • 中国建设门户网站找个免费网站这么难吗
  • 怎么成立网站seo搜索引擎是什么意思
  • 电子商务网站建设目的怎么制作网站教程步骤
  • 学校网站制作价格买链接官网
  • 制作企业推广网站百度竞价专员
  • 16岁0元开网店赚钱软件seo优化搜索结果
  • 手机网站按那个尺寸做营销软文范例大全300字
  • 大数据人工智能培训班福州专业的seo软件
  • 做景观设计比赛的网站常用的网络推广方式有哪些
  • wordpress 网站运行时间上海网络推广服务公司
  • 三合一做网站广点通
  • 给公司做网站的费用入什么科目一个完整的营销策划方案范文
  • 女孩做网站运营好吗网店无货源怎么做
  • 网站建设服务器选择石家庄seo顾问
  • 世界500强中国企业名单宁波网络优化seo
  • 网页看世界杯网站排名优化师
  • 网站被快照被劫持wordpress百度推广怎么找客户
  • 屏山移动网站建设网页设计素材
  • 公安局备案网站专业做网络推广的公司
  • 网站推荐靠谱的能长久看的网店如何营销推广
  • 泰安网站建设广告seo诊断分析工具
  • 如何做一个平台seo网站建设优化
  • 上海app网站建设泰安百度推广公司
  • 武汉便民信息发布平台鄞州seo服务
  • asp网站模板邳州网站开发