DOM元素全屏显示解决方案(续)

简介: <p>      前一篇中实现element全屏方案只适合单一的元素(元素里面不包含其他元素),但是如果里面有其他的元素呢?比如按钮之类的。如下图:</p> <p><img src="http://img.blog.csdn.net/20141127104656424?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGllYmFvY2h1bg=

      前一篇中实现element全屏方案只适合单一的元素(元素里面不包含其他元素),但是如果里面有其他的元素呢?比如按钮之类的。如下图:


加上-webkit-full-screen{ width: 100%; height: 100%; } 之后全屏显示就变成:

1,button使用left和top来定位(左图)。如果用bottom和right来定位(右图)


我们会发现element在全屏模式下尺寸和screen一样大了,但是element里面的子元素尺寸和位置设定还是原先的,这就为什么会出现上述情况。

那么我们要怎么样来保证父元素全屏显示,且让其子元素相对于父元素在尺寸上和位置上保持同步呢?其实我们可以使用css中的zoom属性,就是直接对父元素进行scale操作。这样会使子元素一起放大缩小。例如:

var rateHeight = parseFloat(screen.height)/$("#div").height();
var rateWidth = parseFloat(screen.width)/$("#div").width();
$("#div").css("zoom",rateWidth > rateHeight ? rateHeight : rateWidth);

通过计算元素和屏幕的尺寸比例来确定zoom的值,并且保证元素全屏模式下不变型,可能会有黑边(如果元素WH的比例和sreeen的WH比例不同的话,这里只保证一个方向上填满屏幕),然后复制给zoom。为了简化操作这里使用了jquery。结果如下:


ok,这样就可以基本满足要求了,如有其他问题请联系我,前端技术交流群:139761568



相关文章
|
29天前
|
JavaScript 前端开发
使用jQuery操作DOM元素
使用jQuery操作DOM元素
16 1
|
29天前
|
JavaScript 前端开发
JavaScript操作DOM元素
JavaScript操作DOM元素
11 1
|
1月前
|
JavaScript vr&ar
vue3通过ref获取dom元素并修改样式
vue3通过ref获取dom元素并修改样式
110 0
|
2月前
|
JavaScript
当需要频繁地切换DOM元素的显示状态时,应该使用`v-if`还是`v-show`?
当需要频繁地切换DOM元素的显示状态时,应该使用`v-if`还是`v-show`?
29 1
|
15天前
|
JavaScript
vue监听dom元素的宽高变化和自定义指令监听dom元素的宽高变化
vue监听dom元素的宽高变化和自定义指令监听dom元素的宽高变化
16 0
|
8天前
|
JavaScript 前端开发
|
29天前
|
前端开发 JavaScript Java
第四章使用jQuery操作DOM元素
第四章使用jQuery操作DOM元素
9 0
|
29天前
|
JavaScript
jQuery操作DOM元素案例
jQuery操作DOM元素案例
10 0
|
1月前
|
JavaScript 前端开发
JS获取DOM元素的八种方法(含代码,简单易懂)
JS获取DOM元素的八种方法(含代码,简单易懂)
|
2月前
|
JavaScript
在Vue中,还有哪些指令可以用于动态显示DOM元素?
在Vue中,还有哪些指令可以用于动态显示DOM元素?
21 1