首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    纯 JS 实现放大缩小拖拽采坑之旅

    本文首发于政采云前端团队博客:纯 JS 实现放大缩小拖拽采坑之旅 https://www.zoo.team/article/scaling ?...前言 最近团队需要做一个智能客服悬浮窗功能,需要支持拖动、放大缩小等功能,因为这个是全局插件,为了兼容性考虑全部使用原生 JS 实现,不引用任何第三方库或者插件。...三个坑点 拖拽采宝时会导致采宝放大缩小 采宝显示在屏幕边界时被遮挡显示不全 采宝放大和缩小后,位置发生变化 (一)拖拽时会导致采宝放大缩小 我们在操作采宝时,不管是鼠标拖动还是点击放大缩小,我们的事件都需要绑定在采宝头部的图标上...这样就会出现在拖动采宝的时候,采宝会放大和缩小。 ?...'放大缩小' (三)采宝放大和缩小后,位置发生变化 通过上图,我们可以看到,当小采宝处在显示屏边界时,点击放大后再点击缩小,我们发现采宝的位置发生了变化。

    5.8K10

    【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 )

    下图中的 放大镜图片 和 头像图标 都定义在精灵图中 , 二倍精灵图设置步骤 : 缩小精灵图 : 在 Firework 中 , 将精灵图缩小一半 ; 测量坐标 : 在缩小一半的精灵图中测量坐标...; 设置代码 : 将代码中的 background-size 缩小一半 , 也就是精灵图缩小一半 ; 插入的放大镜精灵图 : .search::before { /* 使用伪元素方式 插入 搜索栏放大镜图片...: 该图片在缩小一倍的精灵图的 59, 279 位置, 设置背景时将精灵图 向左移动 59 像素 向上移动 279 像素 */...: 该图片在缩小一倍的精灵图的 59, 194 位置, 设置背景时将精灵图 向左移动 59 像素 向上移动 194 像素 */...: 该图片在缩小一倍的精灵图的 59, 279 位置, 设置背景时将精灵图 向左移动 59 像素 向上移动 279 像素 */

    38020

    聊聊苹果营销页中几个有趣的交互动画

    缩放图片 开始时是一张全屏的图片,在滚动过程中慢慢变成另一张图片,接着这张图片以屏幕正中间为基准点慢慢缩小,在缩小的过程中,这张图是定在屏幕中央的,缩小到一定值的时候,图片随着滚动条滚动。 ?...开始之前我们来看一下没有放大的之前图,如下: ? 它由两张图片组成,屏幕中显示的图片,他与 电脑外壳 的上间距是 18px,当放大了之后,图片与电脑外壳图片 的上边距应该是 18 * 放大比率。...这里我们需要计算出几个临界点的值,比如最大/小的放大比率,最大/小偏移值,开始缩小的点等。...图片缩小 这里我们不使用 transform: matrix 来做这个放大缩小,我们使用 background-position 和 background-size 来进行图片的 「缩小/放大和偏移」...styles.fixed : ''}`}>IMG2 div> div> div> // ... 其他内容 预览效果图 ?

    1.9K60

    「实战」如何用H5实现原生体验的图片预览组件

    翻页的实现 理论上支持图片无限翻页,这里实现的方法是: 任何时候都保持三张图片在容器中并且中间的图片在屏幕内。翻页之后再通过删除前一张和补充后一张来维持三张图片的状态。...ps:对于transform.js的origin,默认是0表示是图片50%的位置,只能设置px值不能设置比例 例如下图中,图1是当前图片从当前中心点放大两倍的情况,实际上等同与从图2平移到图3。...手势细节-自动贴边 当图片放大再缩小的时候,图片有可能还是超出边界了。因此,在手指松开之后,需要让图片自动贴近到该方向的屏幕边缘。...手势细节-回弹 交互上,图片放大和缩小是有倍数限制的,超过最大/最小倍数值的时候,会让用户继续放大一部分,但再超过一定的阈值之后会停止放大,并在手指松开之后回弹到最大/最小倍数。...这样的交互形式让用户对放大缩小的最大限制有一个直观的了解,避免生硬的交互体验。 这里的实现原理很简单:在alloyFinger的pinch回调中,设置最大倍数为max+n,其中n为超出阈值。

    3.1K20

    【移动端网页布局】流式布局案例 ③ ( 实现搜索栏功能 | 伪元素选择器 | 子绝父相 | 外边距塌陷处理 | 二倍精灵图处理方案 )

    166, 0 位置 ; 精灵图的大小是 400 x 400 像素的 , 计算缩放时 , 需要计算缩放比例 ; 精灵图中放大镜图标为 30 x 29 像素 , 在布局中放大镜图标为 18 x 15 像素...; 这里将精灵图中的放大镜图标设置为 36 x 30 像素 , 比较好计算 ; 二倍精灵图处理方案 : 在 Firework 中 , 将精灵图缩小一半 ; 在缩小一半的精灵图中测量坐标 ; 将代码中的...background-size 缩小一半 , 也就是精灵图缩小一半 ; 最终测量后 , 在缩小一半的精灵图中 , 放大镜图标的左上角在 81, 0 坐标位置 , 设置 background-position...-- 中间搜索框中的 放大镜 图标 --> div class="sou">div> div> 放大镜 图标 --> div class="sou">div> div> <!

    2K30

    JS:用rem来做响应式开发

    那就要用到js在页面加载时获取window的宽度(浏览器窗口的宽度)$(window).width();在开发手机页面的时候,一般我们设置最大宽度为640px,因为640px可以保证在至今最宽的手机上显示时网页两端刚好贴合屏幕...屏幕放大缩小这三个div也同样还在一行等比放大缩小 html div class="container"> div class="box">1div> div class="box..., 所以每个div宽10.6rem 你也可以像论坛里面讲的那样设置html的 font-size:62.5%;因为浏览器默认像素16px; 乘以62.5%之后为整数10px;方便计算...height:10.6rem; border:1px solid #000; box-sizing: border-box; } js...,你会发现开始这3个div会随着你浏览器窗口缩小而缩小,到达某个值后就不动了,原因是谷歌浏览器默认支持html的font-size最小值为10px;在小于这个值就不会再小了,这是我当时碰到的问题花了快两个小时上网找

    6.2K10

    【移动端网页布局】Flex 弹性布局案例 ③ ( 横向导航栏 | 固定定位下面的布局设置 | 设置横向导航栏弹性布局 | 弹性布局主轴和侧轴设置 | 二倍精灵图 )

    ; 二倍精灵图设置步骤 : 缩小精灵图 : 在 Firework 中 , 将精灵图缩小一半 ; 测量坐标 : 在缩小一半的精灵图中测量坐标 ; 设置代码 : 将代码中的 background-size...缩小一半 , 也就是精灵图缩小一半 ; 需要为每个 图标 , 单独设置其 精灵图背景 的 背景位置 ; .local-nav li [class^="local-nav-icon"] { /...-- Banner 轮播图模块 --> div class="banner"> div>...: 该图片在缩小一倍的精灵图的 59, 279 位置, 设置背景时将精灵图 向左移动 59 像素 向上移动 279 像素 */...: 该图片在缩小一倍的精灵图的 59, 194 位置, 设置背景时将精灵图 向左移动 59 像素 向上移动 194 像素 */

    58620

    css绝对定位如何在不同分辨率下的电脑正常显示定位位置?

    盒子里的div等小盒子可以用百分比来表示,来达到页面自适应。...例如:做一个活动页面,其中这个页面背景为一个大图,在这个大图上要放一些小图来与大图实现定位,绝对不能以大图直接作为背景!...而是在放大图背景的div里继续放一个安全宽度div,再把它作为父元素做相对定位,给里面的子元素做绝对定位,这样就不会出现不同分辨率下绝对定位错乱的问题了。...还有一个小问题,在页面加载慢的时候重新刷新页面会先显示放大的效果,再变为缩小后的效果,会闪一下,这个还没找到解决办法,希望懂的朋友们多多交流。...scale,则该缩小相当于当前页面下缩小的效果了,两边自然会留白。

    3.6K70

    Chrome开发者工具不完全指南:(三、性能篇)

    首先我们依然为该面板区分为四个区域,然后对它们里面的各个功能进行逐一介绍: ?...点击会弹出一个小框框,里面可以搜索或者显示隐藏你要找的信息。 4、手动回收你网站内内存垃圾。   ...5、View:监控信息的展示方式,目前有两种,柱状图和条状图,在展示的事例中,卤煮默认选择条状图。   6、在侦听过程中希望抓取的信息,js堆栈、内存、绘图等。。。。   ...在区域2种,滚动鼠标的滚轮,你会看到时间轴会放大缩小,现在我们随着滚轮不断缩小时间轴的范围,我们可以看到一些各个颜色的横条: ?...js内存的变化曲线是比较复杂的,里面参杂了很多因素。我们所列出来的例子实际上是很简单的。

    73620

    flex:1代表什么

    class="container"> div class="div">我是一个divdiv> div class="div">我是一个很多字divdiv> div class...red; flex: 1; } 效果图 利用 flex: 1; 确实实现了三个不同内容的 div 平分空间, flex:1; 即就是代表均匀分配元素; flex: 1; =...1 1 0; 这是完整写法, 详见mdn, 它还有另外两种完整写法, 分别是 initial (0 1 auto) 和 none (0 0 auto) 第一个参数表示: flex-grow 定义项目的放大比例...,默认为0,即如果存在剩余空间,也不放大 第二个参数表示: flex-shrink 定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小 第三个参数表示: flex-basis给上面两个属性分配多余空间之前..., 计算项目是否有多余空间, 默认值为 auto, 即项目本身的大小;设置为auto的时候,会根据盒子内容的多少自动撑开盒子,它里面的每个盒子的宽度是不一样的。

    17910
    领券