素材牛VIP会员

jQuery可拖拽的3D万花筒图片旋转展示特效

 所属分类:网页特效-图片特效

 浏览:3713次  评论:0次  更新时间:2016-11-26
牛币素材VIP可免积分下载
jQuery可拖拽的3D万花筒图片旋转展示特效兼容IE9
积分说明:注册即送10牛币,每日签到可获得5牛币,成为VIP会员可永久免牛币下载!   充值积分   充值会员   更多说明»
素材描述:这是一款通过jQuery跟CSS3 transform来实现在用户鼠标按下时,万花筒图片可以跟随鼠标进行3D旋转动画展示。

详细介绍

使用方法:

引入核心CSS样式

.pic{width: 120px;height: 180px;margin: 150px auto 0;position: relative;/*transform 旋转元素*/transform-style:preserve-3d;transform:perspective(800px) rotateX(-10deg) rotateY(0deg);}
.pic 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%);}
.pic 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);}

引入jQuery库文件

<script src="js/jquery-1.11.0.min.js" type="text/javascript"></script>

特效JS结构

$(function(){
var imgL=$(".pic img").size();
var deg=360/imgL;
var roY=0,roX=-10;
 var xN=0,yN=0;
 var play=null;
$(".pic img").each(function(i){
	$(this).css({
		<!--translateZ 定义2d旋转沿着z轴-->
		"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('<div style="width:5px;height:5px;position:absolute;top:'+y+'px;left:'+x+'px;background-color:red"></div>');
			$('.pic').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;
			$('.pic').css({
				 transform:'perspective(800px) rotateX('+roX+'deg) rotateY('+roY+'deg)'
			});
		  },30);
	});
});

HTML结构

<div class="pic">
	<img src="img/1.jpg"/>
	<img src="img/2.jpg" />
	<img src="img/3.jpg"/>
	<img src="img/4.jpg"/>
	<img src="img/5.jpg"/>
	<img src="img/6.jpg"/>
	<img src="img/7.jpg"/>
	<img src="img/8.jpg"/>
	<img src="img/9.jpg"/>
	<img src="img/10.jpg"/>
	<p></p>
</div>

相关素材 - 图片特效

讨论这个素材(0)回答他人问题或分享使用心得会奖励牛币

〒_〒 居然一个评论都没有……

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取
我的牛币余额:0
所需牛币:1 开始下载

牛币获取:签到、评论、充值    » 在线充值(10牛币=1元)