【转载】用CSS动态展示有立体效果的APP截图

2021-06-27  本文已影响0人  天下第九九八十一

移动应用展示的 3D 效果

移动应用程序展示的精美 3D 效果,其中应用程序屏幕动画显示为分层堆栈。

机翻改,转自 Codrops,《3D Effect for Mobile App Showcase》
原文图片以及部分链接丢失,但演示、下载链接仍可访问,源码以此MIT协议开源,允许商用。

原文由 Mary Lou 写于 2013 年 8 月 1 日,原本在 Codrops 的Playground 中实现。

演示 (支持在移动设备观赏): http://tympanus.net/Development/3DEffectMobileShowcase/

下载源 :http://tympanus.net/Development/3DEffectMobileShowcase/3DEffectMobileShowcase.zip


今天我们想与您分享一个实验性的 3D 效果。它涉及一个 3D 移动设备和一些移动应用程序截图。单击切换按钮时,我们将为移动设备设置动画以进行旋转,并移动每个屏幕,以便最终获得分层视图。您以前肯定见过这种应用程序的演示,我们认为用 CSS 来做它可能会很有趣。

请注意:这仅在支持相应 CSS 属性的浏览器中按预期工作。仅限现代浏览器!

这个想法是通过轻微的初始旋转来定位移动设备:

然后我们将一个CSS类应用给布局容器,这将使设备转换到第二个位置,而且屏幕会以分层堆栈的形式移出。

效果一如下:

第二种效果有不同的旋转:

第三个还会显示一些文字标签:

展开的屏幕是锚点元素,因此你们可以将它们实际链接到最终的信息页面。这里有很多可能性,去疯吧。

包含一个 SCSS 文件,用于处理设备的一些尺寸变量和其他一些变量。

模拟的 3D 手机运用了一种圆角技术,涉及侧面的伪元素,最初由出色的网页设计师和开发人员 Jonathan Levaillant 设计并 实施

我们希望您喜欢这些效果,并希望它们能给您一些启发。


转载评论:
简直美极了,伟大的作品! 睿智又圆润,而且 —— 来自于未来一般,难道是2020年吗? 做得好。
请给我发私信。 我想谈谈一点儿事情。

干杯,继续做你正在做的事情,玛丽,你是最棒的。

问候。

另有见此原文,试其代码者,代码转贴下方,有缺陷(图片素材缺失、收起动画BUG),但总计不过两百行,得其要也。存为HTML文件即可观赏。

<style type="text/css">
body {
    background:#d2d1d5;
}
.tg-wrap {
    width:100%;
    height:80px;
}
.btn {
    display:block;
    border:1px solid white;
    border-radius:20px;
}
.toggle {
    width:100px;
    height:40px;
    margin:10px auto;
    color:white;
    cursor:pointer;
    text-align:center;
    line-height:40px;
}
.pe-wrap {
    width:100%;
    height:700px;
    position:relative;
}
.pe-perspective {
    perspective:1200px;
    perspective-origin:0% 0%;
    position:relative;
    width:310px;
    height:630px;
    margin:0 auto;
}
.pe-device {
    width:100%;
    height:100%;
    position:relative;
    transform-style:preserve-3d;
    transition:transform 0.5s ease-in-out;
    transform:rotateX(10deg) rotateY(17deg);
}
.pe-object {
    width:100%;
    height:100%;
    position:absolute;
    left:0;
    top:0;
    z-index:-1;
}
.pe-object .pe-front {
    width:100%;
    height:100%;
    background:url("http://o93mwnwp7.bkt.clouddn.com/demo/phone/iphone_white.png") no-repeat top left;
    background-size:100% 100%;
}
.pe-pages {
    position:absolute;
    left:18.29px;
    top:74px;
    width:272.8px;
    height:482.391px;
}
.pe-pages div {
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:100%;
    cursor:pointer;
}
.pe-pages .page-1 {
    background:url("https://tympanus.net/Development/3DEffectMobileShowcase/images/screen1_1.png") no-repeat center center;
    background-size:100% 100%;
    transition:transform 0.7s ease-in-out 0.35s,opacity 0.4s;
}
.pe-pages .page-2 {
    background:url("https://tympanus.net/Development/3DEffectMobileShowcase/images/screen1_2.png") no-repeat center center;
    background-size:100% 100%;
    transition:transform 0.7s ease-in-out 0.3s,opacity 0.4s;
}
.pe-pages .page-3 {
    background:url("https://tympanus.net/Development/3DEffectMobileShowcase/images/screen1_3.png") no-repeat center center;
    background-size:100% 100%;
    transition:transform 0.7s ease-in-out 0.25s,opacity 0.4s;
}
.pe-pages .page-4 {
    background:url("https://tympanus.net/Development/3DEffectMobileShowcase/images/screen1_4.png") no-repeat center center;
    background-size:100% 100%;
    transition:transform 0.7s ease-in-out 0.2s,opacity 0.4s;
}
.pe-pages .page-5 {
    background:url("https://tympanus.net/Development/3DEffectMobileShowcase/images/screen1_5.png") no-repeat center center;
    background-size:100% 100%;
    transition:transform 0.7s ease-in-out 0.15s,opacity 0.4s;
}
.expand-view .pe-device {
    transform:rotateY(50deg) rotateX(20deg) translateZ(-15px) translateZ(-285px);
}
.expand-view .pe-pages:hover:not(.active) {
    opacity:0.1;
}
.expand-view .page-1 {
    transform:translateZ(85px);
}
.expand-view .page-2 {
    transform:translateZ(155px);
}
.expand-view .page-3 {
    transform:translateZ(225px);
}
.expand-view .page-4 {
    transform:translateZ(295px);
}
.expand-view .page-5 {
    transform:translateZ(365px);
}

</style>

<body>


<div class="tg-wrap">
    <div id="j-toggle" class="btn toggle">Toggle</div>
</div>
<div class="pe-wrap">
    <div id="j-view" class="pe-perspective">
        <div class="pe-device">
            <div class="pe-object">
                <div class="pe-front"></div>
            </div>
            <div class="pe-pages" id="jPageList">
                <div class="page-1"></div>
                <div class="page-2"></div>
                <div class="page-3"></div>
                <div class="page-4"></div>
                <div class="page-5"></div>
            </div>
        </div>
    </div>
</div>

<script>
function toggleView(){
    document.querySelector("#j-view").classList.toggle("expand-view");
}

// 切换事件
document.querySelector("#j-toggle").addEventListener("click",toggleView,false)

// 鼠标划过事件
const aPages = document.getElementById("jPageList").getElementsByTagName("div");

// 循环添加鼠标滑进滑出事件
[].slice.call(aPages).forEach((item,index)=>{   item.addEventListener("mouseenter",function(){
        this.classList.add("active");
    },false)
    item.addEventListener("mouseleave",function(){
        this.classList.remove("active");
    },false)
})
</script>

</body>

然而,百度第一行关键词,我发现了…… http://www.htmleaf.com/ziliaoku/qianduanjiaocheng/20141021252.html

https://tympanus.net/codrops 这个网站有许多webgl结合文本页面的demo,比如https://tympanus.net/codrops/2019/12/20/how-to-create-the-apple-fifth-avenue-cube-in-webgl/https://tympanus.net/Tutorials/the-substance/,点击页面上的“Previouse demo”就可以切换上一个,不知如何切换下一个 。

有些年代久远的demo访问很慢。Jquery 之家搜集了一部分,可以去找,此网站可以找到关联或者有趣的demo,最重要的是无需登录。

上一篇下一篇

猜你喜欢

热点阅读