`

css3的图片3D旋转图片旋转木马

    博客分类:
  • css
阅读更多
先看效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>3d变换</title>
    <style>
        #container {
            perspective: 1600px;
            position: relative;
            width: 1000px;
            height:800px;
            border: 1px solid #f00;
            margin: 30px auto;
        }

        #content,#content1{
            transform-style: preserve-3d;
            width: 200px;
            height:100px;
            position: absolute;
            left:50%;
            top: 50%;
            margin: -50px 0 0 -100px;
        }

        #content img,#content1 img{
            position: absolute;
            transition: all 1s;
        }
    </style>
</head>
<body>
<div id="container">
    <div id="content"><!--垂直旋转的容器-->
        <img src="img/img1.jpg">
        <img src="img/img2.jpg">
        <img src="img/img3.jpg">
        <img src="img/img4.jpg">
        <img src="img/img5.jpg">
        <img src="img/img6.jpg">
        <img src="img/img7.jpg">
        <img src="img/img8.jpg">
        <img src="img/img9.jpg">
        <img src="img/10.jpg"/>
        <img src="img/11.jpg"/>
        <img src="img/12.jpg"/>
        <img src="img/13.jpg"/>
        <img src="img/14.jpg"/>
    </div>
    <div id="content1"><!--水平旋转的容器-->
        <img src="img/img1.jpg">
        <img src="img/img2.jpg">
        <img src="img/img3.jpg">
        <img src="img/img4.jpg">
        <img src="img/img5.jpg">
        <img src="img/img6.jpg">
        <img src="img/img7.jpg">
        <img src="img/img8.jpg">
        <img src="img/img9.jpg">
        <img src="img/10.jpg"/>
        <img src="img/11.jpg"/>
    </div>
</div>
</body>
</html>

<noscript>您的浏览器未启用JavaScript或不支持JavaScript</noscript>
<script>
    var container=document.getElementById('container');

    var content=document.getElementById('content');//此容器将做垂直方向的旋转
    var content1=document.getElementById('content1');//此容器将做水平方向的旋转

    var imgs=content.getElementsByTagName('img');
    var imgs1=content1.getElementsByTagName('img');

    //首张图片旋转角度,和每张图片相隔的角度:
    var firstdeg= 0,rotatedeg=360/imgs.length,rotatedeg1=360/imgs1.length;
    var speed=0,speed1=0;

    //主要的功能函数:
    var transformStar=function (firstdeg,imgs,imgwidth,imgheight,imgmargin,vertical){
        var l=imgs.length;
        var direct=vertical ? "rotateX" : "rotateY";
        var x=vertical ? imgheight : imgwidth;
        var radius=x/(Math.tan(Math.PI/l)*2)+imgmargin+"px";//计算出图片距离旋转中心的垂直距离
        for (var i= 0;i<l;i++){
            imgs[i].style.width=imgwidth+"px";
            imgs[i].style.height=imgheight+"px";
            imgs[i].style['transform']=direct+'('+(i*(360/l)+firstdeg)+'deg'+')'+'translateZ('+radius+')';
            imgs[i].style['-webkit-transform']=direct+'('+(i*(360/l)+firstdeg)+'deg'+')'+'translateZ('+radius+')';
            imgs[i].style['-moz-transform']=direct+'('+(i*(360/l)+firstdeg)+'deg'+')'+'translateZ('+radius+')';
            imgs[i].style['-o-transform']=direct+'('+(i*(360/l)+firstdeg)+'deg'+')'+'translateZ('+radius+')';
        }
    };
    transformStar(firstdeg,imgs,180,140,50,true);//垂直旋转的容器的初始状态
    transformStar(firstdeg,imgs1,180,140,80,false);//水平旋转的容器的初始状态

    //添加定时器使自动旋转:
    var timer;
    function autoRotate(){
        clearTimeout(timer);
        speed+=rotatedeg;//使第一张图片的旋转角度每次加一个值(各个图片相隔的角度)
        speed1+=rotatedeg1;
        transformStar(speed,imgs,180,140,50,true);
        transformStar(speed1,imgs1,180,140,50,false);
        timer=setTimeout(autoRotate,1000);
    }
    timer=setTimeout(autoRotate,1000);

    //终止定时器的函数:
    function stopAutoRotate(){
        clearTimeout(timer);
    }
    //开启定时器的函数:
    function startAutoRotate(){
        timer=setTimeout(autoRotate,1000);
    }

    container.addEventListener('mouseover',stopAutoRotate,false);//鼠标移入停止自动旋转
    container.addEventListener('mouseout',startAutoRotate,false);

    //添加点击事件实现手动旋转:
    container.addEventListener('click',rotateStar,false);
    function rotateStar(e){
        var e=e||window.event;
        var contwidth=this.offsetWidth;
        var deg=e.offsetX>=contwidth/2 ? rotatedeg : -rotatedeg;//判断鼠标点击的位置以决定转动的方向
        var deg1=e.offsetX>=contwidth/2 ? rotatedeg1 : -rotatedeg1;
        speed+=deg;
        speed1+=deg1;
        transformStar(speed,imgs,180,140,50,true);
        transformStar(speed1,imgs1,180,140,50,false);
    }
</script>
  • 大小: 75.3 KB
分享到:
评论

相关推荐

    CSS3 transform实现图片旋转木马3D

    在本文中,我们将深入探讨如何使用CSS3的`transform`属性来实现一个令人惊叹的3D图片旋转木马效果。CSS3的`transform`特性为Web开发者提供了强大的能力,可以对元素进行平移、旋转、缩放和扭曲等多种变换,从而创造...

    HTML5 CSS3 专题 :诱人的实例 3D旋转木马效果相册实例源码

    3D旋转木马效果相册利用了CSS3的transform属性,尤其是rotateY()和perspective属性,这两个属性结合可以创建出立体的3D旋转效果。rotateY()函数负责沿着Y轴进行旋转,而perspective属性则设置观察者到3D变换原点的...

    小程序3D轮播旋转木马轮播组件

    同时,CSS3的3D变换如`transform: rotateX()`和`transform: translateZ()`则用于创建3D旋转和位移效果。 接下来,我们需要关注组件的结构和数据管理。一个完整的3D轮播组件通常包含以下几个部分:轮播容器、轮播项...

    JS 3D相册旋转木马网页特效、3D动画、3D相册旋转木马

    demo预览:http://124.223.118.176/3DPicture ...JS 3D相册旋转木马网页特效是一款炫酷的3D相册旋转木马网页特效,除了图片相册、增加了视频播放和背景音乐播放,相对比普通3D相册旋转木马,功能上了一个层次。

    js图片层叠3D旋转木马轮播特效.zip

    在IT行业中,网页动态效果是提升用户体验的重要手段之一,而"js图片层叠3D旋转木马轮播特效"正是这种动态效果的典型应用。这个压缩包文件包含了一个使用JavaScript实现的3D旋转木马式的图片轮播效果,旨在让网站的...

    js旋转木马3D图片.rar

    3D图片旋转木马通常会包含以下核心知识点: 1. **CSS3 3D变换**:使用`transform`属性,如`rotateX`、`rotateY`和`rotateZ`来创建3D旋转效果。同时,`perspective`属性设置观察者的透视距离,影响3D元素的深度感。 ...

    3D图片层叠旋转木马切换

    接着,旋转木马效果的实现通常基于CSS3的transform属性,特别是rotateY()函数,它可以实现元素沿Y轴的旋转。配合transition属性,可以平滑过渡到下一个图片,从而实现旋转切换的效果。同时,为了实现层叠效果,可以...

    HTML5+css3:3D旋转木马效果相册

    这个效果利用了CSS3的透视(perspective)和转换(transform)属性,使静态的图片呈现出动态的3D旋转效果,为用户提供了一种独特的浏览体验。 首先,`perspective`属性是实现3D效果的关键。它定义了观察者与3D元素...

    基于H5+C3实现的3D旋转木马效果JS插件,支持电脑,移动设备

    2. CSS3:CSS3是CSS的最新版本,引入了3D变换功能,如`rotateX()`, `rotateY()`, `rotateZ()`等,使得网页元素可以进行3D旋转。在旋转木马效果中,CSS3用于实现项目的平滑旋转和平移,创造3D空间感。 3. JavaScript...

    jquery 3D图片旋转木马_图片叠加自动轮播旋转切换代码

    总的来说,"jQuery 3D图片旋转木马"结合了jQuery的便利性、CSS3的3D转换和JavaScript的动画控制,创建了一种动态展示图片的高级方式。通过合理的布局和编程,可以为网站增添生动活泼的元素,提高用户互动性。而...

    3D旋转木马效果相册实例CSS源码.rar

    在这个实例中,CSS被用来创建一个视觉上吸引人的3D旋转木马效果,让用户能够以一种新颖的方式浏览图片相册。 1. **3D转换**:CSS3引入了3D转换,允许元素在三维空间中进行变换,如旋转、缩放和移动。在本实例中,`...

    jQuery图片3D旋转木马轮播焦点图代码

    总之,jQuery图片3D旋转木马轮播焦点图是结合了jQuery的动态性、CSS3的3D变换和用户交互设计的一种高级网页图像展示技术。通过熟练掌握这些技术,开发者可以创建出更加引人入胜、交互性强的网页内容。

    js+CSS3 3D旋转木马特效插件.zip

    综上所述,"js+CSS3 3D旋转木马特效插件"是一个集成了JavaScript动态编程和CSS3 3D变换技术的创新解决方案,它为网页带来了富有视觉冲击力和交互性的3D旋转展示效果。通过理解和运用这些知识点,开发者能够创建出更...

    旋转木马3D环形特效

    "旋转木马3D环形特效"是一种在UI设计中常用的动态展示效果,通常用于应用启动页、商品展示或者图片轮播等场景。这个特效模拟了真实的旋转木马,将内容元素排列成环形,随着时间和用户的交互进行旋转,给予用户视觉上...

    js 3D旋转木马特效插件

    【js 3D旋转木马特效插件】是一种利用JavaScript和CSS3技术实现的互动式图形展示工具,常用于网站中的产品展示或艺术作品展览。它借鉴了旋转木马的旋转概念,为用户提供了一个立体、动态的视觉体验,使得图片在3D...

    css3-3d-transform:90行代码实现图片旋转木马3D效果

    Css3-3d-transform__实现图片旋转木马3D效果&lt;/ title &gt; &lt;/ head &gt; &lt; style &gt; # doc { height : 600 px ; position : relative; overflow : hidden; background-color : # ddd ; } # stage { ...

    HTML5手机端3D图片旋转木马.zip

    总的来说,HTML5手机端3D图片旋转木马展示了HTML5、JavaScript以及可能的WebGL和CSS3技术的结合应用,实现了在移动设备上呈现酷炫3D效果的能力。通过分析和学习这个"ImageRotator"项目,开发者可以深入理解这些技术...

    3D旋转木马

    3. **说明.txt**:这个文件可能包含了关于如何使用或部署3D旋转木马的说明,包括配置、设置以及可能遇到的问题和解决方案。阅读这个文件可以帮助我们更好地理解和使用提供的资源。 4. **carousel_xml.swf**:这是...

    flash 3D旋转木马图片自动循环播放代码

    本文将深入探讨“Flash 3D旋转木马图片自动循环播放代码”的相关知识点,帮助读者理解如何利用Flash技术实现这一效果。 首先,我们要明白Flash 3D指的是在Flash环境中创建和展示三维图形的技术。尽管现代Web开发更...

Global site tag (gtag.js) - Google Analytics