600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > html万花筒图片轮播代码 jQuery实现可拖拽3D万花筒旋转特效

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

时间:2019-01-25 20:15:05

相关推荐

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;}

$(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);

});

});

来源:何问起 说明

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。