3d照片环效果

今天用用前两天总结的css3新效果写了一个3d照片环的效果,其中还有些bug大家可以看一看,一起改进。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            padding:0;
            margin:0;
            list-style:none;
        }
        body{
            background:#000;
        }
        #box{
            width:133px;
            height:200px;
            position:absolute;
            top:40%;
            left:50%;
            color:red;
            margin:-100px 0 0 -67px;
            transform-style:preserve-3d;
            transform:perspective(800px) rotateX(-20deg);
        }
        #box li{
            width:100%;
            height:100%;
            position:absolute;
            top:0;
            left:0;
            border-radius:10px;
            background:url(‘images/img2/1.jpg‘) no-repeat;
            transition:1s all ease;
            -webkit-box-shadow:0 0 5px #fff;
            -webkit-box-reflect:below 10px -webkit-linear-gradient(rgba(0,0,0,0) 40%,rgba(0,0,0,0.4));
            transform:rotateY(0deg) translateZ(0px);
        }
    </style>
    <script>

        window.onload=function(){
            var oUl=document.getElementById(‘box‘);
            var N=11;

            for(var i=0;i<N;i++){
                var oLi=document.createElement(‘li‘);
                oLi.style.backgroundImage=‘url(images/img2/‘+(i+1)+‘.jpg)‘;
                oUl.appendChild(oLi);

                (function(oLi,i){
                    setTimeout(function(){
                        oLi.style.transition=‘1s all ease ‘+(200*(N-i))+‘ms‘;
                        oLi.style.transform=‘rotateY(‘+(360/N*i)+‘deg) translateZ(300px)‘;
                    },0);
                })(oLi,i);
            }
            var aLi=oUl.children;
            var y=0;
            aLi[0].addEventListener(‘transitionend‘,function(){
                document.onkeydown=function(ev){
                    if(ev.keyCode==37){
                        y-=360/N;
                        keyChange();
                    }else if(ev.keyCode==39){
                        y+=360/N;
                        keyChange();
                    }
                };
            },false);

            aLi[0].addEventListener(‘transitionend‘,function(){
                document.onmousedown=function(ev){
                    var disX=ev.clientX-y;
                    document.onmousemove=function(ev){
                        y=ev.clientX-disX;
                        for(var i=0;i<aLi.length;i++){
                            keyChange();
                        }
                    };
                    document.onmouseup=function(){
                        document.onmousemove=null;
                        document.onmouseup=null;
                    };
                    return false;
                };
            },false);

            function keyChange(){
                for(var i=0;i<aLi.length;i++){
                    aLi[i].style.transition=‘1s all ease‘;
                    aLi[i].style.transform=‘rotateY(‘+(360/N*i+y)+‘deg) translateZ(300px)‘;
                    var scale=Math.abs((Math.abs(360/N*i+y)-180)/180);
                    //aLi[i].innerHTML=scale;
                    //console.log(scale);
                    aLi[i].style.opacity=scale;
                }
            }
        };
    </script>
</head>
<body>
    <ul id="box">

    </ul>
</body>
</html>

  

时间: 2024-10-31 08:17:56

3d照片环效果的相关文章

超酷3D照片展示效果

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta name="

3D照片放大展示窗口

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <meta name=&

JQ实现3D拖拽效果

1 <!DOCTYPE HTML> 2 <html onselectstart='return false'> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 5 <meta name="keywords" content="" /> 6 <meta

使用CSS3实现3D图片滑块效果

使用 CSS3 的3D变换特性,我们可以通过让元素在三维空间中变换来实现一些新奇的效果. 这篇文章分享的这款 jQuery 立体图片滑块插件,利用了 3D transforms(变换)属性来实现多种不同的效果. 温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. 实现的基本思路是创建三维图像切片,作为三维物体的另一侧,旋转并显示下一个图像.若浏览器不支持3D变换,一个简单的滑块将作为后备方案.要调用这个插件,首先把图片放在无序列表中

精致3D图片切换效果,最适合企业产品展示

这是一个精致的立体图片切换效果,特别适合企业产品展示,可立即用于实际项目中.支持导航和自动播放功能, 基于 CSS3 实现,推荐使用最新的 Chrome,Firefox 和 Safari 浏览器浏览效果. 效果演示      源码下载 您可能感兴趣的相关文章 Web 开发中很实用的10个效果[源码下载] 精心挑选的优秀jQuery Ajax分页插件和教程 12个让人惊叹的的创意的 404 错误页面设计 让网站动起来!12款优秀的 jQuery 动画插件 十分惊艳的8个 HTML5 & JavaS

jQuery照片伸缩效果,不是单纯的图片放大缩小,不影响其他元素的布局

之前在网上看到这种特效,无奈当时没有收藏网址,导致后来一度不知道这个特效是怎么实现的.今天特意在网上搜罗了一下,果然功夫不负有心人,被我找到了. 我也努力过自己尝试着写: 但只是单纯的图片放大,而且还影响了图片周围的元素的布局(因为图片放大占据了更大的空间). 后来发现要灵活巧妙的运用overflow和position这两个属性,就能达到目的.其实我觉得CSS(CSS3)中的overflow和position(顺带的top,bottom,left,right)简直是做网页特效无解的组合,当然还是

HTML5画布生成的3D飞船舰队效果

在线演示 本地下载 使用HTML5画布2D来模拟3D的空间效果,生成舰队飞行效果,了解怎样开发.请阅读以下代码相关"藐视频": HTML5画布模拟生成3D的舰队飞行效果

Android之——史上最简单最酷炫的3D图片浏览效果的实现

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/48052709 如今,Android开发已经成为移动互联开发领域中一支不可或缺的力量,那么Android中要实现3D的效果那也就是合情合理的事情了.那么,如何在Android中实现像IOS中那样的3D图片浏览效果呢?下面,鄙人将重磅推出今天的重点博文,和大家一起在Android中实现酷炫的3D图片浏览效果. 一.原理 老规矩,还是要来啰嗦下原理的东西. 整体实现是以手机屏幕的正中间

HTML5 Canvas 高仿逼真 3D 布料图案效果

HTML5 规范引进了很多新特性,其中最令人期待的之一就是 Canvas 元素,HTML5 Canvas 提供了通过 JavaScript 绘制图形的方法,非常强大.下面给大家分享一个 HTML5 Canvas 绘制的 3D 布料图案效果. 温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. 插件下载     效果演示 您可能感兴趣的相关文章 Web 开发中很实用的10个效果[源码下载] 精心挑选的优秀jQuery Ajax分页插件