我正在为我的网站创建一个照片库。我想要一个页面加载时显示的照片网格。然后,当用户将鼠标悬停在每张照片上时,照片会稍微放大。
我为悬停创建了javascript,但我不知道如何将其正确打包到一个类中。
基本上,我想创建一个像这样的列表
<ul>
<li><img src="img1.jpg" /></li>
<li><img src="img2.jpg" /></li>
</ul>
然后它会使用我的悬停机制自动创建每个图像。 这是我到目前为止的代码。
<!DOCTYPE HTML>
<html>
<head>
<script src="jquery.js"></script>
<style text="text/css">
.hoverImage {
position: absolute;
width: 200px;
left: 500px;
top: 200px;
}
</style>
</head>
<body>
<script>
var originalWidth;
var originalHeight;
function onHover() {
originalWidth = $(this).width();
originalHeight = $(this).height();
$(this).stop(false, true).animate({
left: $(this).offset().left-(Math.floor(originalWidth/4)),
top: $(this).offset().top-(Math.floor(originalHeight/4)),
width: 300,
},200);
}
function offHover() {
$(this).stop(false, true).animate({
left: $(this).offset().left+(Math.floor(originalWidth/4)),
top: $(this).offset().top+(Math.floor(originalHeight/4)),
width: 200,
},200);
}
$(document).ready(function() {
$("img").hover(onHover, offHover);
});
</script>
<img class="hoverImage" src="Test.jpg"/>
</body>
</html>
答案 0 :(得分:1)
如果你想将你的功能包装成可重用的东西,考虑编写一个jQuery扩展。这并不难。
答案 1 :(得分:1)
如果你想用你自己的方法扩展jQuery DOM对象,这应该是这样做的方法
$.fn.extend({
relyntsHoverPlugin : function() {}
});
这将允许语法如
$('ul').relyntsHoverPlugin();
不要与使用新函数扩展jQuery对象混淆,即。的 $ 强> .relyntsMethod();
希望这会有所帮助,而且我并不完全偏离基地!
答案 2 :(得分:0)
您可以使用模板在grid / div / table中创建图像...并在Hover()和Hover()上添加图像。希望它可以帮到你。
<script type="text/javascript">
$(document).ready(function() {
var data = [
{ name: "Astor", product: "astor", stocklevel: "10"},
{ name: "Daffodil", product: "daffodil", stocklevel: "12"},
{ name: "Rose", product: "rose", stocklevel: "2"},
{ name: "Peony", product: "peony", stocklevel: "0"},
];
$('#flowerTmpl').tmpl(data).appendTo('#row1');
});
</script>
<script id="flowerTmpl" type="text/x-jquery-tmpl">
<div class="dcell">
<img src="${product}.png"/>
<label for="${product}">${name}:</label>
</div>
</script>