【发布时间】:2012-02-13 00:29:34
【问题描述】:
我正在尝试创建一个使用 jQuery 获取图像高度的函数,我已经尝试了所有可以找到的方法,但没有任何效果......
$(document).ready(function() {
window.onload = onLoad;
var array = "0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|101|102|103|104|105|106|107".split("|");
function onLoad(){
$("style").html("");
var img = array[Math.floor(Math.random()*array.length)] + ".JPG";
document.getElementById("show").src = img;
var img_height = $("#show").height();
var img_hgt = img_height - 238;
alert(img_hgt);
$("#show").ready(function() {
var img_hgt = $("#show").height();
})
$("style").html("#show {position:absolute;top:0px;left:0px; -webkit-animation-name:slide_animation; -webkit-animation-duration:5s;} @-webkit-keyframes slide_animation { 0% { top:0px; } 100% { top:"+img_hgt+"px; } }");
setTimeout(onLoad,2*1000);
}
});
请帮忙...
我试图用这个动画实现的是一种 ken-burns 滑下效果......
【问题讨论】:
-
仅供参考,您可以使用:
var img = Math.floor(Math.random()*108) + ".JPG";而不是从字符串数组中获取字符串。你甚至不需要那个数组。 -
要获取图像的高度,您必须等待它成功加载。您可以使用
.onload(fn)处理程序或 jQuery 的.load() event。 -
您可能需要重新检查您的代码。我可以看到很多错误的东西,比如使用 jQuery
.html()清空样式标签来添加动态样式?或者仍然使用document.getElementById,如果你可以在jQuery中做$('#element-id')?还是使用循环来生成那个长数组? -
顺便说一句,
$(document).ready(function()已经做了你想让window.onload()处理的所有事情,所以它是多余的。 -
我同意@fskreuz。要从 jQuery 引用中快速访问 DOM 元素,您只需执行
$("#show")[0]
标签: jquery html css image width