博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EonerCMS——做一个仿桌面系统的CMS(七)
阅读量:6711 次
发布时间:2019-06-25

本文共 989 字,大约阅读时间需要 3 分钟。

智能修改窗口的位置

  在测试的时候,我发现调整浏览器尺寸后,原先靠近浏览器边缘的窗口就直接被隐藏掉了,如下图:

  出现这问题的原因也很简单,因为窗口的top、left的值是写死的,当浏览器的宽高小于窗口top、left时,必然会被隐藏掉。解决办法就是在调整浏览器尺寸的同时,把窗口的top、left也一起修改,但是具体要修改成多少呢?

  经过自己的考虑和他人的指点,最终的解决办法就是按比例修改,也就是按当时窗口离左/右、上/下的距离与整个窗口大小的比例进行缩放,说的可能有点迷糊,不如看下修改公式吧:

  top = 浏览器缩放前窗口上边距 / ( 浏览器缩放前高度 - 浏览器缩放前窗口高度 ) * ( 浏览器缩放后高度 - 浏览器缩放后窗口高度 );

  left = 浏览器缩放前窗口左边距 / ( 浏览器缩放前宽度 - 浏览器缩放前窗口宽度 ) * ( 浏览器缩放后宽度 - 浏览器缩放后窗口宽度 );

  公式里我对浏览器的宽高都减去了窗口的宽高,原因就是不管浏览器怎么缩放,窗口的宽高是始终不会变化的,如果不减去窗口的宽高,是无法按比例缩放的。

  最终效果如下图:

2011100503535476.png

  demo大家应该看到了,试试缩放下浏览器看下效果吧。

我是演示,看完文章后再看我

  demo源码,js

$().ready(function(){	var dfw = $(window).width() - $("#div1").width();	var dfh = $(window).height() - $("#div1").height();	var dl = $("#div1").offset().left;	var dt = $("#div1").offset().top;	$(window).bind("resize",function(){		var ctw = $(window).width() - $("#div1").width();		var cth = $(window).height() - $("#div1").height();		$("#div1").css({"left":(dl/dfw*ctw)+"px","top":(dt/dfh*cth)+"px"});	});});

  html

我是演示,看完文章后再看我

 

转载地址:http://doilo.baihongyu.com/

你可能感兴趣的文章
Byte[]、Image、Bitmap 之间的相互转换
查看>>
分布式全文检索引擎之ElasticSearch
查看>>
数组名和指针区别
查看>>
实现子数组和绝对值差最小 - Objective-C
查看>>
明天支付宝就开始提现收费了!这几招可以让你受用
查看>>
/etc/group文件详解
查看>>
hadoop之 参数调优
查看>>
MySQL架构与业务总结图
查看>>
weblogic管理3 - 生产模式下免密码管理配置
查看>>
【BZOJ4827】 [Hnoi2017]礼物
查看>>
【01-06】JPA 全局单一主键
查看>>
HTML 静态网页制作12月3日 格式与布局
查看>>
mysql8 公用表表达式CTE的使用
查看>>
Oracle - 函数
查看>>
Java 2D高级绘图
查看>>
在 jquery repeater 中添加设置日期,下拉,复选框等控件
查看>>
带关闭按钮的浮动窗口
查看>>
AngularJs 键盘事件和鼠标事件
查看>>
用MFC(C++)实现拼音搜索
查看>>
HTML5——section,article,aside
查看>>