只是一点免责声明:我是jquery / javascript编程的新手,并且只知道html / css设计的基础知识..
我一直试图在页面上随机定位一些soundcloud小部件。我似乎已经设法实现这一点 - 但是这样做我已经:在css中创建一个新的div id,将每个小部件分配给一个单独的div id名称,然后编写一个函数来单独移动每个div。我尝试使用.each(),但是从我可以在其他问题中收集的内容中,这不能通过div运行,只有div.class名称...从这里开始我很困惑尝试.each(); .parent();测试中的类名等等。
这是我每次必须复制的js(只是在'scTrack'之后更改数字):
(function() {
var docHeight = $(document).height(),
docWidth = $(document).width(),
$div = $('#scTrack1'),
divWidth = $div.width(),
divHeight = $div.height(),
heightMax = docHeight - divHeight,
widthMax = docWidth - divWidth;
$div.css({
left: Math.floor(Math.random() * widthMax),
top: Math.floor(Math.random() * heightMax)
});
});
的CSS:
#scTrack1 {
position:absolute;
height:70px;
width: 200px;
}
HTML
<div id="scTrack1">
<object height="81" width="100%"> <param name="movie" value="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F67155680&show_comments=false&auto_play=false&color=000000"></param> <param name="allowscriptaccess" value="always"></param> <embed allowscriptaccess="always" height="81" src="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F67155680&show_comments=false&auto_play=false&color=000000" type="application/x-shockwave-flash" width="100%"></embed> </object>
</div>
这是我在jsfiddle上的例子:http://jsfiddle.net/antrgor_reiz/scVRS/
我想要实现的是在css中定义一个div - 用于所有不同的soundcloud小部件 - 以及一些将遍历该div的每个实例并运行该函数以重新定位div的j .. / p>
这可能吗?
非常感谢!
答案 0 :(得分:3)
您可以使用.each()
循环遍历从任何选择器创建的任何jQuery对象(包含或不包含类名)。
$("div").each(function() { ... }); // loop through all divs
$("div.test").each(function() { ... } ); // loop through all divs of class "test"
$(".test").each(function() { ... }); // loop through any elements of class "test"
对于你的情况,这可以解决问题:
$(function() {
var docHeight = $(document).height(),
docWidth = $(document).width();
// process each div that is a child of "container"
$("#container div").each(function() {
// get the current div's dimensions
var $div = $(this),
divWidth = $div.width(),
divHeight = $div.height(),
heightMax = docHeight - divHeight,
widthMax = docWidth - divWidth;
// set the current div's position
$div.css({
left: Math.floor(Math.random() * widthMax),
top: Math.floor(Math.random() * heightMax)
});
});
});
答案 1 :(得分:0)
您可以使用four
.each()
相同功能的不同功能
$(document).ready(function() {
$('object').each(function(){
var $pDiv = $(this).parent('div');
var docHeight = $(document).height(),
docWidth = $(document).width(),
$div = $pDiv,
divWidth = $div.width(),
divHeight = $div.height(),
heightMax = docHeight - divHeight,
widthMax = docWidth - divWidth;
$div.css({
left: Math.floor(Math.random() * widthMax),
top: Math.floor(Math.random() * heightMax)
});
})
});