海贼王旋转通缉令

这篇文章主要讲了万花筒旋转效果的制作,当然从下文可以妥妥的看出我是海贼迷。下面是动画的具体效果,用的gifcam截得动态图(觉得效果不错的,可以在360软件管理里下载),可能会表现的有点卡,实际是比较流畅的,粘贴复制即可用。

GIF.gif

打开可见效果:http://htmlpreview.github.io/?https://github.com/buwu/exercise/blob/demo1/%E4%B8%87%E8%8A%B1%E7%AD%92/onepiece.html

1.文件列表

1503994850(1).jpg

2.效果说明

图片以3D空间展示在页面里,像舞台展示效果。可以被横向和纵向拖动旋转(这里是沿X轴,Y轴旋转)。

3.文件详解

3.1HTML
<div class="showtree">
         ![](img/chopper.jpg)
        ![](img/franky.jpg)
        ![](img/luffy.jpg)
        ![](img/nami.jpg)
        ![](img/robin.jpg)
        ![](img/sanji.jpg)
        ![](img/zoro.jpg)
        ![](img/sogeking.jpg)
        ![](img/hancock.jpeg)
        <p></p>
</div>

基本结构就这些。。。
这里的是img标签,不知道为什么一保存就是![]这样了。

3.2css

详细解释在注释里。不要错过汉字哦~

*{margin:0;padding: 0;}
body{
    background-color: #66677c;
    /*文本不能被选中*/
    -webkit-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;
    user-select:none;
}
.showtree{
    width: 120px;
    height: 180px;
    margin: 150px auto 0;
    position: relative;
    /*子元素被保留3D转换*/
    transform-style:preserve-3d;
    /*perspective定义透视视图,即视觉点(眼睛或者屏幕)到元素的中心的距离;绕X轴旋转-10deg*/
    transform:perspective(1000px) rotateX(0deg) rotateY(0deg);
}
.showtree img{
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 5px;
    /*图片白色阴影*/
    box-shadow: 0px 0px 10px #fff;
    /*倒影的设置 :below 倒影在下面,倒影距离对象10px,倒影颜色线性渐变*/
    -webkit-box-reflect:below 10px -webkit-linear-gradient(top,rgba(0,0,0,0) 50%,rgba(0,0,0,.5) 100%);
}
/*白色光影分开图片与倒影*/
.showtree p{
    width: 1200px;
    height: 1200px;
    /*背景颜色 径向渐变 由x,y轴中心向外,由白色透明度0.5到黑色*/
    background: -webkit-radial-gradient(center center,600px 600px,rgba(255,255,255,.5),rgba(0,0,0,0));
    position: absolute;
    top:100%;
    left:50%;
    margin-top: -600px;
    margin-left: -600px;
    border-radius:600px;
    /*绕x轴旋转90度,分割图片与倒影*/
    transform:rotateX(90deg);
}
3.3js

详细解释在注释里,使用前需引入jquery。

$(function(){
    var imgL=$(".showtree img").length;
    var deg=360/imgL;/*每张图片应该旋转的角度*/
    var roY=0,roX=-10;/*初始化绕X轴旋转10度*/
    var xN=0,yN=0;/*鼠标移动的距离*/
    var play=null;

    initImgPos();
    dragImg();

    /*初始化每张图片的位置*/
    function initImgPos(){
        $(".showtree img").each(function (i) {
            $(this).css({
                //每张图片沿z轴平移300px,分别绕y轴旋转一定的角度,形成一圈;
                "transform":"rotateY("+i*deg+"deg) translateZ(300px)" });
                //防止图片被拖拽
                $(this).attr('ondragstart','return false');
        });
    }

    /*拖拽图片*/
    function dragImg(){
        $(document).mousedown(function(ev){
            //获取鼠标按下时的坐标;
            var x_=ev.clientX;
            var y_=ev.clientY;
            clearInterval(play);
            $(this).bind('mousemove',function(ev){
                /*获取鼠标的坐标*/
                var x=ev.clientX;
                var y=ev.clientY;
                /*两次坐标之间的距离*/
                xN=x-x_;
                yN=y-y_;
                roY+=xN*0.2;/*表示绕Y轴旋转的角度 0.2表示转动的幅度大小*/
                roX-=yN*0.1;/*表示绕X轴旋转的角度 0.1表示转动的幅度大小 注意:Y轴是以朝下为正方向。所以这里是-*/
                $('.showtree').css({
                    transform:'perspective(1000px) rotateX('+roX+'deg) rotateY('+roY+'deg)'
                });
                x_=ev.clientX;
                y_=ev.clientY;
            });
        }).mouseup(function(){
            $(this).unbind('mousemove');
            /*鼠标抬起来出现的缓动*/
            play=setInterval(function(){
                xN*=0.95;/*使之绕Y轴转动的速度越来越小 数越大缓动越久*/
                yN*=0.95;/*使之绕X轴转动的速度越来越小 数越大缓动越久*/
                if(Math.abs(xN)<1 && Math.abs(yN)<1){
                    clearInterval(play);
                }
                roY+=xN*0.2;
                roX-=yN*0.1;
                $('.showtree').css({
                    transform:'perspective(1000px) rotateX('+roX+'deg) rotateY('+roY+'deg)'
                });
            },30);
        });
    }
});

下面附上六张海贼王通缉令:
路飞

luffy.jpg

索隆

zoro.jpg

娜美

nami.jpg

乌索普

sogeking.jpg

山治

sanji.jpg

乔巴

chopper.jpg

罗宾

robin.jpg

弗兰奇

franky.jpg

布鲁克

brooke.jpg

超爱的汉库克

hancock.jpeg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,016评论 4 62
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,421评论 25 707
  • 我心目中的爱情观 我,90后,大学刚毕业。大学一年级时谈过一场恋爱,也算是轰轰烈烈,人尽皆知。也许只是因为没谈过恋...
    公子王之阅读 454评论 1 0
  • 赤塔是后贝加尔边疆区首府,是从满洲里入境俄罗斯后的第一个省会城市,位于边境城市后贝加尔斯克与环湖骑行的起点乌兰...
    对角夫妇的骑行阅读 703评论 1 2