【原理】
zoom和scale都是用于对元素的缩放,但两者存在诸多差异
①兼容问题;
②渲染顺序及对布局(盒子)影响;
先说一下兼容问题:
zoom属是IE浏览器的专有属性(这句话不太正确,因为新版主流浏览器也开始兼容zoom属性),但是记住火狐和老版本的webkit核心的浏览器任不支持这个属性。
而scale属性是在 CSS 3.0 规范草案中新出的对zoom的标准化,通过css3里面的动画属性scale进行缩放
下面说下渲染顺序及对布局(盒子)影响:
【通俗理解】就是zoom是先渲染(缩放)后布局,可能影响盒子计算;而scale是先布局后渲染(缩放),故而不会影响布局(盒子计算)
具体表现为:
zoom缩放会将元素保持在左上角,而scale默认是中间位置,可以通过transform-origin来设置
另外他们执行的渲染顺序也不同zoom可能影响到盒子的计算
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>zoom与scale区别</title> <style> *{ margin:0; padding:0; font-size:12px; } div { width:300px;height:100px; border:1px solid red; font-size:0px; line-height:100px; margin:10px; } span { display:inline-block; height:80px;width:200px;background:blue; vertical-align:middle; overflow:hidden; } </style> </head> <body> <div> 1.<span style="-webkit-transform:scale(0.5);"></span> </div> <div> 2.<span style="-webkit-transform-origin:top left;-webkit-transform:scale(0.5);"></span> </div> <div> 3.<span style="zoom:0.5;"> </span> </div> </body> </html>
下面看效果吧:
【稍微解释一下】
第一个测试中只设置了scale,于是元素以自己的中心为基点做缩放;
第二个测试中不仅设置了scale,还有origin来将缩放的基点设置到左上角,因此变化结束后元素呆在了左上角。虽然容器设置了和高度一样的行高,当它并没有在容器里居中,因为scale是先布局后变换的,变换不会对布局产生影响;
最后一个测试是使用zoom,虽然Firefox上不支持,但这是个很古老的特性了。它和第二个测试的区别是它先缩放,后计算布局。所以在例子中它得到了垂直居中效果
.
相关推荐
Scale属性scale属性的取值为2个,它本身其实相当于一个函数,因为它的写法就和函数一样:scale();scale(x);scale(x,y);1、scale(x,y) 对元素进行缩放X表示水平方向缩放的倍数 Y表示垂直方向的缩放倍数Y是一个
除了使用ADF,Esri还提供了其他API,如JavaScript API、Flex API和Silverlight API,它们同样支持“Zoom to scale”功能,但实现方式会有所不同,更适合Web开发环境。 总的来说,“Zoom to scale”在ArcGIS Server ...
多文档界面(MDI)源代码 zoom_scale.zip
在Windows编程领域,多文档界面(Multiple Document ...以上就是关于MDI应用中实现“zoom_scale”功能的一些核心概念和技术细节。通过理解和应用这些知识点,开发者可以创建出具备灵活缩放功能的多文档界面应用程序。
缩放(pinching)功能主要依赖于`UIScrollView` 的`zoomScale` 属性和手势识别器(Gesture Recognizer)。`zoomScale` 默认值为1,表示没有缩放。当用户执行捏合手势时,`UIScrollView` 的代理方法`...
可缩放视图实现 Zoom、Scale、Scroll、Fling 的基本视图如何 : 在您的布局中插入视图: < RelativeLayout xss=removed xss=removed xss=removed xss=removed> < ...
例如,`transform: scale(x)`可以用来缩放元素,其中`x`是一个介于0和1之间的值,表示相对于原尺寸的缩放比例。如果希望在鼠标悬停时实现图片放大效果,可以使用`:hover`伪类结合`transition`属性来平滑过渡。 除了...
可以使用用浮点数和百分比来定义缩放比例。 zoom的浏览器兼容性:http://caniuse.com/#search=zoom zoom的兼容性:firefox 全系列不支持。 (2)transform transform:scale(1.1,1.1); scale(x,y) 定义 2D 缩放转换...
- **应用变换**:使用CSS3的transform属性改变图片的scale和translate值,实现平滑的缩放效果。 - **动画过渡**:利用transition属性设定动画过渡时间,让缩放过程看起来更自然。 4. **配置与使用** 要启用lg-...
然后,我们可以应用这个比例到`transform: scale()`CSS属性上。同时,为了保持图像的清晰度,应使用CSS的`backface-visibility`和`transform-style`属性确保图像在缩放时不会模糊。 在“zoom-info”文件中,可能...
同时,为了满足不同设备和屏幕尺寸的需求,TapToZoom通常需要适配各种屏幕比例和分辨率,确保在任何设备上都能正常工作。 通过学习TapToZoom,不仅可以提升用户体验,还能加深对触摸事件处理和图形变换的理解。在...
2. **<scale>标签**:在`anim_zoom_in.xml`中,主要的动画元素是一个`<scale>`标签。这个标签用于指定元素的缩放效果。它的基本结构如下: ``` <scale android:fromXScale="float" android:toXScale="float" ...
"WPF_Image_Pan_and_Zoom"这一主题聚焦于如何在WPF应用中实现图像的平移和缩放功能,这对于创建交互式的图像查看器或地图应用程序至关重要。以下将详细讲解实现这一功能的关键技术和步骤。 首先,我们需要了解WPF中...
在IT行业中,网页动态效果和用户体验的提升是至关重要的,其中滑动图片(SlideImage)和缩放(Zoom)功能尤为常见。"slideImage&zoom.zip"是一个包含这两个功能演示的压缩包,主要针对使用jQuery库来实现这些效果。...
在`ScaleGestureDetector`的`onScale()`方法中,根据缩放因子调整图片的缩放比例。 3. **设置最大和最小缩放级别**: 为了防止图片过小或过大,需要设定一个最小和最大缩放级别。通常,最小缩放级别为1(原大小)...
同样,我们需要创建一个子类并重写`onScaleBegin()`, `onScale()`, 和`onScaleEnd()`方法来控制缩放行为。 2. **图片矩阵操作**: 当用户进行拖动或缩放时,我们需要修改`ImageView`内部的`Matrix`对象来改变图片...
可以滚动,放大和缩小的图像列表。 放大时,可以拖动图像。 也可以传递将在滚动列表的每个图像上呈现的“图钉”数组。 点击图片观看演示视频 用法 require react-native-zoom-scroll并使用标记,将图像数组作为data...
4. **图片数据获取**:有两种常见的方法获取放大后的图片数据:一种是通过CSS的`transform: scale()`属性改变原始图片的大小,使其看起来放大了;另一种是提前准备一张高分辨率的图片,当需要放大时,加载这张大图的...