忙活了大半天,公布一个模拟Portlet的js小程序

js写的心愿墙小程序-模拟数据库获取数据 这个练习是看网上的视频自己又写了一遍,对一些知识点进行的总结,从基础到高级都有讲解,有需要的可以看一下。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>心愿墙</title> &l 阅读详情

<html>
<head>
<title>PortletWin</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type='text/css'>
<!--
body{font-size:12px;}
a:visited{text-decoration:none;color:slategray;}
a:hover{text-decoration:underline;color:slategray;}
a:link{text-decoration:none;color:slategray;}

.win-function{
   position:relative;
   left:0;
   width:12;
   border-width:0px;
   color:white;
   font-family:webdings;
}
-->
</style>
<script language=JScript>
<!--
//可以打包为js文件;
var x0=0,y0=0;  //鼠标位置
var x1=0,y1=0;  //窗体位置
var offx=5,offy=5;  //shadow和win的位差
var moveable=false;  //mousemove
var xstart=false, ystart=false;
var hover='orange',normal='#336699';//color;
var index=10000;//z-index;

//拖动,参数obj可能为标题栏或窗体;
var win,shadow;
function getHandler(obj){
   win = obj.parentNode;
   shadow = win.nextSibling;
}
function startDrag(obj){//标识active
   if (event.button==1){
      obj.setCapture();
      //定义对象;
      getHandler(obj);
      //记录鼠标和层位置;
      x0 = event.clientX;
      y0 = event.clientY;
      x1 = parseInt(win.style.left);
      y1 = parseInt(win.style.top);
      //改变风格;
      win.children[0].style.backgroundColor = hover;
      win.style.borderColor = hover;
      win.children[1].style.color = hover;
      shadow.style.left = x1 + offx;
      shadow.style.top  = y1 + offy;
      moveable = true;
   }
}
function drag(obj){
   if (moveable){
      win.style.left = x1 + event.clientX - x0;
      win.style.top  = y1 + event.clientY - y0;
      shadow.style.left = parseInt(win.style.left) + offx;
      shadow.style.top  = parseInt(win.style.top) + offy;
   }
}
function stopDrag(obj){
   getHandler(obj);
   win.style.borderColor     = normal;
   win.children[0].style.backgroundColor = normal;
   win.children[1].style.color    = normal;
   shadow.style.left = win.style.left;
   shadow.style.top  = win.style.top;
   obj.releaseCapture();
   obj.style.cursor = "default";
   moveable = false;
}

//改变大小
function alterCursor(obj){
   xstart = event.clientX >= parseInt(obj.style.left)+parseInt(obj.offsetWidth) - 5;
   ystart = event.clientY >= parseInt(obj.style.top)+parseInt(obj.offsetHeight) + 20;
   if (xstart && ystart){
      obj.style.cursor = "se-resize";
   }else if (xstart){
      obj.style.cursor = "w-resize";
   }else if (ystart){
      obj.style.cursor = "s-resize";
   }else{
      obj.style.cursor = "default";
   }
}
function startResize(obj){
   alterCursor(obj);
   if (xstart || ystart){
      obj.fixedWidth = obj.offsetWidth;
      obj.fixedHeight = obj.offsetHeight;
      startDrag(obj);
   }
}
function resize(obj){
   if (moveable){
      if (xstart){
         var width = parseInt(obj.fixedWidth) + event.clientX - x0;
         obj.style.width = Math.max(width, 0);
         win.style.width = obj.offsetWidth + 2*2;
         win.children[0].style.width = obj.offsetWidth;
      }
      if (ystart){
         var height = parseInt(obj.fixedHeight) + event.clientY - y0;
         obj.style.height = Math.max(height, 0);
         win.style.height = obj.offsetHeight + 20 + 2*2;
      }
      drawIcons();
      shadow.style.width = win.style.width;
      shadow.style.height = win.style.height;
   }
}

//获得焦点;
function getFocus(obj){
   if (obj.style.zIndex!=index){
      index = index + 2;
      obj.style.zIndex = index;
      obj.nextSibling.style.zIndex = index-1;
   }
}

/**
 * 最小化;
 * obj:标题栏的一个小图标
 */
function min(obj){
   var win = obj.parentNode.parentNode;
   var shadow = win.nextSibling;
   var win_title = obj.parentNode;
   var win_body = win_title.nextSibling;

   win.style.height  = parseInt(win_title.style.height) + 2*2;
   if (obj.innerHTML == "2"){ //还原
      win.style.height  = parseInt(win_body.style.height) + parseInt(win.style.height);
      win_body.style.display = "block";
      obj.innerHTML = "0";
   }else{
      obj.innerHTML = "2";
      win_body.style.display = "none";
   }
   shadow.style.height  = win.style.height;
}
//创建一个对象;
function xWin(id,w,h,l,t,tit,msg){
   index = index+2;
   this.id      = id;
   this.width   = w;
   this.height  = h;
   this.left    = l;
   this.top     = t;
   this.zIndex  = index;
   this.title   = tit;
   this.message = msg;
   this.obj     = null;
   this.bulid   = bulid;
   this.bulid(); //调用方法
}
//初始化;
function bulid(){
   var str = "<div id='xMsg" + this.id
     + "' style='z-index:" + this.zIndex + ";"
     + "width:" + this.width + ";height:" + this.height + ";left:" + this.left + ";top:" + this.top + ";"
     + "background-color:" + normal + ";"
     + "color:" + normal + ";"
     + "font-size:8pt;font-family:Tahoma;"
     + "position:absolute;"
     + "cursor:default;"
     + "border:2px solid " + normal + ";' "
     + "onmousedown='getFocus(this)'>"
  //标题栏
       + "<div style='background-color:" + normal + ";"
       + "width:" + (this.width-2*2) + ";height:20;color:white;font-weight:bold' "
       + "onmousedown='startDrag(this)' onmouseup='stopDrag(this)' onmousemove='drag(this)' "
       + "ondblclick='min(this.childNodes[1])'>"
         + "<span style='width:" + (this.width-2*12-4) + ";padding-left:3px;'>" + this.title + "</span>"
         + "<span class='win-function' onclick='min(this)'>0</span>"
         + "<span class='win-function' onclick='ShowHide()'>r</span>"
       + "</div>"
   //窗体显示区域
       + "<div style='width:100%;height:" + (this.height-20-2*2) + ";left:"+this.left+";top="+(this.top-20-2)
       + ";background-color:white;line-height:14px;word-break:break-all;padding:3px;"
       + "' onmouseover='alterCursor(this)' onmousedown='startResize(this)' onmousemove='alterCursor(this);resize(this)' onmouseup='stopDrag(this)'>"
       + this.message + "</div>"
    + "</div>"
  //窗体背景
    + "<div id='xMsg" + this.id + "bg' style='"
    + "width:" + this.width + ";height:" + this.height + ";top:" + this.top + ";left:" + this.left + ";"
    + "z-index:" + (this.zIndex-1) + ";position:absolute;background-color:black;"
    + "filter:alpha(opacity=30);'></div>"
  document.body.insertAdjacentHTML("beforeEnd",str);
}
function drawIcons(){
   var title = win.children[0];
   while (title.children.length > 1){
      title.removeChild(title.lastChild);
   }
   title.insertAdjacentHTML("beforeEnd","<span class='win-function' onclick='min(this)'>0</span>");
   title.insertAdjacentHTML("beforeEnd","<span class='win-function' onclick='ShowHide()'>r</span>");
   title.children[0].style.width = parseInt(title.style.width) - 24;
}
//显示隐藏窗口
function ShowHide(){
   if (arguments.length > 0){
      win = document.getElementById("xMsg"+arguments[0]);
   }else{
      win = event.srcElement.parentNode.parentNode;
   }
   var bdisplay = (win.style.display==null || win.style.display=="none") ? "block" : "none";
   win.style.display = bdisplay;
   win.nextSibling.style.display = bdisplay;
}
//-->
</script>

<script language='JScript'>
<!--
function initialize(){
 var a = new xWin("1",160,200,200,200,"窗口1","xWin <br> A Cool Pop Div Window<br>Version:1.0<br>2002-8-13");
 var b = new xWin("2",240,200,100,100,"窗口2","Welcome to visited my personal website:<br><a href=http://www14.brinkster.com/wildcity target=_blank>http://wildcity.126.com</a><br>and u can also sign my guestbook at:<br><a href=http://www14.brinkster.com/wildcity/gbook target=_blank>http://wildcity.126.com/gbook</a><br><br>thx!!! =)...");
 var c = new xWin("3",200,160,250,50,"窗口3","Copyright by <a href='mailto:wildwind_zz@21cn.com'>Wildwind</a>!");
 ShowHide("1");//隐藏窗口1
}
window.onload = initialize;
//-->
</script>
</head>
<body onselectstart='return false' oncontextmenu='return false' >
<a onclick="ShowHide('1');return false;" href="">窗口1</a>
<a onclick="ShowHide('2');return false;" href="">窗口2</a>
<a onclick="ShowHide('3');return false;" href="">窗口3</a>
</body>
</html> 

2016版的jquery portlet 自动拖动,保存、定制个人首页 2016版的jquery portlet 自动拖动,排序,保存、定制个人首页。 metro 开始菜单制作都可以使用。 立即下载

相关推荐

用js做的页面模块拖拽portlet效果实例源码

最近在准备公司网站产品博客的开发,突然想到MSN个人空间可以自定功能模块的排版。当初玩MSN个人空间时,最爱摆弄这个功能。故而,在网上找了个jQuery的插件,以实现这个效果。 当然,真要把这个功能在博客中实现,还是需要其他技术的配合。这里,只是收录下,以备不时之需。

js代码实现许愿墙

使用js简单完成许愿墙 let bodyEle = document.getElementsByTagName("body")[0]; let secEle = document.querySelector("section"); let inputEle = document.querySelectorAll("input")[0]; function fasong() { let arr = inputEle.value //获取输入 // console.log(arr);

weixin_49697978的博客 969

JS+DIV实现许愿墙

简单的许愿墙效果。经测试可用。

许愿墙

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta h...

659

js 实现许愿墙代码

通过div+js 实现了类似许愿墙样式的图片效果,单机图片显示更具体的详情

微信许愿墙 H5网页版,主要用JS +H5实现移动端留言墙功能

微信许愿墙 H5网页版,主要用JS +H5实现移动端留言墙功能,在别人的基础上对手机端使用优化了一下。

【HTML】心愿墙 Demo展示

  这是跟着一个大神做的心愿墙,当时觉得有趣,现在清理磁盘中,所以就放到博客园中进行保存。   效果如下:   下载地址:点击下载 转载于:https://www.cnblogs.com/ruicky/p/3497716.html...

weixin_33895604的博客 654

javascript的图片特效(心愿墙、相册、轮播)

压缩包内包含:主页图片轮播器代码一个,心愿墙代码两个,相册代码一个,全是javascript特效,超越你的想像,你值得拥有!

主页自定义可拖动组件 2.0版本 (portlet)

首先,我是从下面这个页面抠出来的。 http://wrapbootstrap.com/preview/WB00958H8 效果: 在这个页面直接右键查看源代码,就可以看到了。非常清楚。 因为我就只用这么一个portlet功能,我就给抠下来了。 原来的代码使用的是bootstrap2,我们项目用的是bootstrap3,我测试了可以用。只要把页面中原本bootstrap

糖糖糖糖糖糖分 5289

js小练习祝福墙效果

用js手写的祝福墙效果,层可以移动,可以看到效果,,请大家多多指教,,想和大家分享练习中的点点滴滴

Linux 音频驱动(六) ALSA音频驱动之PCM Write数据传递过程

目录1. 前言2. PCM Data Flow3. 总结 1. 前言 本文,我们将以回放(Playback,播放音频)为例,讲解PCM Data是如何从用户空间到内核空间,最后传递到Codec。 在Linux 音频驱动(一) ASoC音频框架简介中,我们给出了回放(Playback)PCM数据流示意图: 对于Linux来说,由于分为 user space 和kernel space,而且两者之间不能随便互相访问。因此用户如果播放音频,则需要调用copy_from_user()将用户数据从user spa

_Modest_的博客 1万+

Portal_JS,用JS实现的Portlet效果

有一年多没有关顾自己的博客了,然还有部分博友造访,令我万分感动,现在发布一下最近的一个组件:PortletWin/** * @package ElementUtils.js * @author: 熊水林(xionglb@163.com) * @version:版权所有(2008-7-13) * * 这个包是为方便操作页面元素提供接口,包括拖拽、拉伸、覆盖等 * 综合应用场景:Portlet、M

风上人的专栏 6665

SpringCloud2025+SpringBoot3.5.0+gateway+webflux子服务路由报503

本来昨天就应该也记录下,免得忘记的,但是有点晚了,酒没写,真的是被坑惨了。当然这也是追求最新的代价,也是对新技术、老知识点的重温。依赖更粒度让架构的知识面更高,需要非常清楚另外说不定是有新的负载均衡要出现了,就想当初loadbalancer取代Ribbon一样好了,真是坑了半夜,昨晚都没有写,今天才复盘,希望能帮到大家,让更多在坑里的技术人爬出来。

zwrlj527的专栏 1998

很赞的js许愿墙 类似后盾网

很赞的js许愿墙 类似后盾网 源代码下载地址:http://www.zuidaima.com/share/1770936008690688.htm

springmvc_freemarker的博客 1945

从圆形到椭圆:CenterNet中高斯热图半径的自适应优化策略

本文深入探讨了CenterNet目标检测模型中高斯热图生成策略的优化,针对传统圆形高斯核在处理长宽比差异大目标时的局限性,提出了自适应椭圆高斯核的解决方案。通过数学推导和代码实战,详细阐述了如何根据目标边界框尺寸动态计算椭圆长短轴半径,生成更贴合目标几何形状的热图监督信号,从而有效提升模型,尤其是对无人机、车辆等不规则目标的定位精度。

alice7model的博客 985

【IC设计实战】去耦电容decap在电源完整性中的关键作用与选型策略

本文深入探讨了去耦电容(decap)在IC设计电源完整性中的核心作用。文章分析了decap如何通过提供本地电荷缓冲来抑制电源噪声与电压波动,并详细阐述了其选型与布局策略,包括MIM、MOM、MOS电容的特性对比,以及如何权衡峰值抑制与建立速度的矛盾,为设计稳定可靠的芯片电源系统提供实践指导。

weixin_29233857的博客 248

利用 jQuery UI 和 Ajax 创建可定制的 Web 界面

如今,网站比以往更具可定制性,允许用户更改其空间,根据自己的喜好对其进行个性化。个性化的主页或仪表板页面(例如 iGoogle、MyYahoo! 和 MyAOL)日渐普及,大多数 Web 应用程序内甚至也整合了类似的功能。jQuery 库简化了此类复杂 JavaScript 交互的编写,随着 jQuery UI 的引入,这项功能得到了进一步的简化,该库以易于访问的 jQuery 插件的形式提供...

soledede 274

Euro-NCAP-HWA测试流程中文版V1.1(2023发布)

在本协议中,使用了以下术语:Vehicle undertest (VUT) – 指根据本规程测试的车辆,车上有碰撞前的碰撞缓解或避免系统Global VehicleTarget (GVT) – 指本协议中使用的车辆目标,其定义见TB025—Euro-NCAP全球车辆目标规范v1.0辅助其他车辆(SOV)--指最新的 AEB VRU 测试规程中定义的 "大型障碍车辆"(而非机器人控制的平台),用于本规程中的 "切出 "测试。Time To Collision (TTC) – 指在VUT碰撞GVT之前的剩余时间

小明师兄的博客 596

一个JS写的许愿墙-测试

爱心墙 <!--/* CSS Document */div{ position:absolute;}/*导航*/.titler{ left: 32px; top: 3px; font-size:20px; font-family:"幼圆";}/*接收者*/.recipient{ left: 19px; top: 29px

Sux 2932

基于CNN-LSTM融合模型的环卫车动态称重算法研究:从频率感知到精准质量估计

摘要: 针对环卫车辆动态称重需求,本研究提出一种基于CNN-LSTM融合网络的频率分析方法。通过在实验室构建振动频率采集系统,获取不同载重下的结构响应数据,经MATLAB进行信号处理和特征提取后,建立频率-质量的非线性映射模型。实验表明,该算法在静态和模拟动态场景下平均绝对误差小于1.5%,显著优于传统方法,为环卫车智能化管理提供了高精度实时称重方案。 关键词: 动态称重;深度学习;频率分析;CNN-LSTM;MATLAB。

AI的内部世界的博客 374

windows在使用ping 127.0.0.1时出现一般故障的解决方案

本文主要介绍了windows在使用ping 127.0.0.1时出现一般故障的解决方案,希望能对使用windows的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 6万+

HTML进度条

  正在导入数据,已完成 0,请稍候....          |    .load_percent{     font-family:宋体;     font-style:oblique;     font-weight:bold;     color:#6666FF;  }  var already = 0;  function display(max){     already++;    

风上人的专栏 8925

Ut接口原理及 VoLTE 补充业务自管理信令流程(GBA 引导认证+业务访问认证+ VoLTE 补充业务自管理)

2. Ut 接口及 VoLTE 业务子管理概述 2.1 UT 接口 —— VoLTE 终端补充业务配置 2.2终端通过 Ut 接口完成 VoLTE 补充业务自管理举例 2.3什么是 GBA 和 GAA 架构 2.4为什么要引入 GBA 架构认证及 BSF 网元 2.5UE(终端) 接口相关网元及功能 2.6GBA 架构流程概述 3. Ut 接口业务自管理信令流程 3.1 补充业务自管理及本文主要参考以下规范 3.2 Ut 接口业务自管理信令流程:查询补充业务 3.2.1 UE获

原来45的博客 1257
上一篇: 发现JBuilder8的一个问题,郁闷了两个晚上!
下一篇: 大四女生当上副总裁---恶意无耻的炒作
treeClimber
博客等级 码龄24年 16粉丝 144原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值