Js集合

1.图片轮番结合放大

// JavaScript Document

var $ = function(id){return typeof id == 'string' ? document.getElementById(id) : id;};function Each(a,fn){for(var i=0;i<a.length;i++)fn.call(a[i],i,a)};function on(o,type,fn){o.attachEvent?o.attachEvent('on'+type,function(){return fn.call(o)}):o.addEventListener(type,fn,false);return on;};

var big=$("bigp");
var cont=$("content");
var smallimg=cont.getElementsByTagName("img");
var small_url = cont.getElementsByTagName("img")[0].getAttribute("src");;
(function(){
Each(smallimg,function(i){
 on(smallimg[i],'mouseover',function(){
  Each(smallimg,function(j){
   if(i==j){
    big.src=smallimg[j].src;
    big.alt=smallimg[j].alt;
    small_url = cont.getElementsByTagName("img")[j].getAttribute("src");
    smallimg[j].className="lion";
   }else{
    smallimg[j].className="";
   }
  });
 });
});
})();

var smalmg = $("fangdj");//Obj
var showimg = $("showimg");//滤镜图片
var bigimg = $("bigimg");//右大图
var show_half = maxWidth = maxHeight = 0;
smalmg.onmouseover = function(){
 showimg.style.display = "block";
 bigimg.style.display = "inline";
 show_half = showimg.offsetHeight/2;
 maxWidth = smalmg.clientWidth - showimg.offsetWidth;
 maxHeight = smalmg.clientHeight - showimg.offsetHeight;
 //上面两个变量指明showimg允许活动的区域
};
smalmg.onmousemove = function(e){
 e = e || window.event;//兼容多个浏览器的event参数模式
 var num=bigimg.clientWidth/showimg.clientWidth;
 var Top = mousePosition(e).y - smalmg.offsetTop - show_half;
 var Left = mousePosition(e).x - smalmg.offsetLeft - show_half;
 //获取当前移动的showimg位置 计算方法是 鼠标坐标 - 最外面容器的坐标 - 滤镜图的宽(高)的/2
 Top = Top<0?0:Top>maxHeight?maxHeight:Top;
 Left = Left<0?0:Left>maxWidth?maxWidth:Left;
 showimg.style.top = Top + "px";
 showimg.style.left = Left + "px";
 bigimg.style.background = "url("+small_url+") -"+Left*num+"px -"+Top*num+"px no-repeat";
};
smalmg.onmouseout = function(){
 showimg.style.display="none";
 bigimg.style.background ="";
 bigimg.style.display="none"
};
function mousePosition(ev) {
 return {
   x:ev.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft),
   y:ev.clientY + (document.body.scrollTop || document.documentElement.scrollTop)
 }
}

2.微博分享

<script type="text/javascript" src="http://v3.jiathis.com/code/jiathis_r.js?uid=1342582394583517&type=left&amp;move=0&amp;btn=l5.gif" charset="utf-8"></script>

JavaScript的集合框架虽没有像Java那样的系统级支持,但可通过数组、对象、Set和Map等数据结构有效管理和操作数据,理解这些集合的特性和使用场景有助于编写更高效、可维护的代码[^1]。 ### 数组 数组是JavaScript中最常用的集合类型之一。它可以存储任意类型的数据,并且可以动态调整大小。创建数组可以使用数组字面量或构造函数。 ```javascript // 使用数组字面量创建数组 let array1 = [1, 2, 3]; // 使用构造函数创建数组 let array2 = new Array(1, 2, 3); ``` 数组的特性包括:可以通过索引访问元素,索引从0开始;支持多种方法,如`push()`用于在数组末尾添加元素,`pop()`用于移除数组末尾的元素等。 ### 对象 对象在JavaScript中也可作为一种集合使用,它以键值对的形式存储数据。 ```javascript // 创建对象 let obj = { key1: 'value1', key2: 'value2' }; ``` 对象的特性:键必须是字符串或Symbol类型;可以通过点号或方括号访问和修改属性。 ### Set JavaScript中的Set是一个强大的哈希集合实现,提供了高效的操作性能和简洁的API。主要用途是存储唯一值,支持快速的查找、插入和删除操作。 ```javascript // 使用构造函数创建Set let set = new Set([1, 2, 3]); // 添加元素 set.add(4); // 删除元素 set.delete(3); // 判断元素是否存在 let hasElement = set.has(2); ``` Set的特性:存储的值是唯一的,常用于去重、集合运算以及需要快速判断值存在性的场景[^2][^3]。 ### Map Map是一种键值对集合,与对象不同的是,Map的键可以是任意类型。 ```javascript // 创建Map let map = new Map(); // 设置键值对 map.set('key1', 'value1'); // 获取值 let value = map.get('key1'); ``` Map的特性:键可以是任意类型;支持`size`属性获取键值对的数量。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值