現在、ポートフォリオ用のウェブサイトに取り組んでいるので、挑戦したかったのです。
私の作品を展示するセクションは PHP でコーディングされており、データベースに接続されています。WHILE ループを使用すると、Web サイトにすべてのデータベース レコードが追加されます。
このサイトでは、Javascript を初めて使用することにしました。これをより難しくし、これについても学習します。
私が欲しいのは、PHP WHILE ループが追加するすべてのデータベース レコードの周りの境界線です。これは、カーソルを合わせたときにのみ表示され、サムネイルにカーソルを合わせるたびに色 (色の固定配列) が変わります。
これは私がこれまでに持っているコードです:
function loaded() {
var colors = ["#FC3E6B","#24FF00","#0087F9","#F9F900"];
var images = document.getElementById("thumbnails").getElementsByTagName("div");
console.log(images);
for (var i = 0; i < images.length; i++) {
var rand = Math.floor(Math.random()*colors.length);
images[i].style.borderStyle = 'solid';
images[i].style.borderWidth = '1px';
images[i].style.borderColor = 'transparent';
$(images[i]).hover(function(){
console.log('hovering over');
images[i].style.borderColor = colors[rand];
}, function(){
console.log('hovering out');
images[i].style.borderColor = 'transparent';
});
};
};
私の問題は、それが機能しないか、部分的に機能することです。このコードは、WHILE ループが追加する最初のエントリにのみ適用されます。コンソールでは、「console.log(images)」が最初のエントリのみを返すことがわかります。
別の問題は、エラーも返すことです。
images[i] is undefined
images[i].style.borderColor = colors[rand];
現在悩んでいるのはこの2点です。Javascript を使用するのは初めてなので、初心者/簡単な間違いかもしれません。
言い忘れたことや知りたいことがあれば教えてください。返信をお待ちしております。