3D图片

<!DOCTYPE html>
<html>
<head>
<title>3d</title>
<meta charset="utf-8"/>
<meta id="viewport" name="viewport" content="width=device-width; initial-scale=1.0;maximum-scale=1.0; user-scalable=no;"/>
<script type="text/javascript" src="http://cdn.staticfile.org/jquery/2.1.1-rc2/jquery.js"></script>
<script type="text/javascript">
$(function(){
new Matrix3D({father:‘box3d‘,width:153,distance:20});
});
</script>
</head>
<style type="text/css">
body{background:#999;}
* {
padding: 0;
margin: 0
}

.box3d {
height: 150px;
position: relative;
margin: 0 0px;
margin-top: 150px;
}

ul li {
list-style: none;
height: 140px;
width: 153px;
position: absolute;
top: 0;
left: 0;
-webkit-backface-visibility: visible;
-webkit-transform-origin: 50% 50%;
-moz-backface-visibility: visible;
-moz-transform-origin: 50% 50%;
border: 1px solid red;
backface-visibility: visible;
transform-origin: 50% 50%;
-webkit-box-reflect: below -16px -webkit-gradient(linear, 0 0, 0 100%, from(transparent), to(white));
-moz-box-reflect: below -16px -moz-gradient(linear, 0 0, 0 100%, from(transparent), to(white));
box-reflect: below -16px -webkit-gradient(linear, 0 0, 0 100%, from(transparent), to(white));
-webkit-box-shadow: 0 4px 14px rgba(0,0,0,0.6);
-moz-box-shadow: 0 4px 14px rgba(0,0,0,0.6);
box-shadow: 0 4px 14px rgba(0,0,0,0.6);
-webkit-transition: 1s all ease;
-moz-transition: 1s all ease;
-ms-transition: 1s all ease;
-o-transition: 1s all ease;
}

.box3d li.left {
-moz-transform: perspective(300px) rotateY(40deg);
transform: perspective(300px) rotateY(40deg);
-webkit-transform: perspective(300px) rotateY(40deg);
}

.box3d li.right {
-moz-transform: perspective(300px) rotateY(140deg);
transform: perspective(300px) rotateY(140deg);
-webkit-transform: perspective(300px) rotateY(140deg);
}

.box3d li.middle {
z-index: 990;
-webkit-transform: perspective(500px) rotateY(0deg) translate3d(0px, 0px, 100px);
-moz-transform: perspective(500px) rotateY(0deg) translate3d(0px, 0px, 100px);
transform: perspective(500px) rotateY(0deg) translate3d(0px, 0px, 100px);
cursor: pointer;
}

.btn span {
width: 22px;
height: 22px;
background: url(images/btn.jpg) no-repeat;
display: inline-block;
-webkit-transform: scale(1);
-webkit-transition: 0.5s all ease;
-moz-transform: scale(1);
-moz-transition: 0.5s all ease;
-ms-transform: scale(1);
-ms-transition: 0.5s all ease;
opacity: 0.7;
-o-transform: scale(1);
-o-transition: 0.5s all ease;
filter: alpha(opacity=70);
cursor: pointer;
}
.box3d li img {
width: 100%;
height: 100%
}
.btn {
height: 22px;
width: 60px;
position: absolute;
left: 50%;
margin-left: -30px;
top: 20px;
}

.box3d li span {
position: absolute;
left: 0;
top: 0;
}

.btn span:hover {
-webkit-transform: scale(1.4);
opacity: 1;
}

.btn .prev {
background-position: left;
}

.btn .next {
background-position: right;
}

ul li:nth-child(1) {
}

ul li:nth-child(2) {
}

ul li:nth-child(3) {
}

ul li:nth-child(4) {
z-index: 99;
}

ul li:nth-child(5) {
z-index: 88;
}

ul li:nth-child(6) {
z-index: 77;
}

</style>
<body>
<div class="box3d" id="box3d">
<ul>
<li class=""> <img src="images/1.jpg" ></li>
<li class=""> <img src="images/2.jpg" ></li>
<li class=""> <img src="images/3.jpg" ></li>
<li class=""> <img src="images/4.jpg" ></li>
<li class=""> <img src="images/5.jpg" ></li>
</ul>
</div>
<div class="btn">
<span class="prev" ></span>
<span class="next" ></span>
</div>
</body>
</html>
<script type="text/javascript">
function Matrix3D(config) {
this.config = config;
this.position = [];
this.init();
};

$.extend(Matrix3D.prototype, {
init: function() {
this.setConfig();
this.addTouchChange();
},
setConfig: function() {
var that = this;
var leftValue = 0;
this.fater = this.config.father;
this.li = $(‘#‘ + this.fater).find(‘li‘);
this.count = (this.li.length - 1) / 2;
this.width = $(‘#‘ + this.fater).innerWidth() - this.config.width;
this.distc = ((this.width / 2) / this.count);
this.li.each(function(index, obj) {
if (index < that.count) {
leftValue = that.distc * index - index * (that.config.distance)
$(this).addClass("left").css(‘left‘, leftValue);
} else if (index == (that.count)) {
leftValue = that.width / 2
$(this).addClass("middle").css(‘left‘, leftValue);
} else if (index > that.count) {
var current = that.li.eq(index).addClass("right");
if (index == (that.li.length - 1)) {
leftValue = that.distc * index;
current.css(‘left‘, leftValue);
} else {
leftValue = that.distc * index + ((that.li.length - index - 1) * (that.config.distance));
current.css(‘left‘, leftValue);
}
}
that.position.push(leftValue);
});

$(".btn .prev").on("click", function() {
that.prevCurrent();
})
$(".btn .next").on("click", function() {
that.nextCurrent();
})
},
removeCurrentClass: function(obj) {
$(obj).removeClass("left").removeClass("right").removeClass("middle").css(‘left‘, 0);
},
addTouchChange: function() {
var x = 0;
var y = 0;
var xx = yy = mx = my = curX = curY = 0;
var moveEle = $(‘#‘ + this.fater);
var that=this;
moveEle.on("touchstart", function(event) { //touchstart
var event = event.originalEvent;
x = 0;
y = 0;
// 手指位置
xx = event.touches[0].pageX;
yy = event.touches[0].pageY;
});
moveEle.on("touchmove", function(event) {
event = event.originalEvent;
// 防止拖动页面
event.preventDefault();
// 手指位置 减去 元素当前位置 就是 要移动的距离
x = event.touches[0].pageX - xx;
y = event.touches[0].pageY - yy;
// 目标位置 就是 要移动的距离 加上 元素当前位置
curX = x + mx;
curY = y + my;

});
moveEle.on("touchend", function(event) {
// 手指接触屏幕的位置
var oriX = mx;
var oriY = my;
// 手指离开屏幕的位置
etx = curX;
ety = curY;
if (oriX > etx) {
// 左滑
that.nextCurrent();
} else {
// 右滑
that.prevCurrent();
}
});
},
setClass: function() {
var that = this;
that.li = ($(‘#‘ + this.fater).find(‘li‘))
that.li.each(function(index, obj) {
that.removeCurrentClass(this);
if (index < that.count) {
$(this).addClass("left").css(‘left‘, that.position[index]);
} else if (index == (that.count)) {
$(this).addClass("middle").css(‘left‘, that.position[index]);
} else if (index > that.count) {
if (index == (that.li.length - 1)) {
that.li.eq(index).addClass("right").css(‘left‘, that.position[index]);
} else {
that.li.eq(index).addClass("right").css(‘left‘, that.position[index]);
}
}
})
},
prevCurrent: function() {
var last = $(‘#‘ + this.fater).find(‘li:last‘);
var first = $(‘#‘ + this.fater).find(‘li:first‘);
last.insertBefore(first);
this.setClass();
},
nextCurrent: function() {
var last = $(‘#‘ + this.fater).find(‘li:first‘);
var first = $(‘#‘ + this.fater).find(‘li:last‘);
last.insertBefore(first);
this.setClass();
}
});
</script>

3D图片,布布扣,bubuko.com

时间: 2024-08-09 06:20:32

3D图片的相关文章

jquery.roundabout.js实现3D图片层叠旋转木马切换

最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js. 兼容性如图: html结构代码: <div id="featured-area"> <ul> <li><img src="images/fnfast.jpg"/></li> <li><img src="images/photoshop_plus.jpg"/>&l

13种酷炫的html5 3D图片切换代码

jQuery 3D图片叠加css3翻转图片切换特效 html5图片3d切换幻灯片轮播特效代码 jquery 3d响应式幻灯片带左右按钮的图片滑动切换效果 jquery.slicebox酷炫的html5 3d图片轮播幻灯片切换效果 html5 css3 3D动画制作手机界面3D叠加突出动画效果 html5 3D图片网格布局点击图片3D动画弹出大图文字信息 css3 transform属性制作鼠标点击3D图片叠加动画效果 modernizr html5 jquery.windy图片类似纸被风吹走3D

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

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

3D图片采集与展示(SurfaceView 自适应 Camera, 录制视频, 抽取帧)

      最近在做一个3D图片采集与展示. 主要功能为:自定义Camera(google 已经摈弃了Camera, 推荐使用Camera2,后续篇幅,我将会用Camera2取代Camera),围绕一个物体360度录制一个视频,然后在该视频抽取一定数量的帧,保存为图片存放.最后在一个Activity页面展示第一张图片,通过滑动或点击切换下一张图片,从而形成用图片展示的3D效果.该项目主要的目的是采集3D图片素材,然后上传到服务器处理,最终在用户客户端或网页端展示是通过OpenGL ES处理而来.

一款基于css3的3D图片翻页切换特效

今天给大家分享一款基于css3的3D图片翻页切换特效.单击图片下方的滑块会切换上方的图片.动起你的鼠标试试吧,效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="imgdex"> <figure> <img src="arabic-eyes.jpg" alt="Photograph of a woman's face under a Bedouin headress"><

使用 CSS3 动画实现的 3D 图片过渡特效

这是一个基于 CSS3 动画实现的图片过渡效果,共有 Flip.Rotation.Multi-flip.Cube.Unfold 等6种效果,它们将证明 CSS3 Transform 和 Transition 属性的强大能力.随着越来越多的浏览器对 CSS3 支持的不断完善,设计师和开发者们有了更多的选择. 温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. 效果演示      插件下载 您可能感兴趣的相关文章 网站开发中很有用的 j

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

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

自定义Gallery控件实现简单3D图片浏览器

本篇文章主要介绍如何使用自定义的Gallery控件,实现3D效果的图片浏览器的效果. 话不多说,先看效果. 上面是一个自定义的Gallery控件,实现倒影和仿3D的效果,下面是一个图片查看器,点击上面的小图片,可以在下面查看大图片. 下面重点说一下,实现图片查看器的思路. 1.手机中图片路径的获取 首先,先不管图片如何展示,如果我们想实现图片查看器的功能,我们首先需要做的是获取到所有的图片的路径信息,只有这样,我们才能实现对图片的查看. 我们可以使用下面的代码实现 private List<St

10.14 CSS3制作3D图片立方体旋转特效

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>CSS3制作3D图片立方体旋转特效 - 站长素材</title> <style type="text/css"> html{ background:linear-gradient(#ff0 0%,#F00 80%); height: 100%; } .wrap{