我如何实现数组列表到这个html代码
How can I implement an array list to this html code?
我最近刚开始接触html,想知道如何实现以下代码,并更有效地使用arrayList
<!--
This was me just trying to play around with arrays and elements
var elements = document.getElementsByClassName("[id^=pop]");
var arr = jQuery.makeArray(elements);
-->
var p = $("[id^=pop]");
var position = p.position();
$("[id^=pop]").hover(function() {
$(this).css("cursor", "pointer");
$(this).animate({
width: "400px",
height: "400px",
top: position.top*.7,
left: position.left*.7
}, 150);
}, function() {
$(this).animate({
width: "300px",
height: "300px",
top: position.top,
left: position.left
}, 150);
});
到目前为止,当一个图像id等于pop0,然后另一个等于pop1。它们都将动画到第一张图像的高度和宽度。我怎么能使用一个数组,让每个img有自己的位置,不会基于第一个图像加载,而是他们自己的顶部和左侧坐标?
正如评论中提到的,您需要将您的position
变量从悬停事件处理程序的外部移动到悬停事件处理程序的内部。这将把上下文设置为当前悬停的项目。
当前,您的p
变量存储以pop
开头的ID开始的所有元素的数组。然后,您将存储对第一个元素位置的引用,并且永远不会通过在悬停事件处理程序之外设置position
的值来更新。
这里有一个小缓存的例子,所以你不总是查询DOM。
var $pop = $( '[id^=pop]' );
$pop.hover( function hoverIn() {
var $this = $( this ),
pos = $this.position();
$this
.css( 'cursor', 'pointer' ) // <= Possibly do this via CSS.
.animate( {
width: '400px',
height: '400px',
top: pos.top * 0.7,
left: pos.left * 0.7
}, 150 );
}, function hoverOut() {
var $this = $( this ),
pos = $this.position();
$this.animate( {
width: '300px',
height: '300px',
top: pos.top,
left: pos.left
}, 150 );
} );
相关文章:
- Angular:使用选择列表选择过滤代码中的对象
- 我在下拉列表中尝试了下一个和前五年的html代码.接下来的5年我都过得很好.我怎样才能拿到之前的5年
- php代码或脚本接受自动完成列表中文本框中的值
- 如何使用预定义字符串列表“动态”生成 HTML 代码
- 如何在从代码后面显示之前,在弹出窗口中选择预先填充的下拉列表选项
- 如何修改代码以将其应用于三个下拉列表?(Jquery)
- 从HTML代码段创建节点列表后,.find()未按预期工作
- 使用基于值的jQuery代码更改SharePoint列表字段颜色
- 我正试图让它,当你点击其中一个下拉选择时,它会添加到列表中,这是我们的一个下拉按钮的代码
- Javascript待办事项列表-我的代码中有什么错误
- 链接下拉列表选择列表代码 -- 连接数据
- 如何使以下 JavaScript 代码工作并生成 ID 为 “myDivId” 的元素内的名称和年龄列表:
- 级联下拉列表未填充在 IE 9(代码点火器)中
- 代码点火器动态表单下拉列表,不返回值,而是返回 ID
- 代码镜像如何创建自定义自动完成下拉列表
- 尝试运行下一个上一个按钮以播放列表媒体播放器代码中的视频,出现错误
- 在 Javascript 下拉列表中添加 HTML 代码,Javascript 不评估 HTML 代码
- YouTube播放列表代码示例
- Jquery-select2 -将select2添加到现有的下拉列表代码中以使其可搜索
- 从XML填充下拉列表-代码执行顺序错误