最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS實(shí)現(xiàn)3D圖片旋轉(zhuǎn)展示效果代碼

 更新時(shí)間:2015年09月22日 15:44:52   作者:企鵝  
這篇文章主要介紹了JS實(shí)現(xiàn)3D圖片旋轉(zhuǎn)展示效果代碼,可實(shí)現(xiàn)頁面元素的3D旋轉(zhuǎn)變換效果,涉及JavaScript動(dòng)態(tài)數(shù)學(xué)運(yùn)算的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了JS實(shí)現(xiàn)3D圖片旋轉(zhuǎn)展示效果代碼。分享給大家供大家參考。具體如下:

這是一段JavaScript代碼,圍繞成3D模型樣式的JavaScript圖片旋轉(zhuǎn)展示代碼,這里為了演示方便,將圖片替換成了數(shù)字,預(yù)留出了圖片的位置,這樣速度快些,會(huì)HTML的朋友都知道用時(shí)候該怎么做。本圖片旋轉(zhuǎn)需要手功控制,每點(diǎn)擊一下,圖片旋轉(zhuǎn)一次,很方便。

運(yùn)行效果截圖如下:

在線演示地址如下:

http://demo.jb51.net/js/2015/js-3d-pic-scroll-show-style-codes/

具體代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>圖片旋轉(zhuǎn)展示</title>
<style>
#show{position:relative;margin:20px auto;width:800px;border:1px solid #999999;}
.item{position:absolute;height:40px;width:60px;background:#999999;border:1px solid #eeeeee;cursor:pointer;}
</style>
<script>
var len;
var showerObj;
var listObj;
var showerWidth=800;
var showerHeight=400;
var r;
var cR=0;
var ccR=0;
var timer=0;
window.onload=function(){
 showerObj=document.getElementById("show");
 listObj=showerObj.getElementsByTagName("div");
 len=listObj.length;
 r=Math.PI/180*360/len;
 for(var i=0;i<len;i++){
  var item=listObj[i];
  item.style.top=showerHeight/2+Math.sin(r*i)*showerWidth/2-20+"px";
  item.style.left=showerWidth/2+Math.cos(r*i)*showerWidth/2-30+"px";
  item.rotate=(r*i+2*Math.PI)%(2*Math.PI);
  item.onclick=function(){
   cR=Math.PI/2-this.rotate;
   timer || (timer=setInterval(rotate,10));
  }
 }
 var rX=showerObj.offsetLeft+showerWidth/2;
 var ry=showerObj.offsetTop+showerHeight/2;
 var rotate=function(){
  ccR=(ccR+2*Math.PI)%(2*Math.PI);
  if(cR-ccR<0) cR=cR+2*Math.PI;
  if(cR-ccR<Math.PI){
   ccR=ccR+(cR-ccR)/19;
  }else{
   ccR=ccR-(2*Math.PI+ccR-cR)/19;
  }
  if(Math.abs((cR+2*Math.PI)%(2*Math.PI)-(ccR+2*Math.PI)%(2*Math.PI))<Math.PI/720){
   ccR=cR;
   clearInterval(timer);
   timer=0;
  }
  for(var i=0;i<len;i++){
   var item=listObj[i];
   var w,h;
   var sinR=Math.sin(r*i+ccR);
   var cosR=Math.cos(r*i+ccR);
   w=60+0.6*60*sinR;
   h=(40+0.6*40*sinR);
   item.style.cssText +=";width:"+w+"px;height:"+h+"px;top:"+parseInt(showerHeight/2+sinR*showerWidth/2/3-w/2)+"px;left:"+parseInt(showerWidth/2+cosR*showerWidth/2-h/2)+"px;z-index:"+parseInt(showerHeight/2+sinR*showerWidth/2/3-w/2)+";";
  }
 }
 document.getElementById("l").onclick=function(){
  cR=(cR+r+2*Math.PI)%(2*Math.PI);
  timer || (timer=setInterval(rotate,10));
 }
 document.getElementById("r").onclick=function(){
  cR=(cR-r+2*Math.PI)%(2*Math.PI);
  timer || (timer=setInterval(rotate,10));
 }
 rotate();
}
</script>
</head>
<body>
<input id="l" type="button" value="left" >
<input id="r" type="button" value="right" >
<div id="show">
 <div class="item">1</div>
 <div class="item">2</div>
 <div class="item">3</div>
 <div class="item">4</div>
 <div class="item">5</div>
 <div class="item">6</div>
 <div class="item">7</div>
 <div class="item">8</div>
 <div class="item">9</div>
 <div class="item">0</div>
 <div class="item">a</div>
 <div class="item">b</div>
 <div class="item">1</div>
 <div class="item">2</div>
 <div class="item">3</div>
</div>
</body>
</html>

希望本文所述對(duì)大家的JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • js頁面跳轉(zhuǎn)常用的幾種方式

    js頁面跳轉(zhuǎn)常用的幾種方式

    js實(shí)現(xiàn)頁面跳轉(zhuǎn)的幾種方式,需要的朋友可以參考下。
    2010-11-11
  • js 右下角彈窗效果代碼(IE only)

    js 右下角彈窗效果代碼(IE only)

    js 右下角彈窗效果代碼,雖然IE only,但這個(gè)代碼的邏輯可以參考下。了解下IE與firefox的區(qū)別,自己寫個(gè)兼容的版本吧。
    2010-06-06
  • TypeScript里string和String的區(qū)別

    TypeScript里string和String的區(qū)別

    這篇文章主要介紹了TypeScript里string和String的區(qū)別,真的不止是大小寫的區(qū)別,string表示原生類型,而String表示對(duì)象,下文更多詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-03-03
  • JS如何定義用字符串拼接的變量

    JS如何定義用字符串拼接的變量

    這篇文章主要介紹了JS如何定義用字符串拼接的變量,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • layui對(duì)工具條進(jìn)行選擇性的顯示方法

    layui對(duì)工具條進(jìn)行選擇性的顯示方法

    今天小編就為大家分享一篇layui對(duì)工具條進(jìn)行選擇性的顯示方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 基于JavaScript實(shí)現(xiàn)簡(jiǎn)單掃雷游戲

    基于JavaScript實(shí)現(xiàn)簡(jiǎn)單掃雷游戲

    這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)簡(jiǎn)單掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • javascript動(dòng)畫對(duì)象支持加速、減速、緩入、緩出的實(shí)現(xiàn)代碼

    javascript動(dòng)畫對(duì)象支持加速、減速、緩入、緩出的實(shí)現(xiàn)代碼

    javascript動(dòng)畫對(duì)象支持加速、減速、緩入、緩出的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2012-09-09
  • javascript解決innerText瀏覽器兼容問題思路代碼

    javascript解決innerText瀏覽器兼容問題思路代碼

    innerText瀏覽器兼容這塊始終都是一個(gè)問題,下面與大家分享下使用javascript解決,感興趣的朋友可以參考下哈,希望對(duì)你有所幫助
    2013-05-05
  • Javascript中的delete介紹

    Javascript中的delete介紹

    關(guān)于JavaScript中的Delete一直沒有弄的很清楚,最近看到兩篇這方面的文章,現(xiàn)對(duì)兩文中部分內(nèi)容進(jìn)行翻譯(內(nèi)容有修改和添加,順序不完全一致,有興趣推薦看原文),希望能對(duì)大家有所幫助
    2012-09-09
  • js實(shí)現(xiàn)隨機(jī)8位驗(yàn)證碼

    js實(shí)現(xiàn)隨機(jī)8位驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)隨機(jī)8位驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06

最新評(píng)論

佛冈县| 从江县| 方山县| 柳州市| 侯马市| 固镇县| 绥化市| 江川县| 芜湖县| 舟曲县| 安阳市| 云龙县| 珲春市| 华安县| 大新县| 昌邑市| 南召县| 邹平县| 铅山县| 新绛县| 克拉玛依市| 闸北区| 密山市| 顺义区| 樟树市| 石河子市| 读书| 绥中县| 贵定县| 湟中县| 勐海县| 儋州市| 青州市| 平果县| 阜城县| 兰坪| 兖州市| 贵港市| 永清县| 修水县| 临沭县|