可视化响应式建站

Posted tccm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可视化响应式建站相关的知识,希望对你有一定的参考价值。

最近在给一家公司做网站,现在都是可视化操作界面,方便没有基础的用户对网站进行更新。贴一下原始的方法。比如先用html写一个Div层,然后在层的“按下”事件里加入一个JS函数,这个函数是让DIV的位置随鼠标的移动而动,放开鼠标后再“放开”事件里用一个函数判断DIV当前的位置(离TOP和Left的距离),然后保存在变量里,在用户点保存按钮后把位置数据保存到数据库,然后在前台调用位置数据。

个人认为,一个网站的好与不好,一是看它的前端设计,布局;二是看其后台的易操作程度。当然这一切都建立在稳定兼容的前提下。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>框架自定义拖拽</title>
<style>
body {
margin:0px;
padding:0px;
font-size:12px;
text-align:center;
}
body > div {
text-align:center;
margin-right:auto;
margin-left:auto;
}
.content {
width:900px;
}
.content .left {
float:left;
width:20%;
border:1px solid #FF0000;
margin:3px;
}
.content .center {
float:left;
border:1px solid #FF0000;
margin:3px;
width:57%
}
.content .right {
float:right;
width:20%;
border:1px solid #FF0000;
margin:3px
}
.mo {
height:auto;
border:1px solid #CCC;
margin:3px;
background:#FFF
}
.mo h1 {
background:#ECF9FF;
height:18px;
padding:3px;
cursor:move
}
.mo .nr {
height:80px;
border:1px solid #F3F3F3;
margin:2px
}
h1 {
margin:0px;
padding:0px;
text-align:left;
font-size:12px
}
</style>
<script>
var dragobj={}
window.onerror=function(){return false}
function on_ini(){
String.prototype.inc=function(s){return this.indexOf(s)>-1?true:false}
var agent=navigator.userAgent
window.isOpr=agent.inc("Opera")
window.isIE=agent.inc("IE")&&!isOpr
window.isMoz=agent.inc("Mozilla")&&!isOpr&&!isIE
if(isMoz){
Event.prototype.__defineGetter__("x",function(){return this.clientX+2})
Event.prototype.__defineGetter__("y",function(){return this.clientY+2})
}
basic_ini()
}
function basic_ini(){
window.$=function(obj){return typeof(obj)=="string"?document.getElementById(obj):obj}
window.oDel=function(obj){if($(obj)!=null){$(obj).parentNode.removeChild($(obj))}}
}
window.onload=function(){
on_ini()
var o=document.getElementsByTagName("h1")
for(var i=0;i<o.length;i++){
o[i].onmousedown=function(e){
if(dragobj.o!=null)
return false
e=e||event
dragobj.o=this.parentNode
dragobj.xy=getxy(dragobj.o)
dragobj.xx=new Array((e.x-dragobj.xy[1]),(e.y-dragobj.xy[0]))
dragobj.o.style.width=dragobj.xy[2]+"px"
dragobj.o.style.height=dragobj.xy[3]+"px"
dragobj.o.style.left=(e.x-dragobj.xx[0])+"px"
dragobj.o.style.top=(e.y-dragobj.xx[1])+"px"
dragobj.o.style.position="absolute"
var om=document.createElement("div")
dragobj.otemp=om
om.style.width=dragobj.xy[2]+"px"
om.style.height=dragobj.xy[3]+"px"
dragobj.o.parentNode.insertBefore(om,dragobj.o)
return false
}
}
}
document.onselectstart=function(){return false}
window.onfocus=function(){document.onmouseup()}
window.onblur=function(){document.onmouseup()}
document.onmouseup=function(){
if(dragobj.o!=null){
dragobj.o.style.width="auto"
dragobj.o.style.height="auto"
dragobj.otemp.parentNode.insertBefore(dragobj.o,dragobj.otemp)
dragobj.o.style.position=""
oDel(dragobj.otemp)
dragobj={}
}
}
document.onmousemove=function(e){
e=e||event
if(dragobj.o!=null){
dragobj.o.style.left=(e.x-dragobj.xx[0])+"px"
dragobj.o.style.top=(e.y-dragobj.xx[1])+"px"
createtmpl(e)
}
}
function getxy(e){
var a=new Array()
var t=e.offsetTop;
var l=e.offsetLeft;
var w=e.offsetWidth;
var h=e.offsetHeight;
while(e=e.offsetParent){
t+=e.offsetTop;
l+=e.offsetLeft;
}
a[0]=t;a[1]=l;a[2]=w;a[3]=h
return a;
}
function inner(o,e){
var a=getxy(o)
if(e.x>a[1]&&e.x<(a[1]+a[2])&&e.y>a[0]&&e.y<(a[0]+a[3])){
if(e.y<(a[0]+a[3]/2))
return 1;
else
return 2;
}else
return 0;
}
function createtmpl(e){
for(var i=0;i<12;i++){
if($("m"+i)==dragobj.o)
continue
var b=inner($("m"+i),e)
if(b==0)
continue
dragobj.otemp.style.width=$("m"+i).offsetWidth
if(b==1){
$("m"+i).parentNode.insertBefore(dragobj.otemp,$("m"+i))
}else{
if($("m"+i).nextSibling==null){
$("m"+i).parentNode.appendChild(dragobj.otemp)
}else{
$("m"+i).parentNode.insertBefore(dragobj.otemp,$("m"+i).nextSibling)
}
}
return
}
for(var j=0;j<4;j++){
if($("dom"+j).innerHTML.inc("div")||$("dom"+j).innerHTML.inc("DIV"))
continue
var op=getxy($("dom"+j))
if(e.x>(op[1]+10)&&e.x<(op[1]+op[2]-10)){
$("dom"+j).appendChild(dragobj.otemp)
dragobj.otemp.style.width=(op[2]-10)+"px"
}
}
}
</script>
</head>
<body>
<div class=content>
<div class=left id=dom0>
<div class=mo id=m0>
<h1>dom0</h1>
<div class="nr"></div>
</div>
<div class=mo id=m1>
<h1>dom1</h1>
<div class="nr"></div>
</div>
<div class=mo id=m2>
<h1>dom2</h1>
<div class="nr"></div>
</div>
<div class=mo id=m3>
<h1>dom3</h1>
<div class="nr"></div>
</div>
</div>
<div class=center id=dom1>
<div class=mo id=m4>
<h1>dom4</h1>
<div class="nr"></div>
</div>
<div class=mo id=m5>
<h1>dom5</h1>
<div class="nr"></div>
</div>
<div class=mo id=m6>
<h1>dom6</h1>
<div class="nr"></div>
</div>
<div class=mo id=m7>
<h1>dom7</h1>
<div class="nr"></div>
</div>
</div>
<div class=right id=dom2>
<div class=mo id=m8>
<h1>dom8</h1>
<div class="nr"></div>
</div>
<div class=mo id=m9>
<h1>dom9</h1>
<div class="nr"></div>
</div>
<div class=mo id=m10>
<h1>dom10</h1>
<div class="nr"></div>
</div>
<div class=mo id=m11>
<h1>dom11</h1>
<div class="nr"></div>
</div>
</div>
</div>
</body>
</html>

 

以上是关于可视化响应式建站的主要内容,如果未能解决你的问题,请参考以下文章

建站为什么要用H5响应式设计?

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法

H5响应式建站,让你的网站随“机”应变!

做一个响应式网站需要多长时间

想找一家响应式网站开发公司,有啥好的推荐吗?