1、首先打開html文件編輯器,這里使用vscode新建一個(gè)html文檔,文檔中寫入基本的html結(jié)構(gòu),然后插入img標(biāo)簽并插入一張圖片,給img一個(gè)class屬性:
成都創(chuàng)新互聯(lián)公司是一家網(wǎng)站建設(shè)、網(wǎng)站制作,提供網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),網(wǎng)站制作,建網(wǎng)站,按需求定制設(shè)計(jì),網(wǎng)站開發(fā)公司,2013年至今是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價(jià)值為核心業(yè)務(wù),全程參與項(xiàng)目的網(wǎng)站策劃設(shè)計(jì)制作,前端開發(fā),后臺(tái)程序制作以及后期項(xiàng)目運(yùn)營(yíng)并提出專業(yè)建議和思路。
2、然后在上方的head標(biāo)簽中的style標(biāo)簽設(shè)置樣式,這里設(shè)置圖片的寬度和高度并設(shè)置相對(duì)定位,然后設(shè)置圖片的鼠標(biāo)懸浮樣式,其中設(shè)置動(dòng)畫的形式為3d以及設(shè)置圖片3d旋轉(zhuǎn)偏移的角度,添加一個(gè)動(dòng)畫,設(shè)置好延時(shí)即可:
3、最后打開瀏覽器,就會(huì)看到一個(gè)圖片:
4、當(dāng)鼠標(biāo)移動(dòng)上去,圖片就會(huì)自動(dòng)3d旋轉(zhuǎn)了:
圖片旋轉(zhuǎn)可以用CSS3中的動(dòng)畫效果來做,CSS3中,允許使用 3D 轉(zhuǎn)換來對(duì)元素進(jìn)行格式化。
示例代碼如下:
style
*{margin:0;padding:0;}/*簡(jiǎn)單可以自定義,參照上面*/
body{font:14px/1.5 "\5FAE\8F6F\96C5\9ED1","\5B8B\4F53", sans-serif, Arial, System;background-color:#FFF;}
#imgg{animation:imgg 1s linear 0s infinite;}
@keyframes imgg{0% {transform:rotateY(0deg);}25%{transform:rotateY(90deg);}50%{transform:rotateY(180deg);}75%{transform:rotateY(270deg);}100% {transform:rotateY(360deg);}}
/style
div id="demo"
img src="圖片地址" alt="" width="100" height="100" id="imgg"
/div
html5中引入3d模型的方法是借助第三方PlayCanvas插件來完成的。
比如可以用以下方法實(shí)現(xiàn)圖片的360度旋轉(zhuǎn):
代碼示例:
var render, loop, t, dt, //定義變量
DEG2RAD = Math.PI / 180, //角度轉(zhuǎn)弧度
cvs = document.querySelector('canvas'), //創(chuàng)建canvas
ctx = cvs.getContext('2d'),//繪制2d圖形上下文
teddy = new Image(), //創(chuàng)建圖像
heart = new Image(), //創(chuàng)建圖像中心
angle = 0,//初始化角度為0
reqAnimFrame =
window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.msRequestAnimationFrame ||
window.oRequestAnimationFrame;
//創(chuàng)建動(dòng)畫幀
cvs.width = 400;
cvs.height = 200;
teddy.src = 'xxx.jpg';
heart.src = 'yyy.jpg';
//開始渲染
render = function (timestamp) {
dt = timestamp - t;
t = timestamp;
// cavas設(shè)置為白色
ctx.fillStyle = "rgb(255,255,255)";
ctx.fillRect(0, 0, cvs.width, cvs.height);
// 繪制中心
ctx.drawImage(heart, -20, -120);
// 繪制teddy
ctx.save();
ctx.translate(cvs.width/2, cvs.height/2); // 移動(dòng)鼠標(biāo)到畫布中心
ctx.rotate(DEG2RAD * angle); // 旋轉(zhuǎn)畫布
ctx.drawImage(teddy, -teddy.width/2, -teddy.height/2); // 繪制中心圖片
angle += dt / 16.67 * 6; // increment angle ~ 360 deg/sec
ctx.restore();
};
loop = function (timestamp) {
reqAnimFrame(loop);
render(timestamp);
};
t = Date.now();
loop(t);
可以使用css3中的rotate實(shí)現(xiàn)
實(shí)際的旋轉(zhuǎn)效果是這樣:
rotate中的 60deg 表示按最原始的位置,順時(shí)針旋轉(zhuǎn)60°
w3school 里面有更詳細(xì)用法,可以2D旋轉(zhuǎn)、3D旋轉(zhuǎn)
可以參考:網(wǎng)頁(yè)鏈接
動(dòng)畫效果可以通過js改變r(jià)otate中傳入的值來實(shí)現(xiàn)