• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javascript rotator について。)

Javascript rotatorについての質問

このQ&Aのポイント
  • Javascript rotatorについての質問です。Javascriptについてソースを拝見してもわからなく行き詰ってしまったので質問させて頂きました。
  • 下記のJavaを使用してホームページを作成したく思っておりますが、テキストには遠近感がついていますが画像には遠近感が全くありません。画像にも手前は大きく、奥に行けば小さくなるアクションを付ける場合はどのように改善すれば良いのでしょうか?
  • 初歩的な質問だとは思いますが、どなたかご教授いただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

ざっと見ただけですが… $.fn.rotate の終わりのほうの  this[i].style.top = -Y + "px";  this[i].style.left = X + "px";  this[i].style.fontSize = size + "em";  this[i].style.opacity = (size*10)/5;  this[i].style.zIndex = elem[i].dist; の部分で、各要素の位置やサイズを指定しているみたいです。 サイズに関してはfontSizeを指定しているだけなので、単純には画像のサイズは変わらないということになっているみたい。 オリジナルのデモは文字のみなので、画像までは考慮して作成していないのかも。  http://www.willjessup.com/sandbox/jquery/rotator/rotator.html …かと思ったら、最初に作成したものはこんな感じらしい。  http://www.willjessup.com/sandbox/jquery/solar_system/rotator.html (画像のサイズもちゃんと変わっていますね) この(↑)HTMLソースのように、画像のサイズ指定をemで指定しておけば、fontSizeの指定がそのまま画像サイズに反映されるということみたいですね。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.3

まわせ!まわせ!実験報告 No.1様の回答 + No.2様の回答 で、画像も伸びちじみ、 オパシティはまあいいか。  if(p.element.getElementsByTagName("img").length>0)   p.element.getElementsByTagName("img")[0].style.width = scale - (zz * 300 |0) + '%';

すると、全ての回答が全文表示されます。
回答No.2

まわせ!まわせ~!むずかしいざひょうけいはむししてるけど・・・ すべてのぜんかくくうはくは、はんかくにしてちょ! <!DOCTYPE html> <title></title> <style type="text/css"> #box {  width : 800px;  height : 800px;  background-color: black;  list-style :none;  margin: 0;  padding: 0; } #box li {  color : #fff; } </style> <body> <ul id="box"> <li>1 <li>2 <li>3 <li>4 <li>5 <li>6 <li>7 <li>8 <li>9 </ul> <script> (function ( ) {  var node = document.getElementById ('box');  var lis = node.getElementsByTagName ('li');  var cnt, li;  var parts = [ ];  var cx = node.offsetWidth / 2;  var cy = node.offsetHeight / 2;  var r = 300;  var n = 360 / lis.length;  var xr = 3;  var yr = 1;  var zr = .5;  var deg = Math.PI / 180;  var depth = 1000;  var scale = 700;    node.style.position = 'relative';  node.style.overflow = 'hidden';  // ざひょうのていぎ  for (cnt = 0; li = lis[cnt]; cnt++) {   li.style.position = 'absolute';   parts.push ( {    'element' : li,    'x' : Math.sin (n * cnt * deg) * r,    'y' : 0,    'z' : Math.cos (n * cnt * deg) * r,    'alpha' : 1,    'scale' : 1   });  }    (function ( ) {   var x, y, z, mx, my, mz, p, t, xx, yy, zz, s, ss;   for (cnt = 0; p = parts[cnt++]; ) {    x = p.x, y = p.y, z = p.z, s = p.element.style;    if (xr) { //x軸の回転     t = xr * deg;     my = y * Math.cos (t) - z * Math.sin (t);     mz = y * Math.sin (t) + z * Math.cos (t);     y = my, z = mz;    }        if (yr) {     t = yr * deg;     mx = x * Math.cos (t) - z * Math.sin (t);     mz = x * Math.sin (t) + z * Math.cos (t);     x = mx, z = mz;    }    if (zr) {     t = zr * deg;     mx = x * Math.cos (t) - y * Math.sin (t);     my = x * Math.sin (t) + y * Math.cos (t);     x = mx, y = my;    }        zz = (z + depth) / scale;    xx = (cx + x / zz) |0;    yy = (cy + y / zz) |0;        s.top = yy + 'px';    s.left = xx + 'px';    s.fontSize = scale - (zz * 300 |0) + '%';        p.x = x, p.y = y, p.z = z;   }      setTimeout (arguments.callee, 30);  })(); })(); </script>

すると、全ての回答が全文表示されます。

関連するQ&A