关于使用css3属性:transform固定菜单位置,在滑动页面时菜单闪现抖动的问题

 1 myScroll = new IScroll(‘#h-s-wrapper‘, {
 2         scrollX: true,
 3         scrollY: true,
 4         probeType: 3,
 5         mouseWheel: true,
 6         bounce: false,        //锁定边界,不允许拖拽
 7         //click: true
 8         //preventDefault: false,
 9         preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT|A)$/ }
10     });
11     myScroll.on(‘scroll‘, updatePosition);
12     myScroll.on(‘scrollEnd‘, loadNewData);
 1 function updatePosition() {
 2     /// <summary>设置锁定表头、列</summary>
 3     var iTop = this.y;
 4     var iLeft = this.x;
 5     //上下滑动,当iTop为负值时,表明容器的顶边在Y轴上0位置上边
 6     if (iTop < 0) {
 7         //$(‘#h-s-content table thead tr‘).css(‘transform‘, ‘translate(0px, ‘ + Math.abs(iTop) + ‘px)‘);//使用translate,在上下滑动页面时,固定的菜单会出现抖动现象
 8         $(‘#h-s-content table thead tr‘).css(‘transform‘, ‘translate3d(0px, ‘ + Math.abs(iTop) + ‘px,0px)‘);
 9
10     } else {
11         //此处设置为0,因为存在惯性滑动,向下滑动时会导致容器的坐标会越过Y轴的0坐标,变成正值,会造成设置thead表头的坐标向下偏移
12         $(‘#h-s-content table thead tr‘).css(‘transform‘, ‘translate3d(0px, 0px, 0px)‘);
13     }
14     //左右滑动;当iLeft为负值时,表明容器的左侧边在X轴上0位置的左侧
15     if (iLeft < 0) {
16         $(‘#h-s-content table tr th:first-child, td:first-child‘).css(‘transform‘, ‘translate3d(‘ + Math.abs(iLeft) + ‘px, 0px,0px)‘);
17     } else {
18         $(‘#h-s-content table tr th:first-child, td:first-child‘).css(‘transform‘, ‘translate3d(0px, 0px, 0px)‘);
19     }
20 }

解决办法:使用transform方式固定菜单、表头,在上下滚动页面时菜单会出现抖动现象,将translate改成translate3d,能解决该问题。

原文地址:https://www.cnblogs.com/front-end-develop/p/9107549.html

时间: 2024-10-01 03:32:47

关于使用css3属性:transform固定菜单位置,在滑动页面时菜单闪现抖动的问题的相关文章

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate) 在CSS3中,可以利用transform功能来实现文字或图像的旋转.缩放.倾斜.移动这四种类型的变形处理,本文将对此做详细介绍. 一.旋转 rotate 用法:transform: rotate(45deg); 共一个参数"角度",单位deg为度的意思,正数为顺时针旋转,负数为逆时针旋转,上述代码作用是顺时针旋转45度. 二.缩放 scale 用法:transform

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)(转载)

在CSS3中,可以利用transform功能来实现文字或图像的旋转.缩放.倾斜.移动这四种类型的变形处理,本文将对此做详细介绍. 一.旋转 rotate 用法:transform: rotate(45deg); 共一个参数“角度”,单位deg为度的意思,正数为顺时针旋转,负数为逆时针旋转,上述代码作用是顺时针旋转45度. 二.缩放 scale 用法:transform: scale(0.5)  或者  transform: scale(0.5, 2); 参数表示缩放倍数: 一个参数时:表示水平和

Metronic5.1导航菜单状态在切换页面时的适时调整

无论是Metronic5.1.gentelella.admilte等等bootstrap框架中左侧菜单,如果是静态页面,那么菜单状态都是设置好的.以下以Metronic5.1为例: <li class="m-menu__item m-menu__item--submenu m-menu__item--open m-menu__item--expanded" aria-haspopup="true" data-menu-submenu-toggle="

css3之transform的应用

一.利用transform实现图片额外显示 效果图如下 初始状态: 鼠标移上去之后: 背景色的问题鼠标移上去之后图片变的模糊一些了. 关键是显示右下角的白色部分,在figcation里面除了添加了文字内容,还添加了一个div.用这个div来达到我们想要的右下角白色区域的效果.思路:先给div设置足够的宽高,然后给div设置背景色,刚开始设置div隐藏,用transform中的translate属性,将div位置设置在图片外面.当鼠标放在图片上面时,给div重设位置,让其显示在图片中.关键是不要让

CSS3中动画属性transform、transition和animation

Transform:变形 在网页设计中,CSS被习惯性的理解为擅长表现静态样式,动态的元素必须借助于javascript才可以实现,而CSS3的出现改变了这一思维方式.CSS3除了增加革命性的创新功能外,还提供了对动画的支持,可以用来实现旋转.缩放.平移.扭曲和过渡效果等等,这些功能再一次证明了CSS3功能的强大和无限潜能. CSS3实现元素变形的基础来源于新增的transform属性,该属性可用于实现元素的旋转.缩放.平移.扭曲等效果.目前webkit内核支持-webkit-transform

利用CSS3的transform属性让元素在页面居中

今天学到让元素在页面中水平居中的新写法,利用了CSS3的transform属性,通过设置translate的值来改变元素的位置. 1.先来看看怎么实现的 页面中放一个div,width和height随便设置大小和背景色,以便查看效果: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>利用CSS3的

通过transform属性改变图片的位置大小等信息

对UIImageView的位置大小方向的改变可以通过改变其transform属性值实现. 位置改变: var transform = CGAffineTransformMakeTranslation(50, 50) imgScenery.transform = transform 缩放: let transform = CGAffineTransformMakeScale(2, 2)  //高宽各缩放两倍 imgScenery.transform = transform 旋转: let tran

css3新属性transform 3D的基础笔记.

研究了下css3中的 transform变换属性中的3D属性效果和看到的一篇好文章了解到了3D的学习;好文章地址:http://www.zhangxinxu.com/wordpress/2012/09/css3-3d-transform-perspective-animate-transition/ 下面只是自己能读懂自己写的代码例子: <style> #box{ -webkit-perspective:800px;//定义3D场景大小 -webkit-transform-origin:50%

基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转

基于css3新属性transform,实现3d立方体的旋转 通过原生JS,点击事件,鼠标按下.鼠标抬起和鼠标移动事件,实现3d立方体的拖动旋转,并将旋转角度实时的反应至界面上显示 实现原理:通过获取鼠标点击屏幕时的坐标和鼠标移动时的坐标,来获得鼠标在X轴.Y轴移动的距离,将距离实时赋值给transform属性 从而通过改变transform:rotate属性值来达到3d立方体旋转的效果 HTML代码块: <body> <input type="button" clas