`
rainsilence
  • 浏览: 160896 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

模拟新浪围脖的间歇性向下滚动显示信息窗口

阅读更多

 

 大家可以试试看,效果应该完全一致,并且已经在opera,IE,chrome,FF上测试通过

另外在制作过程中的注意点

1.scrollTop属性比较特殊,必须要在内部的div大于外部div的时候才有效果

2.换行要用word-wrap,否则会在FF和opera上失效

3.设置浮动上,IE和其他浏览器存在差异。

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<style type="text/css">
	body {
		font-size:14px;
	}
	#container {
		overflow:hidden;
		margin: 0 auto;
		width: 400px;
		height: 400px;
		border-style:solid;
		border-width:1px;
	}
	span {
		border-style:solid;
		border-width:1px;
	}
</style>
<script type="text/javascript">

	window.onload = function() {
	}
	var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
	function addMessage(userName, content, button) {
		
		var container = document.getElementById("container");
		
		var messageDiv = createElement("div", {
			width:"398px",
			height:"auto",
			cssFloat:"left"
		});
		
		var leftDiv = createElement("div", {
			width:"60px",
			cssFloat:"left"
		});
		var rightDiv = createElement("div", {
			width:"338px",
			cssFloat:"left"
		});

		var pictureDiv = createElement("div", {
			cssFloat:"left", 
			borderColor:"#BCD", 
			width:"40px", 
			marginLeft:"4px", 
			marginTop:"4px",
			height:"40px",
			lineHeight:"40px",
			textAlign:"center",
			borderStyle:"solid",
			borderWidth:"1px"
		});
		pictureDiv.innerHTML = "头像";
		leftDiv.appendChild(pictureDiv);
		var userDiv = createElement("div", {
			wordBreak:"break-all",
			wordWrap:"break-word",
			marginTop:"4px",
			marginBottom:"4px",
			fontSize: "12px"
		});
		userDiv.innerHTML = userName;
		var contentDiv = createElement("div", {
			wordBreak:"break-all",
			wordWrap:"break-word",
			marginTop:"4px",
			marginBottom:"4px",
			fontSize: "14px"
		});
		contentDiv.innerHTML = content;
		
		var timerDiv = createElement("div", {
			height:"10px",
			fontSize:"12px",
			marginBottom: "10px"
		});
		timerDiv.innerHTML = "30秒前";
		rightDiv.appendChild(userDiv);
		rightDiv.appendChild(contentDiv);
		rightDiv.appendChild(timerDiv);
		messageDiv.appendChild(leftDiv);
		messageDiv.appendChild(rightDiv);
		var rate = 0;
		setOpacity(messageDiv, rate);
		
		if (container.firstChild) {
			container.insertBefore(messageDiv, container.firstChild);
			container.scrollTop = messageDiv.offsetHeight;
		} else {
			container.appendChild(messageDiv);
		}

		var moveTimer = setInterval(function() {
			
			container.scrollTop -= 1;
			if (container.scrollTop <= 0) {
				container.scrollTop = 0;
				clearInterval(moveTimer);
				
				var opacityTimer = setInterval(function() {

					rate += .05;
					if (rate >= 1) {
						rate = 1;
						clearInterval(opacityTimer);
						button.disabled = false;
					}
					setOpacity(messageDiv, rate);
				}, 40);
			}
		}, 20);
		
		return container.scrollTop;
	}

	function createElement(tagName, styles, props) {
		var tag = document.createElement(tagName);
		if (styles) {
			for (var prop in styles) {
				
				if (prop == "cssFloat" && isIE) {
					tag.style.styleFloat = styles[prop];
					continue;
				}
				tag.style[prop] = styles[prop];
			}
		}
		if (props) {
			for (var prop in props) {
				tag.style[prop] = props[prop];
			}
		}
		return tag;
	}

	function setOpacity(target, rate) {
		
		if (isIE) {
			target.style.filter = "alpha(opacity=" + (rate * 100) + ")";
		} else {
			target.style.opacity = rate;
		}
	}
	
	function showMessage(button) {
		button.disabled = true;
		var user = document.getElementById("userName");
		var content = document.getElementById("content");
		addMessage(user.value, content.value, button);
	}
	
</script>
</head>
<body>
	<div>UserName:<input type="text" id="userName" style="width:216px;"/></div>
	<div>Message: <textarea id="content" style="resize:none;" rows="3" cols="29"></textarea></div>
	<div><input type="button" value="Post Message" onclick="showMessage(this);"/></div>
	
	<div id="container">
		<div style="height:500px;"></div>
	</div>
	
</body>
</html>

5
2
分享到:
评论
5 楼 xrzs1986 2012-02-07  
不错~ 赞一个~
4 楼 mu0001 2011-05-18  
toeo 写道
全部用 原始的 js 写代码。

不过如果 要是 要求兼容不同 浏览器 是否用 jquery 比较好 呢。

用 append 或 after 方法 将尾部拼接html代码

维护应该 简单些吧。

算了吧,当你会用JS写的时候,你也不会用JQ写的。
3 楼 rainsilence 2011-01-27  
本代码全浏览器兼容。。。

另外,你看过jquery源码吗?你知道他的不足吗?jquery只是玩具,ok?

为什么要做google的奴隶呢?少人云亦云了。用jq的99%都不是高手,却有90%是伸手党。

toeo 写道
全部用 原始的 js 写代码。

不过如果 要是 要求兼容不同 浏览器 是否用 jquery 比较好 呢。

用 append 或 after 方法 将尾部拼接html代码

维护应该 简单些吧。


另另外,你的评论我只能笑而不语
2 楼 toeo 2011-01-27  
全部用 原始的 js 写代码。

不过如果 要是 要求兼容不同 浏览器 是否用 jquery 比较好 呢。

用 append 或 after 方法 将尾部拼接html代码

维护应该 简单些吧。
1 楼 askjsp 2011-01-24  
呵呵,效果好炫,保存了,真的不错哦。。。推荐

相关推荐

    新浪围脖电商企业分享方案

    新浪围脖电商企业分享方案新浪围脖电商企业分享方案新浪围脖电商企业分享方案

    精品课件(2021-2022)新浪围脖电商企业分享方案(1).ppt

    5. **微博用户行为分析**:近六成的新浪微博用户在过去一周内有过网络购物行为,且有意识地使用微博获取商品信息,这显示微博在商品信息传播和消费者决策中扮演着重要角色。 6. **微CRM与微营销**:电商企业通过...

    新浪围脖程序,黑莓手机拍照后直接按菜单发新浪微博

    手机拍照键拍照后,选菜单直接“织围脖”,方便喜欢随时拍照,随时发带照片的博文的同志们。 代码原理:里面使用了Sina Open API,免费从新浪申请的,可以发微博,查看,搜索等等。使用BlackBerry API和相机preview...

    IPHONE版围脖客户端

    封装IPHONE版围脖客户端 安全快捷有效

    赢在围脖:新浪微博营销案例分享.pptx

    赢在围脖:新浪微博营销案例分享.pptx 介绍典型的微博营销案例

    XXXX企业围脖营销思路框架.pptx

    在信息技术飞速发展的今天,社交媒体成为了企业营销的重要阵地,而微博,特别是新浪围脖,以其独特的影响力为企业提供了新的营销策略。这篇“XXXX企业围脖营销思路框架.pptx”主要探讨了如何有效地利用新浪围脖进行...

    围脖艺术营销案例PPT.pptx

    2010年,新浪围脖营销案例展示了如何有效地利用微博这一新兴渠道进行品牌建设和用户互动。以下是对这个主题的详细解读: 1. **先围脖、后营销**:这是围脖营销的基本原则,意味着企业在开设微博账号之前,应首先...

    山寨围脖程序,含源码和可运行代码,黑莓手机拍照后直接按菜单发微博-新浪

    按手机拍照键拍照后,选菜单直接“织围脖”,方便喜欢随时拍照,随时发带照片的博文的同志们。 支持手机:8900/9700等OS 5.0的黑莓BlackBerry手机。 代码原理:里面使用了Sina Open API,免费从新浪申请的,可以发...

    围脖软件

    围脖图床chrome版20170118修复

    微博图床近期不能使用,所以在原有基础上做了修复 使用步骤 1.解压文件 2.点击chome浏览器最右侧的按钮(就是最右边的按钮嘛)-&gt; 工具 -&gt; 扩展程序 (或者地址栏输入chrome://extensions/) 3.勾选开发者模式 ...

    新浪微博客户端(可以不用浏览器就能玩儿微博的客户端)

    这是一个新浪围脖的客户端程序,双击就能运行,不需要安装

    虚拟社区案例分析之新浪微博.docx

    ### 虚拟社区案例分析之新浪微博 #### 一、基本情况 **1.1、简介** 新浪微博是一款由新浪网推出的微型博客服务应用,类似于Twitter,它允许用户通过多种渠道(如网页、WAP页面、手机短信/彩信)发布140字以内的短...

    行业资料-建筑装置-带有围脖式领子的羽绒服.zip

    很抱歉,但根据您给出的信息,标题和描述中提到的是"行业资料-建筑装置-带有围脖式领子的羽绒服.zip",这显然与IT行业知识无关,而是关于建筑装置或者可能是服装设计的资料。标签也进一步强调了"行业资料-建筑装置-...

    行业文档-设计装置-一种带有围脖式降温袋的冰帽.zip

    标题中的“行业文档-设计装置-一种带有围脖式降温袋的冰帽”指的是一个针对特定行业(可能是医疗、保健或户外活动)的设计方案,它涉及一种创新的冰帽产品,这种冰帽配备了围脖式的降温袋。这个设计旨在提供更有效、...

    初中语文文摘历史围脖女王是怎样炼成的

    【标题】: "初中语文文摘历史围脖女王是怎样炼成的" 【描述】: 描述了姚晨如何从早期的微博用户发展成为备受瞩目的“围脖女王”,展现了她在社交媒体上的影响力及其策略。 【标签】: 资料 【正文】: “围脖女王”...

    XXXX-Q1-新浪微博客产品-营销思路框架-0222-V1.pptx

    根据提供的文档信息,我们可以归纳出以下关键知识点,主要聚焦于新浪微博(当时称为“新浪围脖”)营销策略及其实施框架: ### 新浪微博营销模式概述 - **文档标题与描述**:“XXXX-Q1-新浪微博客产品-营销思路...

Global site tag (gtag.js) - Google Analytics