<!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><title>模拟窗口效果</title><script src="../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script><script type="text/javascript">$(function () {var centerwin = $("#center");var leftwin = $("#left");$("#centerpop").click(function () {centerwin.show("slow");});$("#leftpop").click(function () {leftwin.slideDown("slow");});setTimeout(function () {centerwin.mywin({ left: "center", top: "center" });leftwin.mywin({ left: "left", top: "top" }, function () {$("#left").slideUp();});var windowobj = $(window);var currentwin = $("#right");var browserwidth = windowobj.width();var browserheight = windowobj.height();var scrollLeft = windowobj.scrollLeft();var scrollTop = windowobj.scrollTop();var cwinwidth = currentwin.outerWidth(true); //为true的话包含margin的值var cwinheight = currentwin.outerHeight(true);$("#right").mywin({ left: "right", top: "bottom" },function () { $("#right").hide(); },{ left: scrollLeft + browserwidth - cwinwidth, top: scrollTop + browserheight }).fadeOut(15000).dequeue();}, 200);});/***@param position表示窗口最终的位置包含两个属性,一个是left一个是top;*@param hidefuc表示执行窗口影藏的方法;*@param initPos表示窗口的初始位置,包含2个属性,一个是left一个是top;*/$.fn.mywin = function (position, hidefuc, initPos) {if (position && position instanceof Object) {var left;var top;var windowobj = $(window);var currentwin = this;var cwinwidth; //为true的话包含margin的值var cwinheight;var browserwidth;var browserheight;var scrollLeft;var scrollTop;function getBrowserDim() {browserwidth = windowobj.width();browserheight = windowobj.height();scrollLeft = windowobj.scrollLeft();scrollTop = windowobj.scrollTop();}//浏览器可视区域的宽度和高度//当前窗框的宽和高//要考虑到横向滚动条的当前左边界值以及纵向滚动条的当前上边界值var positionleft = position.left;var positiontop = position.top;//计算窗口真实的左边界值function callLeft(positionleft, scrollLeft, browserwidth, cwinwidth) {if (positionleft && typeof positionleft == "string") {if (positionleft == "center") {left = scrollLeft + (browserwidth - cwinwidth) / 2;} else if (positionleft == "left") {left = scrollLeft;} else if (positionleft == "right") {left = scrollLeft + browserwidth - cwinwidth;} else {left = scrollLeft + (browserwidth - cwinwidth) / 2;}} else if (positionleft && typeof positionleft == "number") {left = positionleft;} else {left = 0;}}//计算窗口真实的上边界值function callTop(positiontop, scrollTop, browserheight, cwinheight) {if (positiontop && typeof positiontop == "string") {if (positiontop == "center") {top = scrollTop + (browserheight - cwinheight) / 2;} else if (positiontop == "top") {top = scrollTop;} else if (positiontop == "bottom") {top = scrollTop + browserheight - cwinheight;} else {top = scrollTop + (browserheight - cwinheight) / 2;}} else if (positiontop && typeof positiontop == "number") {top = positiontop;} else {top = 0;}}//移动窗口function moveWin() {callLeft(currentwin.data("positionleft"), scrollLeft, browserwidth, cwinwidth);callTop(currentwin.data("positiontop"), scrollTop, browserheight, cwinheight);currentwin.animate({left: left,top: top}, 600);}//初始化时if (initPos && initPos instanceof Object) {var initLeft = initPos.left;var initTop = initPos.top;if (initLeft && typeof initLeft == "number") {currentwin.css("left", initLeft);} else {currentwin.css("left", 0);}if (initTop && typeof initTop == "number") {currentwin.css("top", initTop);} else {currentwin.css("top", 0);}currentwin.show();}cwinwidth = currentwin.outerWidth(true); //为true的话包含margin的值
                cwinheight = currentwin.outerHeight(true);currentwin.data("positionleft", positionleft);currentwin.data("positiontop", positiontop);getBrowserDim();moveWin();//浏览器滚动条滚动时,重新移动窗口的位置var scrollTimeout;$(window).scroll(function () {//判断当前窗口是否可见if (!currentwin.is(":visible")) {return;}clearTimeout(scrollTimeout);scrollTimeout = setTimeout(function () {getBrowserDim();moveWin();}, 300);});//浏览器大小变化时,重新移动窗口的位置
                $(window).resize(function () {//判断当前窗口是否可见if (!currentwin.is(":visible")) {return;}getBrowserDim();moveWin();});currentwin.children(".title").children("img").click(function () {if (!hidefuc) {currentwin.hide("slow");} else {hidefuc();}});return currentwin;}}</script><style type="text/css">.windows{background-color:#D0DEF0;width:250px;/*padding:2px;*/margin:5px;position:absolute;display:none;}.content{height:150px;background-color:White;border:3px solid #D0DEF0;padding:5px;overflow:auto;/*控制区域内容超过指定高度和宽度时自动显示滚动条*/}.title img{width:15px;height:15px;float:right;cursor:pointer;margin:2px;}.title{padding:2px;font-size:15px;}</style>
</head>
<body><input type="button" value="左下角显示窗口" id="leftpop"/><input type="button" value="中间显示窗口" id="centerpop"/><div class="windows" id="center"><div class="title"><img alt="关闭" src="../images/close.gif" />我是中间显示窗口标题</div><div class="content">我是中间显示窗口内容</div></div><div class="windows" id="left"><div class="title"><img alt="关闭" src="../images/close.gif" />我是左边显示窗口标题</div><div class="content">我是左边显示窗口内容</div></div><div class="windows" id="right"><div class="title"><img alt="关闭" src="../images/close.gif" />我是右下角显示窗口标题</div><div class="content">我是右下角显示窗口内容</div></div>
</body>
</html>

转载于:https://www.cnblogs.com/yuzhengdong/p/3353631.html

模拟窗口效果 Jquery相关推荐

  1. JS模拟模式窗口效果

    <html> <head>     <meta http-equiv="Content-Type" content="text/html; ...

  2. html5鼠标点击弹出层,jQuery实现单击弹出Div层窗口效果(可关闭可拖动)

    本文实例讲述了jQuery实现单击弹出Div层窗口效果.分享给大家供大家参考.具体如下: 这是一款jquery实现的可拖动可关闭的弹出框效果,网上已经有很多类似效果了,网页上实现这种效果其实并不难,现 ...

  3. 封装一个视频组件(可模拟画中画效果)

    目录 前言: 1.效果: 2.效果图: 3.代码实现 前言: 我是用的原生js写的这个功能,因此这个组件在vue.react.jquery等框架中均可使用,例如,我就是用在基于nuxt.js框架+ty ...

  4. Codrops 教程:基于 CSS3 的精美模态窗口效果

    Codrops 分享了漂亮的模态窗口效果实现方法,希望给前端开发人员提供一些创新显示对话框的启示.这个方案使用了触发按钮(或任何的 HTML 元素),在点击的时候出现一个模态窗口,带有简单的过渡(或动 ...

  5. 利用ECharts3来实现ECharts2实例中的模拟迁徙效果,即背景地图为百度地图。 标签: ECharts3Echarts2模拟迁徙百度地图引入

    利用ECharts3来实现ECharts2实例中的模拟迁徙效果,即背景地图为百度地图. 很多小伙伴都来要demo源码,现在我把demo放在我的GitHub上了. https://github.com/ ...

  6. c + Easyx 模拟闪电效果

    用c + easyx模拟了闪电效果,参考了CodeBus上 星羽1704 的代码,在此感谢. 实现效果图: /********************************************* ...

  7. 利用ECharts3来实现ECharts2实例中的模拟迁徙效果,即背景地图为百度地图。 标签: ECharts3Echarts2模拟迁徙百度地图引入 2016-10-24 16:21 10065人阅

    利用ECharts3来实现ECharts2实例中的模拟迁徙效果,即背景地图为百度地图. 标签: ECharts3Echarts2模拟迁徙百度地图引入 2016-10-24 16:21  10065人阅 ...

  8. 一个LabVIEW控件,生成模拟波形效果

    LabVIEW实在强大方便,今天为各位分享一个小技巧:如何制作一款模拟波形效果小软件. 这里依托于LabVIEW内置的波形生成VI,本篇博文仅仅仅介绍基本函数发生器VI,仅仅是一个抛砖引玉,感兴趣的朋 ...

  9. canvas三角函数模拟水波效果

    原文:canvas三角函数模拟水波效果 最近项目中,ui设计了个水波效果的背景动画,然而并没有gif或svg动画,开始试着用css实现了一下,动画效果并不是很好,网上查了下基本都是用贝赛尔曲线实现,想 ...

最新文章

  1. Gym - 101334F 单调栈
  2. ubuntu上面安装nodejs,npm,bower,grunt,yeoman
  3. 关于web3营销的一切知识
  4. 项目实习(四)多线程端口扫描器
  5. IEEE Conference Template Letter
  6. 硬核3-D视觉 - 三维视觉简介
  7. 13个搭讪绝招助你告别单身
  8. 国科大学习资料--人工智能原理与算法-第十三次作业解析(学长整理)
  9. Win7 + VirtualBox 安装 MacOS X 10.9 Mavericks 操作步骤
  10. java开发各层对象含义
  11. 【SEED Labs 2.0】ARP Cache Poisoning Attack Lab
  12. linux文件夹加密忘记密码,如何通过密码保护Linux上的文件夹或目录?
  13. css盒模型——标准盒子、怪异盒子
  14. libVLC 添加图片和文本水印
  15. 超神!GitHub 标星 5.5w,如何用 Python 实现所有算法?
  16. SaaS模式金融危机时期显威力 呼叫中心进入云时代
  17. 基于C#.NET的高端智能化网络爬虫(二)(攻破携程网)
  18. 毕业论文排版(二)-页面设置
  19. 网页设计者不应错过的帖子
  20. Android之RecycleView(1)

热门文章

  1. Efficient Graph-Based Image Segmentation
  2. 【数据使用】3问视觉项目中的数据整理,这点小事你是不是都掌握好了?
  3. 【技术综述】计算机审美,学的怎么样了?
  4. 全球及中国预编程振荡器行业需求潜力分析与投资战略咨询报告2021-2027年版
  5. 花生增产对话万书波-农业大健康·万祥军:获山东科技最高奖
  6. 秘鲁国家馆中国电商平台 美食周对话国际农民丰收节贸易会
  7. 安装pipenv搭建虚拟环境做flask
  8. python 全栈开发,Day66(web应用,http协议简介,web框架)
  9. 安卓平分位置layout_weight学习记录
  10. HDU 1811 Rank of Tetris(并查集按秩合并+拓扑排序)