js和css3實現360旋轉滾動效果
分享一段程式碼例項,它實現了利用javascript結合css3宣傳滾動效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> body { perspective: 1200px; } #box { transform-style: preserve-3d; transform: rotateX(-10deg); } ul { width: 133px; height: 200px; position: relative; margin: 10% auto; } ul li { position: absolute; left: 0; top: 0; text-align: center; line-height: 200px; float: left; list-style: none; width: 133px; height: 200px; background-image: radial-gradient( rgba(0, 0, 0,0.2),rgba(0, 0, 0,0.8)); border-radius: 5%; border: 1px solid #000; } </style> <script> window.onload = function (argument) { var filpPork = new Pork(); filpPork.init(); } function Pork(argument) { this.wrapBox = document.getElementById("box"); this.imgList = this.wrapBox.getElementsByTagName("li"); this.imgDeg = 360 / this.imgList.length; this.lastx, this.lasty, this.changeX, this.changeY, this.roX = 0; this.roY = 0; } Pork.prototype.init = function (arguments) { for (var i = 0; i < this.imgList.length; i++) { this.imgList[i].style.transform = "rotateY(" + this.imgDeg * i + "deg)" + "translateZ(360px)" this.imgList[i].style.transition = "transform 1s " + (this.imgList.length - 1 - i) * 0.2 + "s" } this.filp(this); } Pork.prototype.filp = function (obj) { var _this = obj document.onmousedown = function (e) { var timer = null; clearInterval(timer) var ev = window.event || e; _this.lastx = ev.clientX; //當前滑鼠位置 _this.lasty = ev.clientY; this.onmousemove = function (argument) { clearInterval(timer) var ev = window.event || e; var nowx = ev.clientX; //現在滑鼠位置 var nowy = ev.clientY; _this.changeX = nowx - _this.lastx; //x軸變化了多少 _this.changeY = nowy - _this.lasty; //y軸變化了多少 _this.roY += _this.changeX * 0.05; //調節轉的速度 _this.roX -= _this.changeY * 0.05; //調節轉的速度 console.log(_this.wrapBox) _this.wrapBox.style.transform = "rotateX(" + _this.roX + "deg) rotateY(" + _this.roY + "deg)"; lastx = _this.nowx; //將舊的資料更新 lasty = _this.nowy; //將舊的資料更新 } this.onmouseup = function () { this.onmousemove = null; //取消移動事件 timer = webkitRequestAnimationFrame(function () { //設定時器逐漸減小rotateX和rotateY _this.changeX *= 0.95; //每30毫秒rotateX減少5% _this.changeY *= 0.95; //每30毫秒rotateY減少5% _this.roY += _this.changeX * 0.2; //調節轉的速度 _this.roX -= _this.changeY * 0.2; //調節轉的速度 //賦值新的rotateX和rotateY _this.wrapBox.style.transform = "rotateX(" + _this.roX + "deg) rotateY(" + _this.roY + "deg)"; }, 30) } return false; //取消預設事件 } } </script> </head> <body> <div id="box"> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> <li>10</li> </ul> </div> </body> </html>
相關文章
- CSS3花瓣狀360度不停旋轉效果CSSS3
- css3實現環狀旋轉效果CSSS3
- jQuery和css3實現的摩天輪旋轉效果jQueryCSSS3
- css3實現的旋轉的陀螺效果CSSS3
- CSS3邊框旋轉動畫實現效果CSSS3動畫
- css3實現的立方體旋轉效果CSSS3
- CSS3動畫(360度旋轉、旋轉放大、放大、移動)CSSS3動畫
- javascript 3D旋轉滾動效果JavaScript3D
- CSS3實現的3D旋轉效果CSSS33D
- css3實現的旋轉載入等待效果CSSS3
- css3實現的立體滾動效果CSSS3
- css3實現動態摺疊生成立方體旋轉效果CSSS3
- css3實現旋轉loadding載入效果CSSS3
- CSS3實現的小球旋轉載入等待效果CSSS3
- css3實現的滾動的檯球效果CSSS3
- | / - 的旋轉效果實現(轉)
- CSS3 旋轉魔方效果CSSS3
- css3實現的3D立體旋轉效果CSSS33D
- css3實現的旋轉魔方效果程式碼例項CSSS3
- css3實現的loadding旋轉載入效果CSSS3
- css3實現的立方體3D旋轉效果CSSS33D
- js和css3實現的圖片立體滾動切換效果程式碼例項JSCSSS3
- js實現的模擬滾動條效果JS
- CSS3圖片旋轉效果CSSS3
- CSS3多面體旋轉效果CSSS3
- CSS3星系旋轉效果代CSSS3
- CSS3實現的div元素旋轉一定角度效果CSSS3
- 影像平滑滾動效果的VC實現 (轉)
- three.js實現的3D球狀拖動旋轉效果JS3D
- canvas實現太陽、地球和月亮旋轉效果Canvas
- js和css3實現的空調效果JSCSSS3
- css3和js實現的大白動畫效果CSSS3JS動畫
- css3實現旋轉的太極圖效果程式碼例項CSSS3
- js滑鼠移動實現圖片立體滾動效果JS
- CSS3旋轉載入等待效果CSSS3
- CSS3 圓環內部旋轉效果CSSS3
- CSS3地月星系旋轉效果CSSS3
- css3實現的方塊迴圈翻滾跳動效果CSSS3