`
zccst
  • 浏览: 3295325 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript的一些效果的实现原理(一)

 
阅读更多
作者:zccst

一、腾讯qq,鼠标移到头像上,展示个人信息卡片

原理:如果仅仅使用mouseover和mouseover方法,不能表现相同效果(特别是有间隔的时候)。需要增加定时器。
<style>
#div1{width:300px; height:30px; background:red; margin:10px;}
#div2{width:500px; height:50px; background:blue; margin:10px; display:none;}
</style>
<script type="text/javascript">
	window.onload = function(){
	var odiv1 = document.getElementById("div1");
	var odiv2 = document.getElementById("div2");
	var timer = null;
	odiv1.onmouseover = odiv2.onmouseover = function(){
		odiv2.style.display="block";
		clearTimeout(timer);
	}
	odiv1.onmouseout = odiv2.onmouseout = function(){
		timer = setTimeout(function(){
			odiv2.style.display="none";
		},300);
	}
}
</script>
<div id="div1"></div>
<div id="div2"></div>



2,无缝滚动
四个变量
offsetLeft
offsetTop
offsetWidth
offsetHeight

原理:div是relative,overflow:hidden,ul是absolute且offsetleft = 0;使用setIntervent()滚动。

先计算ul的宽度(一个li的宽度乘以li的个数),然后将ul下li内的图片复制一份(oUl.innerHTML += oUl.innerHTML;),当图片向左(右)滚动一般的时候,迅速让offsetleft = 0,这样用户看起来就是不能的向左滚动。

在设置两个按钮控制方向,本质是设置offsetleft + ispeed +'px';中ispeed的正负。


setInterval(function(){
oUl.style.left = oUl.offsetLeft + ispeed + 'px';
if(oUl.offsetLeft < -oUl.offsetWidth/2){
  offsetLeft = '0px';
}
else if(oUl.offsetLeft > 0){
  oUl.offsetLeft = -oUl.offsetWidth/2
}
},20);

鼠标移入li时暂停,本质上关闭定时器。移出继续开始,是开启定时器。
oUl.onmouseover = function(){clearInterval(timer);}
oUl.onmouseout = function(){//重开定时器}



3,换肤
原理:改变link里的href
<link id="link1" href="css1.css" type="css/txet" rel="stylesheet" />
<a onclick="document.getElementById('link1').href='css1.css'"></a>

注:link标签也能加id


4,展开、收缩(比如,百度搜索按钮右侧的输入法)
原理:点击事件+if判断(如果已经显示就隐藏,如果隐藏就显示)


5,选项卡,tab切换
静态原理:
(1)按钮用ul li,设置一个li和一个div的class为selectedLi和selectedDiv。被selectedLi的选项卡:border-bottom的颜色同显示的下面div区域的背景色,同时使该li的position:relative; top:1px,使li压住下面div的边框。
被selectedLi的div区域,设置背景。
(2)div区域,将所有display等于none,跟按钮相同索引的display为block。

动态选择:
点击时(同时传值),设置li和div,使之的className等于selectedLi和selectedDiv。
先清空,则设置active的li和div的样式。
<style type="text/css">
#tab ul{ margin:0; padding:0; list-style:none;}
#tab li{ float:left; margin-left:10px; padding:0 5px; background:#FFC; border:#F39 solid 1px;}
#tab div{ clear:both; width:500px; height:200px; display:none; border:#FCF solid 1px;}
#tab li:hover{ cursor:pointer;}

#tab li.selectedLi{background:#9CF; border-bottom:#9CF solid 1px; position:relative; top:1px;}
#tab div.selectedDiv{ display:block; background:#9CF}
</style>
<script type="text/javascript">
function changeTab(nIndex)
{
	var oLis = document.getElementById("tab").getElementsByTagName("li");
	var oDivs = document.getElementById("tab").getElementsByTagName("div");
	for(var i = 0 ; i < oLis.length; i++)
	{
		oLis.item(i).className = '';
		oDivs.item(i).className = '';
	}
	oLis.item(nIndex).className = 'selectedLi';
	oDivs.item(nIndex).className = 'selectedDiv';
}
</script>

<div id="tab">
	<ul>
		<li onclick="changeTab(0);"  class="selectedLi">新闻频道</li>
		<li onclick="changeTab(1);">工作频段</li>
		<li onclick="changeTab(2);">家庭频道</li>
		<li onclick="changeTab(3);">感情频道</li>
		<li onclick="changeTab(4);">生活频道</li>
	</ul>
	<div class="selectedDiv">选项卡一</div>
	<div><p>今天不上班啊</p></div>
	<div><p>明天星期五啊</p><p>上街看北京天文博物馆呀,呵呵</p></div>
	<div><p>爱一个需要缘分</p><p>快乐的秘诀</p></div>
	<div><p>释放压力的方法</p><p>晚上睡眠的注意事项</p></div>
</div>

6,时钟
定时器知识:
setInterval()  //不停执行。  间隔型。
setTimeout();  //只执行一次。延迟型。

clearInterval(timer);
clearTimeout(timer);


备注:miaov.com是个不错的网站。
分享到:
评论

相关推荐

    基于JavaScript运动效果的轮播图的实现

    介绍了网页中基于JavaScript轮播图的实现过程,主要通过对JavaScript的缓冲运动函数的封装,实现了能够改变图片透明度的轮播图效果,详细介绍了缓冲运动的原理及实现过程中应注意的事项。

    javascript实现的打字机效果

    html中的javascript实现的打字机效果,无需任何插件,最简洁的javascript实现,便于新手学习实现原理。

    【JavaScript源代码】JavaScript Dom实现轮播图原理和实例.docx

    JavaScript Dom实现轮播图原理和实例  想要制作一个轮播图我们要先弄清楚他的原理,如何能让图片自右向左滑动? 让我们想一想生活中有没有类似的东西,比如电影胶片。 我们可以创建一个块作为投影区,创建一个列表...

    javascript的tab切换原理与效果实现方法

    主要介绍了javascript的tab切换原理与效果实现方法,实例分析了简单的tab切换实现技巧,非常具有实用价值,需要的朋友可以参考下

    【JavaScript源代码】Javascript实现单选框效果.docx

    Javascript实现单选框效果  本文实例为大家分享了Javascript实现单选框效果的具体代码,供大家参考,具体内容如下 描述: 点击每一个li 将li的内容赋值给 div 给当前点击的li加上背景色, 点击空白部分隐藏 技术...

    【JavaScript源代码】js拖拽效果的原理及实现.docx

    js拖拽效果的原理及实现  拖拽功能主要是用在让用户做一些自定义的动作,比如拖动排序,弹出框拖动移动等等 拖拽的流程动作 1、鼠标按下 会触发onmousedown事件 2、鼠标移动 会触发onmousemove事件 3、鼠标松开...

    解析javascript瀑布流原理实现图片滚动加载

    实现原理: 对容器中已有数据块元素进行第一次计算1 容器总宽度 2 列宽度 3 最小列数 ,得到列数后,用一个数组存放盒子所有高度,找出最小高度。之后根据序列号更新高度;看着有些拗口,实现起来就很简

    【JavaScript源代码】JavaScript面向对象实现放大镜案例.docx

     本文实例为大家分享了JavaScript面向对象实现放大镜的具体代码,供大家参考,具体内容如下 效果图 实现原理分析 如图所示 触发鼠标的移动事件时,根据事件对象的 clientX 和 clientY 属性得到实时的坐标点 x ...

    javascript弹性运动效果简单实现方法

    弹性运动实现原理:加速运动+减速运动+摩擦运动 运行效果截图如下: 实例代码如下: &lt;!doctype html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;title&gt;无标题文档&lt;/title&gt; &lt;...

    基于javascript实现日历功能原理及代码实例

    主要介绍了基于javascript实现日历效果原理及代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    JavaScript的基本教程.txt

    JavaScript(简称“JS”)是当前最流行、应用最广泛的客户端脚本语言,用于在网页中添加动态效果和交互功能... 学习JavaScript的事件委托原理,通过事件冒泡实现父元素对子元素事件的响应。 了解并掌握JavaScript的异

    基于JavaScript实现轮播图原理及示例

    网上有很多的例子介绍,在这里我所做的无缝滚动就是 通过改变元素的left值让图片呈现左右滚动的效果。 我们首先看一下 div+css 的结构样式: div+css代码 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt...

    JavaScript 图片切割效果

    下面说说具体实现原理: 首先需要一个容器(_Container),容器里面会插入三个层: 底图层(_layBase):那个半透明的图片; 切割层(_layCropper):正常显示的那个部分; 控制层(_layHandle):就是控制显示的那个部分。 ...

    javascript 流畅动画实现原理

    它们2个哪一个更好点呢 见这里 (是jquery的作者写的一个文章) 我个人比较偏向setInterval,setTimeout需要用递归调用而且在线程很忙的情况下会延时,这会影响流畅性。 通常我们会利用node.style的属性动态赋值,来...

    原生JavaScript实现的360度全景展示效果

    简介:效果意图很简单:可以... 不过这个效果的应用面应该会很广,在展示产品的重要信息时,会相实用,就是拍摄起来麻烦一些哈~ &lt;br&gt;实现方式: 其实原理也不复杂,只需算出鼠标在页面点下与抬起时的速度即可

    【JavaScript源代码】vue实现简易计时器组件.docx

    刚最近基于业务需求,需要实现一个累加通话时长的计时器,这时候就需要定时器登上我们的代码舞台了,其实对于计时器,它的原理就是通过定时器来实现的,那么在写业务需求之前,我先说说关于定时器的一些知识。...

    Javascript实现文本框输入提示

    实现原理: 文本框输入内容后,搜索字符串数组,将匹配内容写入DIV以下拉列表形式展现,并支持方向键选择,效果类似搜索网站的输入提示。 友情提示: 较为粗糙的实现方法,推荐感兴趣的新人看一下,高手请绕过^_^ ...

    javascript实现拖放效果

    本文实例为大家分享的是一个拖放的效果,参考的代码,重构以下,加以理解学习。 首先来看效果: 拖动div   拖放状态:未开始  【程序说明】 拖动原理:其实就是在拖动块上监听mousedown事件,鼠标点击时,通过...

    【JavaScript源代码】原生js实现星星闪烁效果.docx

     本文实例为大家分享了js实现星星闪烁效果的具体代码,供大家参考,具体内容如下 星星闪烁的原理其实很简单: html代码: &lt;body style="background:#000"&gt; &lt;div id="stars_box"&gt;&lt;/div&gt; &lt;/body&gt; js: var ...

Global site tag (gtag.js) - Google Analytics