`
mxx_1111
  • 浏览: 61521 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

无缝滚动图片——源码

 
阅读更多

图片已上传,请到我的资源部去下载,不用积分,——无缝滚动图片http://download.csdn.net/detail/qq_34137397/9665933

</head>
<body>
<div class="control">
	<label id="chk_pause"><input type="checkbox" checked="checked">间隔停顿</label>
	<select id="pause_time">
		<option value="100">短</option>
		<option value="1000" selected="selected">中</option>
		<option value="3000">长</option>
	</select>

	滚动速度:
	<select id="sel_speed">
		<option value="2">慢</option>
		<option value="5">中</option>
		<option value="10">快</option>
	</select>
</div>

<div class="roll" id="roll">
    <a href="javascript:void(0);" class="btn_left"></a>
    <a href="javascript:void(0);" class="btn_right"></a>
    <div class="wrap">
        <ul>
            <li><a href="http://www.zhinengshe.com/"><img src="images/1.jpg" /></a></li>
            <li><a href="http://www.zhinengshe.com/"><img src="images/2.jpg" /></a></li>
            <li><a href="http://www.zhinengshe.com/"><img src="images/3.jpg" /></a></li>
            <li><a href="http://www.zhinengshe.com/"><img src="images/4.jpg" /></a></li>
        </ul>
    </div>
</div>
</body>
</html>

CSS代码

* { padding: 0; margin: 0; }
li { list-style: none; }
img { border: 0; }

.roll { width: 880px; height: 108px; margin: 50px auto 0; position: relative; }
.btn_left { display: block; width: 68px; height: 68px; background: url(images/btn.jpg) no-repeat -70px -69px; position: absolute; top: 20px; left: 1px; z-index: 1; }
.btn_left:hover { background: url(images/btn.jpg) no-repeat -70px 0; }
.btn_right { display: block; width: 68px; height: 68px; background: url(images/btn.jpg) no-repeat 1px -69px; position: absolute; top: 20px; right: 0; z-index: 1; }
.btn_right:hover { background: url(images/btn.jpg) no-repeat 1px 0; }
.roll .wrap { width: 728px; height: 108px; margin: 0 auto; position: relative; overflow: hidden; }
.roll ul { position: absolute; top: 0; left: 0; }
.roll li { float: left; width: 182px; height: 108px; text-align: center; }
.roll li a:hover { position: relative; top: 2px; }

.control { border-bottom: 1px solid #ccc; background: #eee; text-align: center; padding: 20px 0; }

js代码

var g_bMoveLeft=true;
var g_oTimer=null;
var g_oTimerOut=null;

var g_bPause=true;
var g_iPauseTime=1000;
var g_iSpeed=2;

window.onload=function ()
{
	var oDiv=document.getElementById('roll');
	var oUl=oDiv.getElementsByTagName('ul')[0];
	var aLi=oUl.getElementsByTagName('li');
	var aA=oDiv.getElementsByTagName('a');
	
	var oChk=document.getElementById('chk_pause');
	var oPauseTime=document.getElementById('pause_time');
	var oSpeed=document.getElementById('sel_speed');
	
	var i=0;
	
	var str=oUl.innerHTML+oUl.innerHTML;
	
	oUl.innerHTML=str;
	
	oUl.style.width=aLi[0].offsetWidth*aLi.length+'px';
	
	for(i=0;i<aLi.length;i++)
	{
		aLi[i].onmouseover=function ()
		{
			stopMove();
		};
		
		aLi[i].onmouseout=function ()
		{
			startMove(g_bMoveLeft);
		};
	}
	
	aA[0].onmouseover=function ()
	{
		startMove(true);
	};
	
	aA[1].onmouseover=function ()
	{
		startMove(false);
	};
	
	startMove(true);
	
	oChk.onclick=function ()
	{
		g_bPause=oChk.getElementsByTagName('input')[0].checked;
	};
	
	oSpeed.onchange=function ()
	{
		g_iSpeed=parseInt(this.value);
	};
	
	oPauseTime.onchange=function ()
	{
		g_iPauseTime=parseInt(this.value);
	};
};

function startMove(bLeft)
{
	g_bMoveLeft=bLeft;
	
	if(g_oTimer)
	{
		clearInterval(g_oTimer);
	}
	g_oTimer=setInterval(doMove, 30);
}

function stopMove()
{
	clearInterval(g_oTimer);
	g_oTimer=null;
}

function doMove()
{
	var oDiv=document.getElementById('roll');
	var oUl=oDiv.getElementsByTagName('ul')[0];
	var aLi=oUl.getElementsByTagName('li');
	
	var l=oUl.offsetLeft;
	
	if(g_bMoveLeft)
	{
		l-=g_iSpeed;
		if(l<=-oUl.offsetWidth/2)
		{
			l+=oUl.offsetWidth/2;
		}
	}
	else
	{
		l+=g_iSpeed;
		if(l>=0)
		{
			l-=oUl.offsetWidth/2;
		}
	}
	
	if(g_bPause)
	{
		if(Math.abs(l-Math.round(l/aLi[0].offsetWidth)*aLi[0].offsetWidth)<Math.ceil(g_iSpeed/2))
		{
			stopMove();
			g_oTimerOut=setTimeout
			(
				function ()
				{
					startMove(g_bMoveLeft);
				}, g_iPauseTime
			);
			
			l=Math.round(l/aLi[0].offsetWidth)*aLi[0].offsetWidth;
		}
	}
	
	oUl.style.left=l+'px';
}


分享到:
评论

相关推荐

    图片滚动代码,图片无缝滚动代码,图片自动滚动且可控制滚动方向

    标题中的“图片滚动代码,图片无缝滚动代码,图片自动滚动且可控制滚动方向”涉及到的是网页设计中的一个常见功能——图片滚动效果。这种效果通常用于展示多张图片,以滚动的方式呈现,使得用户无需手动翻页就能浏览到...

    javascript效果源码\向左不间断(无缝)滚动图片js代码

    实现这种无缝滚动图片的JavaScript代码通常包含以下几个关键部分: 1. **DOM操作**:首先,你需要获取到HTML中的图片元素。这可以通过`document.getElementById`或`document.querySelector`等方法完成。然后,可能...

    安卓Android源码——超炫的图片浏览器.zip

    再者,为了实现图片的平滑滚动和无缝切换,开发者可能运用了ViewPager组件。ViewPager允许用户左右滑动页面,非常适合用来展示图片集合。配合PagerAdapter或者FragmentPagerAdapter,可以创建一个可滚动的图片列表。...

    Android源码——ImageView图片循环跑马灯效果源码_new_08.zip

    每个ImageView将显示一张图片,容器的宽度应设置为所有ImageView宽度之和,以便于实现无缝滚动。 2. **图片加载**:使用Glide、Picasso等库来加载和缓存图片,避免频繁的网络请求,提高用户体验。 3. **动画设置**...

    jQuery横向图片焦点图滚动特效源码.zip

    1. 自动播放:源码可能包含一个定时器,每隔一定时间自动切换到下一张图片,创建无缝滚动的视觉体验。 2. 手动切换:用户可以通过点击左右箭头或导航点来手动切换图片,提供更个性化的浏览体验。 3. 动画过渡:在...

    IOS应用源码——酷炫的图片展示效果.zip

    这份"IOS应用源码——酷炫的图片展示效果.zip"包含了实现这些效果的源代码,可以帮助开发者深入理解如何在iOS平台上构建视觉吸引人的图片展示功能。以下是源码中可能包含的关键知识点和实现细节: 1. **UIImageView...

    Android源码——ImageView图片循环跑马灯效果源码_new_08.7z

    此项目“Android源码——ImageView图片循环跑马灯效果源码_new_08.7z”提供了这样的实现示例。下面我们将深入探讨这个效果的实现原理及其相关知识点。 1. **图片资源**: 压缩包中的1-121111112H50-L.png和1_...

    安卓Android源码——listview获取网络图片缓存优化.zip

    本压缩包"安卓Android源码——listview获取网络图片缓存优化.zip"显然是为了演示如何优化ListView中加载网络图片的过程,通过缓存策略来提高用户体验。其中包含的项目名为"LazyLoaderDemo",暗示了这是一个懒加载的...

    IOS应用源码——Viewchange 2无限循环浏览图片,Touch.rar

    "Viewchange 2无限循环浏览图片,Touch.rar"这个压缩包提供了一个实现这一功能的源码示例,主要关注于图片的无缝滚动和触摸事件的响应。 首先,我们要理解这个应用的核心功能是无限循环浏览图片。在iOS中,我们可以...

    IOS应用源码——Viewchange 2无限循环浏览图片,Touch.zip

    "IOS应用源码——Viewchange 2无限循环浏览图片,Touch.zip" 这个标题表明我们正在处理一个iOS应用的源代码,该应用的核心功能是实现图片的无限循环浏览,并且可能支持触摸交互。"Viewchange 2"可能是这个应用或特定...

    Android源码——页面特效集合源码_new_74.zip

    "Android源码——页面特效集合源码_new_74.zip"是一个针对Android页面特效的源码集合,旨在提供一系列的示例,帮助开发者学习并实践这些特效的实现。 这个压缩包中的源码涵盖了多个方面的知识点: 1. **动画与过渡...

    网页模板——jquery caroufredsel图片局部放大查看效果插件源码.zip

    此压缩包"网页模板——jquery caroufredsel图片局部放大查看效果插件源码.zip"包含了实现图片局部放大查看效果的源代码。在网页设计中,这种效果能提供用户一个更清晰地查看图片细节的途径,提高用户体验。通常,...

    IOS应用源码——Viewchange 2无限循环浏览图片,Touch2.rar

    "IOS应用源码——Viewchange 2无限循环浏览图片,Touch2.rar" 这个标题表明我们正在处理一个iOS应用程序的源代码,这个应用专注于图像浏览,特别是实现无限循环浏览功能。"Viewchange 2"可能是这个应用的一个特定版本...

    Android源码——仿QQ音乐播放器源码.zip

    【Android源码——仿QQ音乐播放器源码】 在Android平台上开发一款音乐播放器,特别是模仿知名的QQ音乐播放器,涉及到许多关键的技术点和设计思路。这个源码项目旨在为开发者提供一个参考,帮助他们理解和实现类似...

    安卓Android源码——MyVerticalScrollView.rar

    这个压缩包“安卓Android源码——MyVerticalScrollView.rar”提供了一个自定义垂直滚动视图的实例,让我们来深入探讨一下这个自定义组件`MyVerticalScrollView`的相关知识点。 首先,`MyVerticalScrollView`是对...

    IOS应用源码——下拉动态加载.rar

    "IOS应用源码——下拉动态加载.rar"是一个压缩包,其中包含了实现这一功能的源代码。 源码分析: 1. **UITableView/UICollectionView**: 在iOS中,最常用来实现下拉刷新的视图是UITableView和UICollectionView。...

    安卓Android源码——Gallery+ImageSwitcher+ViewFlipper实现手机查看壁纸效果.zip

    本示例源码"安卓Android源码——Gallery+ImageSwitcher+ViewFlipper实现手机查看壁纸效果"就是这样一个功能的实现,主要涉及了三个关键组件:Gallery、ImageSwitcher和ViewFlipper。 1. **Gallery组件**:Gallery是...

    IOS应用源码——UIPickerView的数据循环显示(老外的法子真BT)UIPickerViewU.rar

    在iOS开发中,UIPickerView是一...总之,UIPickerView的数据循环显示是一种创新的设计,通过巧妙的编程技巧实现了无缝滚动的效果。这个源码包为我们提供了一个学习和研究的例子,可以帮助开发者提升iOS应用的用户体验。

    安卓Android源码——MyHorizontalScrollView.rar

    3. **嵌套滚动**:支持与其他嵌套滚动视图(如 `NestedScrollView` 或 `SwipeRefreshLayout`)的无缝配合,遵循嵌套滚动协议。 4. **分页效果**:可能实现了水平分页的效果,当滑动到边界时自动切换到下一个或上一个...

    安卓Andriod源码——平台仿pinterest瀑布流展现方式实现.zip

    这种布局方式能够让内容自适应屏幕大小,以多列形式呈现,随着用户滚动屏幕,新的内容会无缝地填充到页面下方,视觉效果流畅自然。本篇将详细介绍如何在Android平台上实现类似Pinterest的瀑布流布局。 1. **自定义...

Global site tag (gtag.js) - Google Analytics