花瓣网以前的菜单效果还不错,首先是展示出全部的菜单,然后当你向下滑动网页的时候,菜单自动吸顶固定悬浮在浏览器的顶部,这个用户也能很好的切换不同的分类,查看更多的内容,而对于网站来说,也提升了不少的用户体验和交互性。
打开花瓣网右键网页另存为,存到本地后用专业编辑器打开看下就知道了,也可以用浏览器开发者工具,直接查看源代码。当然有些内容是JS动态生成的,牵扯的知识面就广了,先从简单的HTML+css开始着手。把这段加到你网页里面就可以了,不是CSS,是Javascript花瓣变叉叉是因为下面语句中的图片地址失效或者你的电脑没有连接上网络
STAR[0] = "http://blog.com.cn/skin/lixia/236605054.gif"
.....
<SCRIPT language=JavaScript1.2>
<!-- Begin
//<!-- Original: Altan (snow@altan.hr) -->
//<!-- Web Site: http://www.altan.hr/snow -->
// Script arranged by Hisa (http://www.suisen.sakura.ne.jp/~ikitai/js/)
var no = 13// STAR number?@?P¡ë?¨C¨º?¨¦?o?¨¦¡ë?¡®??¨¬¨C??¡±
var speed = 10// smaller number moves the STAR faster
STAR = new Array()
STAR[0] = "http://blog.com.cn/skin/lixia/236605054.gif"
STAR[1] = "http://blog.com.cn/skin/lixia/236596767.gif"
STAR[2] = "http://blog.com.cn/skin/lixia/236597338.gif"
STAR[3] = "http://blog.com.cn/skin/lixia/236598420.gif"
STAR[4] = "http://blog.com.cn/skin/lixia/236599138.gif"
STAR[5] = "http://blog.com.cn/skin/lixia/236600240.gif"
var ns4up = (document.layers) ? 1 : 0 // browser sniffer
var ie4up = (document.all) ? 1 : 0
var dx, xp, yp // coordinate and position variables
var am, stx, sty // amplitude and step variables
var i, doc_width = 1500, doc_height = 1800
if (ns4up) {
doc_width = self.innerWidth
doc_height = self.innerHeight
} else if (ie4up) {
doc_width = document.body.clientWidth
doc_height = document.body.clientHeight
}
dx = new Array()
xp = new Array()
yp = new Array()
am = new Array()
stx = new Array()
sty = new Array()
j = 0
for (i = 0i <no++ i) {
dx[i] = 0 // set coordinate variables
xp[i] = Math.random()*(doc_width-50) // set position variables
yp[i] = Math.random()*doc_height
am[i] = Math.random()*20// set amplitude variables
stx[i] = 0.02 + Math.random()/10// set step variables
sty[i] = 0.7 + Math.random()// set step variables
if (ns4up) { // set layers
if (i == 0) {
document.write("<layer name=\"dot"+ i +"\" left=\"15\" top=\"15\" visibility=\"show\"><img src=\"" + STAR[j] + "\" border=\"0\"></layer>")
} else {
document.write("<layer name=\"dot"+ i +"\" left=\"15\" top=\"15\" visibility=\"show\"><img src=\"" + STAR[j] + "\" border=\"0\"></layer>")
}
} else if (ie4up) {
if (i == 0) {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absoluteZ-INDEX: "+ i +" VISIBILITY: visibleTOP: 15pxLEFT: 15pxwidth:1\"><img src=\"" + STAR[j] + "\" border=\"0\"></div>")
} else {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absoluteZ-INDEX: "+ i +" VISIBILITY: visibleTOP: 15pxLEFT: 15pxwidth:1\"><img src=\"" + STAR[j] + "\" border=\"0\"></div>")
}
}
if (j == (STAR.length-1)) { j = 0} else { j += 1}
}
function STAR_NS() { // Netscape main animation function
for (i = 0i <no++ i) { // iterate for every dot
yp[i] += sty[i]
if (yp[i] >doc_height-50) {
xp[i] = Math.random()*(doc_width-am[i]-30)
yp[i] = 0
stx[i] = 0.02 + Math.random()/10
sty[i] = 0.7 + Math.random()
doc_width = self.innerWidth
doc_height = self.innerHeight
}
dx[i] += stx[i]
document.layers["dot"+i].top = yp[i]
document.layers["dot"+i].left = xp[i] + am[i]*Math.sin(dx[i])
}
setTimeout("STAR_NS()", speed)
}
function STAR_IE() { // IE main animation function
for (i = 0i <no++ i) { // iterate for every dot
yp[i] += sty[i]
if (yp[i] >doc_height-50) {
xp[i] = Math.random()*(doc_width-am[i]-30)
yp[i] = 0
stx[i] = 0.02 + Math.random()/10
sty[i] = 0.7 + Math.random()
doc_width = document.body.clientWidth
doc_height = document.body.clientHeight
}
dx[i] += stx[i]
document.all["dot"+i].style.pixelTop = yp[i]
document.all["dot"+i].style.pixelLeft = xp[i] + am[i]*Math.sin(dx[i])
}
setTimeout("STAR_IE()", speed)
}
if (ns4up) {
STAR_NS()
} else if (ie4up) {
STAR_IE()
}
// End -->
</SCRIPT>