html万花筒图片轮播代码,jQuery实现可拖拽3D万花筒旋转特效

这是一个使用了CSS3立体效果的强大特效,本特效使用jQuery跟CSS3 transform来实现在用户鼠标按下拖动时,环形图片墙可以跟随鼠标进行3D旋转动画。

进去后可以上下左右的拖动图片。

本示例中使用到了CSS3的transform-style 属性,该规定如何在 3D 空间中呈现被嵌套的元素。

默认值: flat

继承性: no

版本: CSS3

JavaScript 语法: object.style.transformStyle="preserve-3d"

有2个属性值可选择:

flat 子元素将不保留其 3D 位置。

preserve-3d 子元素将保留其 3D 位置。

示例代码如下:

jQuery可拖拽3D万花筒旋转特效 - 何问起

*{margin:0;padding: 0;}

.hovertree{

width: 120px;

height: 180px;

margin: 150px auto 0;

position: relative;

/*transform 旋转元素*/

transform-style:preserve-3d;

transform:perspective(800px) rotateX(-10deg) rotateY(0deg);

}

body{background-color: #66677c;}

.hovertree img{

position: absolute;

width: 100%;

height: 100%;

border-radius: 5px;

box-shadow: 0px 0px 10px #fff;

/*倒影的设置*/

-webkit-box-reflect:below 10px -webkit-linear-gradient(top,rgba(0,0,0,0) 50%,rgba(0,0,0,.5) 100%);

}

.hovertree p{

width: 1200px;

height: 1200px;

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;

transform:rotateX(90deg);

}

.hewenqi{position:absolute;z-index:99;}

a{color:blue;}

6341a16026950bf93355028af6446dcc.png

a83014447398c4288d2c782a2092a46c.png

8cafe36a5e4cb6c2978d07d0d291430f.png

7c40c3a0b38dad3a61eb5511db1cfe77.png

38e3a3566e59946315d8ad7944627260.png

bff3f63276dc8fe99d17504e299800b0.png

24da9a2809fc780fa64dfdcc499cb88b.png

72a9b79d321c41174176334bab3b4b45.png

4f271613062f939636353a56267b6823.png

3416d4d19fc2cb6d542d3c87f3dd921a.png

$(function(){

var imgL=$(".hovertree img").size();

var deg=360/imgL;

var roY=0,roX=-10;

var xN=0,yN=0;

var play=null;

$(".hovertree img").each(function (i) {

$(this).css({

//

"transform":"rotateY("+i*deg+"deg) translateZ(300px)" });

//

$(this).attr('ondragstart','return false');

});

$(document).mousedown(function(ev){

var x_=ev.clientX;

var y_=ev.clientY;

clearInterval(play);

console.log('我按下了');

$(this).bind('mousemove',function(ev){

/*获取当前鼠标的坐标*/

var x=ev.clientX;

var y=ev.clientY;

/*两次坐标之间的距离*/

xN=x-x_;

yN=y-y_;

roY+=xN*0.2;

roX-=yN*0.1;

console.log('移动');

//$('body').append('

$('.hovertree').css({

transform:'perspective(800px) rotateX('+roX+'deg) rotateY('+roY+'deg)'

});

/*之前的鼠标坐标*/

x_=ev.clientX;

y_=ev.clientY;

});

}).mouseup(function(){

$(this).unbind('mousemove');

var play=setInterval(function(){

xN*=0.95;

yN*=0.95

if(Math.abs(xN)<1 && Math.abs(yN)<1){

clearInterval(play);

}

roY+=xN*0.2;

roX-=yN*0.1;

$('.hovertree').css({

transform:'perspective(800px) rotateX('+roX+'deg) rotateY('+roY+'deg)'

});

},30);

});

});

来源:何问起 说明

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值