解决 display 和 transition 冲突的问题

问题:

  既需要“显示、隐藏”’效果,也需要动画效果。此时使用了xxx.style.display = "none / block" 之后,我们发现 transition 动画效果就没有了。

解决办法一:用定时器(这种方法并不好)

btn2.onclick = function(){
    xxx.style.display = "block";
    setTimeout(function(){
        xxx.style.opacity="1";
    },0);
};

解决办法二:用 visibility 属性代替 display

  style 属性的 display 被隐藏的控件不再占用显示时占用的位置

  visibility 隐藏的控件仅仅是将控件设置成不可见了,控件仍然占俱原来的位置。

btn2.onclick = function(){
    let t = document.documentElement.scrollTop;
    if(t>1){
        side.style.visibility="visible";//可见
        side.style.opacity = "1";
    };
    if(t<=1){
        side.style.opacity = "0";
        side.style.visibility="hidden";//不可见
    }
};

原文地址:https://www.cnblogs.com/MrZhujl/p/10355649.html

时间: 2024-08-30 16:47:31

解决 display 和 transition 冲突的问题的相关文章

vue 解决display与 transition冲突

下边是vue的源码 var raf = inBrowser && window.requestAnimationFrame; var waitForTransitionStart = raf /* istanbul ignore next */ ? function (fn) { raf(function () { raf(fn); }); } : function (fn) { setTimeout(fn, 50); };

解决Eclipse SVN文件冲突详解

在使用Eclipse SVN插件进行团队开发的过程,假设开发人员A和B都获取了同一个文件的最新版本(假如版本号为8),并都对其进行了改动,成员A已经提交了自己所作的改动(版本号变为9),如果此时成员B想要提交自己的改动,就极有可能与成员B已经提交的改动产生冲突. 如下图所示,在Eclipse SVN同步视图中的Test.java就是一个产生了版本冲突的文件,那么我们该如何解决SVN的文件冲突呢? 1.解决简单的文件版本冲突 对于产生版本冲突的文件,如果两个人改动的不是同一处位置,例如成员A只改动

eclipse中解决git分支合并冲突

冲突场景: 在master分支上有文件student.py. 在master上增新一个dev分支 在dev分支上修改文件student.py.增加函数def d():,并commit; 在master分支上修改文件student.py.删除函数def a():,并commit; 在master分支上合并dev分支,git提示冲突,如下图: 原因分析: 在master和dev分支上均对文件student.py进行了修改,导致合并是出现错误,具体原因可以见 http://www.liaoxuefen

如何解决git提交代码冲突

当我们使用git提交代码时,别人可能也同时修改了我们修改的文件,但是别人的先合入到配置库里边,这样当我们的提交要合入时,就会产生冲突,可以使用以下步骤来解决冲突: (1) git rebase    分支名称   本地分支名称 (2)rebase之后,就会显示冲突,到目标文件进行修改 (3)git add . (4)git rebase --continue (5) git rebase 分支名称   本地分支名称 (6)repo sync (7)repo upload 如此之后,即可提交代码

解决SqlServer中Collate冲突的问题

使用Sql连表查询的时候会遇到Collate冲突的问题,比如: select id,Name from [dbo].VMImage union select id,Name from [dbo].[DicVMImage] 得到的Error: Msg 468, Level 16, State 9, Line 1 Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_Latin1_Ge

如何全面解决ECSHOP的jquery冲突

主要就是Ecshop的AJAX传输类,transport.js中重写了object的对象原型,从而导致了与jq框架的冲突. 解决: 1. 删除transport.js中587行 - 636行中关于object.prototype.toJSONString的定义 2. 自定义一个方法用于object对象的json序列化 如下 function obj2str(o) { //开始 var r = []; if(typeof o =="string") return "\"

SpringJUnit4测试--测试无反应/控制台报空指针的解决---junit的jar冲突!

前言: 前些日子碰到一个诡异的问题--用springJUnit进行测试,运行方法什么反应也没有,控制台 也没有输出,百度也没有答案--只好暂时作罢.今天我只好用上了排除法,建个测试小项目,将只要能测试的几个Spring相关jar拷进去,测试正常,然后开始与原项目进行对比排除jar,看看到底是哪个/哪些jar惹的祸导致jar冲突,结果真是出乎我的意料--竟然是自家兄弟!原来这个项目中也有个junit-4.4的jar,把它删掉就好了.(项目build path添加junt4依赖时会导入相应jar,与

解决jquery之间的冲突问题

今天最大是收获就是解决了 jQuery与Prototype并存的冲突问题,不过还是得感谢百度,在网上找到的答案,很感谢前辈们的无私贡献,具体的解决办法如下: 1.将jquery.js放到prototype.js后面(这个是必须的否则无论如何还是要罢工地). 2.在jquery.js后面将$变量重命名. 方法如下: 复制代码代码如下: <script type="text/javascript" type="text/javascript" src="

怎样解决git提交代码冲突

当我们使用git提交代码时,别人可能也同一时候改动了我们改动的文件,可是别人的先合入到配置库里边,这样当我们的提交要合入时.就会产生冲突,能够使用下面步骤来解决冲突: (1) git rebase    分支名称   本地分支名称 (2)rebase之后,就会显示冲突.到目标文件进行改动 (3)git add . (4)git rebase --continue (5) git rebase 分支名称   本地分支名称 (6)repo sync (7)repo upload 如此之后,就可以提交