gpt4 book ai didi

html - 过渡和阴影在 IE11 中不起作用

转载 作者:行者123 更新时间:2023-11-28 00:27:34 26 4
gpt4 key购买 nike

我有这个右侧菜单,当您将鼠标悬停在它上面时,它会展开。我不知道为什么,但过渡和阴影不会显示在 IE11 上,即使我包含了 -ms-transition 等属性。

据我所知,IE 从 IE10 开始就支持转换,所以我找不到它不工作的原因。

阴影也不可见,但 Chrome 和 Firefox 没问题...

我花了很多时间试图追根究底,查看了无数线程,但都没有成功。

angular.module('app',[])

.controller('mainCtrl', function() {
var vm = this;

vm.expanded = false;

vm.expandCollapseMenu = function() {
vm.expanded = !vm.expanded;
};
})
.right-side-menu {
height: 90%;
width: 20%;
left: calc(100% - 60px);
display: flex;
background: red;
position: fixed;
overflow: hidden;
-webkit-box-shadow: -1px 0 10px -2px #0000009e;
-moz-box-shadow: -1px 0 10px -2px #0000009e;
box-shadow: -1px 0 10px -2px #0000009e;
-webkit-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
-moz-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
-ms-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
-o-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
}

.right-side-menu.right-side-menu-expanded {
left: 80%;
-webkit-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
-moz-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
-ms-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
-o-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
}
<!DOCTYPE html>
<html ng-app="app">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.5/angular.min.js"></script>
</head>
<body>
<div ng-controller="mainCtrl as vm">
<div class="right-side-menu" ng-mouseenter="vm.expandCollapseMenu()"
ng-mouseleave="vm.expandCollapseMenu()"
ng-class="{'right-side-menu-expanded': vm.expanded}">
</div>
</div>
</body>
</html>

最佳答案

如果您尝试稍微改变颜色,您会看到阴影会起作用。

代码:

<!DOCTYPE html>
<html ng-app="app">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.5/angular.min.js"></script>
<script>
angular.module('app',[])

.controller('mainCtrl', function() {
var vm = this;

vm.expanded = false;

vm.expandCollapseMenu = function() {
vm.expanded = !vm.expanded;
};
})
</script>
<style>
.right-side-menu {
height: 90%;
width: 20%;
left: calc(100% - 60px);
display: flex;
background: red;
position: fixed;
overflow: hidden;
-webkit-box-shadow: -1px 0 10px -2px #0000009e;
-moz-box-shadow: -1px 0 10px -2px #0000009e;
/*box-shadow: -1px 0 10px -2px #0000009e;*/
box-shadow: -5px -5px 10px -2px #888888;
-webkit-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
-moz-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
-ms-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
-o-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
}

.right-side-menu.right-side-menu-expanded {
left: 80%;
-webkit-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
-moz-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
-ms-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
-o-transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
transition: 0.2s cubic-bezier(0.21, 0.69, 0.7, 1);
}
</style>
</head>
<body>
<div ng-controller="mainCtrl as vm">
<div class="right-side-menu" ng-mouseenter="vm.expandCollapseMenu()"
ng-mouseleave="vm.expandCollapseMenu()"
ng-class="{'right-side-menu-expanded': vm.expanded}">
</div>
</div>
</body>
</html>

IE 11 中的输出:

enter image description here

在 IE 11 中,transition 的输出受 positioncalc 等 css 代码行的影响。

正如您在这个 W3c 示例中看到的那样,转换在 IE 11 上运行良好。

Transition Example

所以大家可以尝试看看,尝试修改。

关于html - 过渡和阴影在 IE11 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54571628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com