gpt4 book ai didi

javascript - Safari 上的 CSS TranslateY 动画

转载 作者:行者123 更新时间:2023-11-28 07:47:21 25 4
gpt4 key购买 nike

我想使用 CSS 从顶部滑入全屏 div。我正在使用 AngularJS( ionic 框架)但试图让这个动画保持纯 css。 div 不会在 Safari 中向下滑动(在 Chrome 中工作)——它只是出现。但它会正常滑回。这是代码:

HTML:

<div class="slideDown ng-hide" id="gallery-overlay" ng-show="showGallery" ng-click="hideGalleryClick()"></div>

CSS:

.slideDown{
-webkit-animation-name: slideDown;
-webkit-animation-duration: 1s;
-webkit-animation-timing-function: ease;
visibility: visible !important;
}
@-webkit-keyframes slideDown {
0% {
-webkit-transform: translateY(-100%);
}
100% {
-webkit-transform: translateY(0%);
}
}
.slideUp{
-webkit-animation-name: slideUp;
-webkit-animation-duration: 1s;
-webkit-animation-timing-function: ease;
visibility: visible !important;
}
@-webkit-keyframes slideUp {
0% {
-webkit-transform: translateY(0%);
}
100% {
-webkit-transform: translateY(-100%);
}
}

JS:

$scope.showGalleryClick = function() {    
$('#gallery-overlay').removeClass('slideUp');
$('#gallery-overlay').addClass('slideDown');
$scope.showGallery = true;
}

$scope.hideGalleryClick = function() {
$('#gallery-overlay').removeClass('slideDown');
$('#gallery-overlay').addClass('slideUp');
$scope.showGallery = false;
}

translateY(-100%) 有问题吗??我怎样才能让这个 div 从顶部滑入并向上滑动?

最佳答案

  • 转换为过渡而不是动画。
  • 修复了 ng-click 导致页面通过 preventDefault() 发布的 anchor 标记。
  • 将显示/隐藏转换为切换。

function GalleryCtrl($scope) {
$scope.toggleGallery = function($event) {
angular.element(document.querySelector('#gallery-overlay')).toggleClass('slideDown');
$event.preventDefault();
$event.stopPropagation(); /* Not required, but likely good */
};
}
#gallery-overlay {
position: absolute;
top: -100px;
left: 0;
right: 0;
height: 100px;
background-color: #222;
transition: all 1s ease;
}
#gallery-overlay.slideDown {
top: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
<div ng-controller="GalleryCtrl">
<div>
<a href="" ng-click="toggleGallery($event)">Click me to slide panel down</a>
</div>
<div id="gallery-overlay" ng-click="toggleGallery($event)"></div>
</div>
</div>

关于javascript - Safari 上的 CSS TranslateY 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30625105/

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