javascript – CSS3翻译出屏幕

前端之家收集整理的这篇文章主要介绍了javascript – CSS3翻译出屏幕前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于一些项目,我已经在页面上的元素,我想要翻译出屏幕区域(让它们从文档中飞出来).在适当的代码中,这应该只是通过向相关元素添加一个类,之后css将处理其余元素.问题在于,如果是例如
.block.hide{
    -webkit-transform:translateY(-10000px);
}

使用的元素将首先从屏幕中飞出不必要的距离,并以不必要的高速度.纯粹从审美的角度来看,还有很多需要(理论上讲,例如,将来可能会介绍一个高达10000px的屏幕).

(更新)百分比不能使用的问题是100%是相对于元素本身而不是父元素/屏幕大小.并且将元素包含在一个全尺寸的父项中是有可能的,但是会产生一个点击事件的混乱.经过几个答案,请允许我指出,我在谈论翻译,而不是关于职位:绝对的css3转换(这些都很好,但一旦你得到足够的,他们停止乐趣).

你会想到什么美学上令人愉快的解决方案,允许元素在一个固定的时间内翻出屏幕?

示例代码可以在这个jsfiddle中找到,演示基本概念.
http://jsfiddle.net/ATcpw/

(有关详情,请参阅我自己的答案)

解决方法

我知道这不是你正在问的,但…

你会考虑使用Greensock’s Animation Platform的CSS动画吗?这是非常快的(它声称它比jQuery快20倍),您可以在这里看到速度测试:http://www.greensock.com/js/speed.html

这将使您的代码更好,我相信,而不是试图破解CSS动画,您可以专注于更重要的东西.

我在这里创建了一个JSFiddle:http://jsfiddle.net/ATcpw/4/

CSS和可能的JS看起来更简单:

document.querySelector("button").addEventListener("click",function(){
    var toAnimate = document.querySelector(".block");
    TweenMax.to(toAnimate,2,{y: -window.innerHeight});
});

CSS:

.block{
    position:absolute;
    bottom:10px;
    right:10px;
    left:10px;
    height:100px;
    background-image: url(http://lorempixel.com/800/100);
}

猜你在找的JavaScript相关文章