使用JavaScript实现简单的滑动窗口

使用JavaScript实现简单的滑动窗口。效果图如下,可以左右滑动。
源代码已经上传到github上了,地址如下:https://github.com/dongxiaoshi/slidingWindow
在这里插入图片描述
主体代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			* {
				padding: 0px;
				margin: 0px;
				list-style: none;
			}
			.banner {
				width: 50%;
				height: 300px;
				margin-left:30%;
				border: 1px solid red;
				overflow: hidden;
				position: relative;
			}
			.banner .img {
				width: 600%;
				position: absolute;
			}
			.banner .img li{
				float: left;
			}
			.banner .img img {
				width: 100%;
				height: 300px;
				border: 1px solid yellow;
			}
			.banner .num {
				position: absolute;
				width: 100%;
				border: 1px solid red;
				bottom: 10px;
				left: 0px;
				text-align: center;
			}
			.banner .num li {
				width: 10px;
				height: 10px;
				background-color: #96E555;
				border-radius: 50%;
				/*float: left;*/
				display: inline-block;
				margin: 0px 3px;
				cursor: pointer;
			}
			.banner .num li.on {
				background-color: #FF0000;
			}
			.banner .btn {
				width: 30px;
				height: 50px;
				background-color: gray;
				opacity: 0.5;
				filter: alpha(opacity:0.5);
				position: absolute;
				top: 50%;
				margin-top: -25px;
				cursor: pointer;
				line-height: 50px;
				font-size: 40px;
				color: #fff;
				display: none;
			}
			.banner .btn_l{
				left: 0px;
			}
			.banner .btn_r{
				right: 0px;
			}
			.banner:hover .btn {
				display: block;
			}
		</style>
	</head>
	<body>
		<div class="banner">
			<ul class="img">
				<li><img src="bannerimg/banner1.jpg"/></li>
				<li><img src="bannerimg/banner2.jpg"/></li>
				<li><img src="bannerimg/banner3.jpg"/></li>
				<li><img src="bannerimg/banner4.jpg"/></li>
			</ul>
			<ul class="num">
				
			</ul>
			<div class="btn btn_l">&lt;</div>
			<div class="btn btn_r">&gt;</div>
		</div>
	</body>
	<script type="text/javascript" src="../js/jquery-2.1.0.js" ></script>
	<script type="text/javascript">
		var i=0;
		var t;
		var imgWidth = $('.banner').width();
//		alert(imgWidth);
		$('.banner img').width(imgWidth);
		// 克隆第一张图片
		var clone = $('.banner .img li').first().clone();
		// 复制到列表的最后
		$('.banner .img').append(clone);
		var size =$('.banner .img li').size();
		console.log(size);
		for(var j=0;j<size-1;j++){
			$('.banner .num').append("<li></li>");
		}
		$('.banner .num li').first().addClass('on');
		// 移动事件
		function move(){
			if(i == size){
				$('.banner .img').css({left:0});
				i = 1;
			}
			// 箭头点击过头了
			if(i == -1){
				$('.banner .img').css({left:-(size-1) * imgWidth});
				i = size -2;                      
			}
			$('.banner .img').stop().animate({left : -i * imgWidth},500);
			if(i == size -1){
				$('.banner .num li').eq(0).addClass('on').siblings().removeClass('on');
			} else {
				$('.banner .num li').eq(i).addClass('on').siblings().removeClass('on');
			}
		}
		// 鼠标悬停
		$('.banner').hover(function(){
			clearInterval(t); // 鼠标悬停的时候
		},function(){
			t = setInterval(function(){
			i++;
			move();
		},2000); // 鼠标移出
		})
		// 鼠标滑入事件
		$('.banner .num li').hover(function(){
			var index = $(this).index();//获取当前索引值
			i = index;
			$('.banner .img').stop().animate({left : -index * imgWidth},500);
			$(this).addClass('on').siblings().removeClass('on');
		})
		// 向左按钮
		$('.banner .btn_l').click(function(){
			i--;
			move();
		})
		// 向右按钮
		$('.banner .btn_r').click(function(){
			i++;
			move();
		})
		t = setInterval(function(){
			i++;
			move();
		},2000);
		
		$(window).resize(function(){
//			var a = $(window).width();
			imgWidth = $('.banner').width();
			$('.banner img').width(imgWidth);
			move();
		})
		
		
	</script>
	
	
	
	
	
	
</html>

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是GEE基于滑动窗口法主成分分析合成遥感图像的JavaScript代码实现的一个示例: ```javascript // 设置滑动窗口的大小,这里设为3x3的窗口 var windowSize = 3; // 加载需要进行主成分分析的遥感图像 var image = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_123032_20140515'); // 获取图像的波段数 var numBands = image.bandNames().size(); // 定义一个滑动窗口的核心函数 var slidingWindow = function(img) { // 将图像转换为一个数组 var arr = img.toArray(); // 获取图像的行和列数 var rows = img.size()[0]; var cols = img.size()[1]; // 定义一个空的结果数组 var out = ee.List([]); // 循环遍历每一个像素点 for (var i = windowSize; i <= rows - windowSize; i++) { for (var j = windowSize; j <= cols - windowSize; j++) { // 定义一个滑动窗口 var window = arr.slice(i - windowSize, j - windowSize, i + windowSize + 1, j + windowSize + 1); // 将滑动窗口转换为一个矩阵 var windowMatrix = ee.Array(window); // 对矩阵进行主成分分析 var pca = windowMatrix.reduceRegion({ reducer: ee.Reducer.pca(numBands), geometry: ee.Geometry.Rectangle(i - windowSize, j - windowSize, i + windowSize, j + windowSize), scale: 30 }); // 将主成分分析的结果添加到结果数组中 out = out.add(ee.Feature(null, pca)); } } // 将结果数组转换为一个特征集合 return ee.FeatureCollection(out); }; // 对图像进行滑动窗口主成分分析 var pcaImage = slidingWindow(image); // 将主成分分析的结果可视化 Map.addLayer(pcaImage, {}, 'PCA Image'); ``` 需要注意的是,这只是一个简单的示例,实际应用中可能需要对代码进行调整以满足不同的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值